2chのスレをテキストマイニングするやり方

     

公開日: : 中級者EA開発 ,

よく「大衆の逆をいけば勝てる」みたいなことが相場の世界では言われますよね。今回は2chの市況版の住民の悲鳴を取得し、その逆張りをするシステムを考えてみたいと思います。

(正直、これで本当に勝てるとは思ってないです。ただの実験です)

テキストマイニング、スクレイピングというと一見難しいように感じますが、実は操作自体は意外と簡単です。

難しいのはテキストの”あいまいさ”をどう読み解くかを判定するところですが、
今回はシンプルにいきたいと思います。

つまり、強気な単語「買」、「ロング」、「ロンガー」、「ホールド」、「ホールダー」、「上昇」、「暴騰」
弱気な単語「売」、「ショート」、「ショーター」、「ショタ」、「下降」、「下落」、「暴落」、「ナイアガラ」
と否定語「ない」
を判定に使います。

実装方法はPHPのスクレイピング専用ライブラリを使います。
PHPの世界では有名な「PHP Simple HTML DOM Parser」というのがあるので、
いつも通り、これを使います。

スレのターゲットは「【USD/JPY】ドル円専用スレ」です。
(数年前に見たときはもっと荒れてるスレだったような気がするのですが、最近は意外とまともな感じですね)

スクレイピングのライブラリは1ファイルのPHPなので、

require_once 'simple_html_dom.php';

同じディレクトリに配置して、呼び出せばOKです。

あとは

$html = file_get_html( 'URLをここに'.$_SESSION['edited_file_name'] );
$table0 = $html->find('table', 0 );

 

find関数を使って、ループさせながら該当ワードを探していくだけです。

強気な単語は$bullとし、弱気な単語は$bearとして
該当ワードがヒットすればそれぞれ0から加算していきます。

if( strstr($td0,"買い") != false || strstr($td0,"上がる") != false) $bull++;
if( strstr($td0,"売り") != false || strstr($td0,"下がる") != false) $bear++;

 

あとはそれぞれの合計を比較するだけです。

否定語を入れたい場合は、もう一段階if文を入れて、”ない”があれば逆向きの判定すれば
とりあえずは良いんじゃないでしょうか。

ちなみに2chは一応htmlソースが難読化処理されていますが、
htmlの構成なんてどこも似たり寄ったりなので、簡単に突破できます。

ちなみにbody以下のそれぞれのdivは

<div class="container">
 <div class="navbar-header"><div>
 <div class="search-input col-md-5 col-sm-6">
・・・
 <div class="thread">
  <div class="post" id="1" data-date="NG" data-userid="ID:CSUjYGTT" data-id="1">
  <div class="meta"><span class="number">1</span>
          <span class="name"><b>Trader@Live!</b></span>
          <span class="date">2017/10/02(月) 08:58:32.90</span>
          <span class="uid">ID:CSUjYGTT</span>
  </div>
  <div class="message"><span class="escaped">!!ここからコメントの内容!!

 

こんな感じです。やっぱり古いサイトだけあって構成が読みやすいですね。

結果は、
強気ワード:22
弱気ワード:8
で全体的に強気みたいです。(ちなみに計測時のスレは670前後まで伸びていた状態です。)

大衆が強気なら売りでいった方がいいんでしょうか。
結局良く分からないです。

この優位性を確かめるには過去スレとメタトレーダーのストラテジーテスターを使って
過去検証をすることも可能です。

リアルタイムで自動売買する方向と
過去検証する方向で
開発する内容が比較的変わってくるので、どちらかに絞ってから開発を始めた方がよさそうです。

リアルタイムで叩く場合は、スレが変わった際にURLも変わるので、
スレ一覧から新しいスレを取得するクローリングも必要です。

過去検証する場合は、比較的手動の作業が増えるのでやる気と馬力が必要ですね。
(過去ログを集めるのとか)

関連記事

[MT4]チャートを分析して、一番多いパターンが来たらトレードするEA

パターン分析トレードとは 今回はMT4のファイル関数を使って、パターン分析トレードシステムを作成し

記事を読む

保護中: [MT4EA]完全無敗 勝率100%のバックテストを生成するEA[ソースコードあり]

今回はバックテストで完璧な成績を出すEAを作成しました。 意味は...ありません。ただの道楽です。

記事を読む

利用可能なトレード系金融APIまとめ FIX API,REST API,OPEN API

今まで当たり前のようにMT4/MT5/TradeStationで開発をしてきましたが、そういえばAP

記事を読む

OANDAのAPIの始め方と使い方とレート比較

オアンダのAPIやります。   金融業界、とりわけFX業界ではFIX APIが機関投資

記事を読む

no image

プログラマ向け自動売買開発アイディア

「MQL4/MQL5は扱えるようになったけど、プログラミングのアイディアがない」というプログラマは比

記事を読む

 

上に戻る