バックテスト完了後に売買結果をテキストに保存する(システムトレード)

過去のイザナミ愛用者のブログを読み漁ると、2015年頃までは独自ストラテジー・開発ヒントを公開されている方が多かったように感じます。

ですが、次のようなバッシングを受けて、多くの方(hamhamseven氏など)が自粛されたという経緯が読み取れます。

  • 手法の優位性が減るから止めてくれ!
  • そもそも、お前の販売するストラテジー買ったけど、儲らないぞ!
  • 秘密をそんなにバラすんじゃない!

要するに、最近儲かっていなくて、ルールがカーブフィッティングではないとしたら、残るのはトレーダーズ効果しかない、こういう判断プロセスが生まれてます。

うーん、個人的にはもっと知りたかったのでシステムトレードを始めるのが遅すぎたか・・・・・。

 

 

未だに、実践で使いたいストラテジーを発見していませんが、本命予定だったストラテジーが不具合だと分かる一週間は実装済の自動売買スクリプトを動作させていました。

その際に発生した問題を回避してみました。

そもそも、どうやって自動売買化しているの?

なぜ多くのシストレツールは自動売買機能をサポートしていないのか不思議で仕方ありません。

Protraで自動売買を実現するにはWindowsのGUIのコントロールが必要となります。

この間はPCは一切を触ることができません

さらに、何らかのトラブルに対するリカバリにも非常に弱いです。

そもそも、Windowsのパソコンでしか動かないので、ラズパイなどで安価な自動化・・・が難しいです。

 

 

問題は沢山ありますが、まずは、

  • 「バックテストが完了したか?」の判断がリアルタイムに分かるようにして待ち時間を撲滅する
  • バックテスト実施時にPCを操作できるようにする

という対応をしてみます。

バックテスト終了時間を推測してタイムアウトさせる。という方法がありますが、一般的には想定時間より長く時間を設定するので待ち時間が無駄です。

また、前回の私の実装は「あるキーワードが表示されたら、次の処理に進む」でしたが、実践で正しく動かないし、PC操作ができないのは同じです。

 

 

夢のような対応に見えますが、やっていることは簡単です。

バックテスト完了は「PtSim.exe」自身が一番知っているので、実装本体を書き換えるだけです。

・・・、まあ、それがハードルが高いのですが。調べました。

バックテスト完了後に処理結果を自動的にテキストに保存する

MainForm.csの実装を次のように書き換えました。

保存場所は「(Protraフォルダ)/data/log」の下になります。

パスは自由に書き換えても良いですし、Configから変更可能にしてもらっても良いかと思います。

実装ではファイルの上書きをしていますが、タイムスタンプ付けてバックログを残しても良いかと思います。

【想定している使い方】

テキストを開くと次のようなファイルが保存されています。

あとは前述通りにテキストをパースしたり自由にやってみてください。

【2019.9.16追記】タイムスタンプ、ストラテジー名を追記する

GitHubに公開済でしたが、記事にし忘れていました。

一層、バックテスト終わったらアプリを落としてしまえ!

もっと乱暴な対応だと、バックテストしたらアプリを自動的に落としてしまう方法もあります。

落としたくない場合もあると思うので、GUIにオプションを設けた方がよいかもしれません。

個人的には、これでも良いね。

タイトルとURLをコピーしました