寄り、前場引けデイトレ

以前デイトレ戦略neoというタイトルでデイトレ戦略を開発中と書いていました。
その後の経過ですが、W指値の疑似検証などを使って検証していますが、日足ベースより良い結果がえられません。

そもそも、イザナミを使って、デイトレStrを作る場合、
① 寄付き仕掛けで、利確損切りを指値OR逆差値で設定し、未成就の場合引け手仕舞い
② 指値OR逆差値で仕掛け、引け手仕舞い
③ 寄り引けで、仕掛け、手仕舞い

の3パターンしかありません。そして、この大引け手仕舞いしかできないことで、含み益がガンガン減っていくことにもなりがちです。

そこで、
④ 寄り仕掛け、前場引け手仕舞い

ができないものか?イメージとしては、前場上げた段階で手仕舞し、後場下げによる含み益の減少を食い止めるというものです。

2013年~2015年は高値圏順張りでは、前場上げても後場はそれほど下がりませんでしたが、2016年から、前場上げて後場下がるパターンが多くなってきています。そこで前場の含み益だけを取りに行く発想です。

そして検証するためのプログラムを組んでいます。まだ、検証は途中段階ですが、期待値は微減でDDは大幅縮小です。また、検証数が少ないので実用には至りませんが、しばらく検証と研究を重ねていこうと思います。

検証方法は少しややこしいのですが概略を記載します。
エクセル VBAのInternetExplorerオブジェクトを使ってインタネットエクスプローラを制御する方法です。

① イザナミで使えそうなベースストラテジを作る。
② 取引一覧をエクセルに貼付ける。
『株価データサイト k-db.com』の前場後場データを活用する。
http://k-db.com/stocks/〇〇〇〇-T/4h(〇は証券コード)
④ 別画面に上記サイトを表示させておく(デュアルモニタ必要)
⑤ エクセル上に張り付けたベースストラテジデータのC列をダブルクリックする。
⑥ 別モニターに表示させた『株価データサイト k-db.com』前場後場データが表示される。
⑦ 前場後場データが検証データの日付になるように、スクロール回数を、エクセル上の任意セルに記入しておく
⑧ マウスが電場後場データの画面をスクロールし指定の日付欄が表示される。
⑨ 該当日の前場終値データをエクセルに書き込むことを繰り返す。

なおVBAでインターネットエクスプローラを使う場合、参照設定で下記のライブラリを登録しておく必要があります。
Microsoft HTML Object Library
Microsoft Internet Controls

≪株価データサイトk-db.com≫
前場後場データ



エクセル画面


WOOKBOOK.png

宣言部分 
コード① 


≪注意≫
① コード記載は躊躇しましたが、一応載せておきます。但しコードへのご質問はお受けできません。
② コード記載例はあくまで私のパソコンに最適化されたものであり、そのままでは使えません。使う場合は各自カスタマイズしてください。
≪補足≫
私はVBAによるインターネットエクスプローラ制御は以下のサイトで習得しました。
http://www.vba-ie.net/


ポチっとしていただき、パチ(拍手)して頂くとやる気モリモリです。m(__)m

株式システムトレード ブログランキングへ
にほんブログ村 株ブログ 株 自動売買へ
にほんブログ村

株システムトレードソフトイザナミ
スポンサーサイト

コメント

No title

こんにちは。

株価の書き込み部分は手動ということですか?
たぶん、VBAで前場と後場の株価も自動で取得できるかもしれないですね。

私も楽天証券で注文一覧のテーブル情報をVBAで取得していますが、以下のコードなどを使ったりしています。

あくまでも、以下のは例ですが、こんな感じでやれば自動で株価も取得できる気がしますね。
余計なお世話かもしれないですが、もしかしたら役に立つかもしれないので書いておきます。

例えば、2016-07-14の後場の終値の株価を取得する場合です。

1. タグがTDで2016-07-14の日付で(インデックス:i )、かつ次のタグが後場のものを探す(i+1)。
For i = startTag to finishTag の i のことです。

2. 上記で取得したiに対して、TDでカウントして5番目のi+5が終値なので、タグの内容を取得してシートにコピー。

みたいな感じです。


(例)
IEで該当のページを表示させた状態で、以下のコードを実行です。

'開始タグを取得
For i = 0 To objIE.Document.all.Length - 1
If objIE.Document.all(i).tagName = "TD" Then
If objIE.Document.all(i).innerText = "比較" Then
startTag = i + 1
Exit For
End If
End If
Next i

'終了タグを取得
For i = startTag To objIE.Document.all.Length - 1
If objIE.Document.all(i).tagName = "TD" Then
If objIE.Document.all(i).innerText = "口座合計" Then
finishTag = i - 1
Exit For
End If
End If
Next i

'TDとTRをカウントして情報を取得する。
Row = 0
Col = 1

For i = startTag To finishTag

If objIE.Document.all(i).tagName = "TD" Then

'ExcelシートのobjSheetという名前のシートにテーブル内容を貼り付けています。
objSheet.Cells(Row, Col).Value = objIE.Document.all(i).innerText
Col = Col + 1

ElseIf objIE.Document.all(i).tagName = "TR" Then
Row = Row + 1
Col = 1

End If

Next i

  • 2017/03/19 (Sun) 16:19
  • たけやん #-
  • URL
Re: No title

たけやんさん こんにちは

あ、そうか!
なかなかいいアイデアですね。ありがとうございます。
たけやんさんVBA精通してますね。

今回の件は、私のストラテジのザラバベースの検証として、
とりあえず前場引け値でどれくらいのパフォーマンスになるのか
ある程度の傾向を見たくて、最初は全部手作業でやってました。

それで面倒くさいので簡易的に手作業の部分を自動化する方法を作ってみました。

しかし、竹やんさんのおっしゃる通り、タグを使って前場引けの数値を特定すれば、ループして、
エクセル上に落とせそうですね。やってみます。

これができれば、ちょっと大げさですがストラテジに革命がおこるかもしれません。
ありがとうございます。

  • 2017/03/19 (Sun) 17:07
  • キー坊 #-
  • URL

コメントの投稿


管理者にだけ表示を許可する