Protra・Ptsimの「自動起動&終了」をXMLから動的に切り替える&全修正パッチ

「システムトレードの自動化」の記事を楽しみにされている皆さん、お久しぶりです。

気がつけば4月も終わりですね。

すでにゴールデンウィークの計画を立てられ、新入生や新入社員が少しずつ新しい環境に慣れ始めているころと思います。

 
 

ご存知のように、ここ3ヶ月ほど「システムトレードの自動化」を進めていませんでした。

 
 

え? 1日数十人しかこないようなクソブログ、誰も久しぶりじゃないし、どうでもいいって?

まあそれは否定しませんが、取り合えず久しぶりってことにしておいてください。

 
 
 

ここ最近は順調に「システムトレード」に関する記事のアクセス数が上がっています。

ようやく世間的にも「システムトレードと言えば『ねほり』」と認識されつつあるようで、シストレ戦略の代弁者になれる日が近づきつつあるようです。

 
 

目的なんだっけ……?

以前マルチストラテジーを作成し、日々のシグナルを確認していました。

完全自動化の前に、時間が許される時に売買してましたが、どういう訳か勝てません。

 
 

今回は閑話の会として、その辺りの考察とProtraの実装修正やパッチを作成します。

日銀のETF購入見送りが続いている

 

日経平均 日中は584円安

 
 

ギャアアアァァァーーーーーーーーーーーーーー!!!!!

 
 

定番のやりとりですが、最近の主な原因は

 
 

日銀のETF購入見送りが続いていること
 
 

らしく、次のグラフを見ると一目瞭然です。

日米で株価に乖離が出ても日銀のETF購入が行われず日経平均株価は上昇していません。

 
 

ただし、システムトレードでは、株が上がろうが下がろうが、動きが無かろうが「負けない」取引を過去数十年のバックテストで作り上げて実践しています。
 

このような株の動きに一喜一憂してはいけません。

マルチストラテジーの弊害

システムトレードでは、特徴が異なるアルゴリズムを組み合わせてリスク分散を図るのが定番です。

  • 異なるコンセプト(順張り、逆張り、空売り)
  • 市場分散(東証、マザーズ)
  • ロングショートの組み合わせ

しかし、経験上 順張りで単調増加するストラテジーを作るのは容易ではありません。

 
 

以前「グランビルの法則」を使った「じんぱち氏」の順張りを作成しました。

じんぱち氏風グランビルの法則もどきの期待値を検証(システムトレード)
株のルールは単純なゲームです。株が上がるのは、誰かが売りよりたくさん買ったからでしかなく、買いよりたくさん売れば下がるだけです。テクニカル分析は単なるオカルトに過ぎず、チャートを分析したところで将来の株価を完璧に予測すること...

 

そこから自分なりにストラテジーを改造し続け、次のようなバックテスト結果を得る事に成功。

 

 
 

もはや勝ったも同然!

と、この順張りを含んだ「マルチストラテジー」を2020年の秋から稼働させ、時々株を購入してました。

 
 

で、結果
 

 
 
毎月、負け続けた……
 

 
 
昨年の秋から運用を開始したこのストラテジーは、残念ながら市場でフルボッコされた挙句、既にご臨終されてます。

 

なんだコレ?ネタにしては洒落にならんぞ?

先週末、ようやく時間をとってマルチストラテジーを分解してバックテストを行うことが出来た。

 
 

 
 

昨年秋から曲がってるじゃねーか!!

 
 

なんで急に利益曲線が曲がるのよ?

日経平均株価は上がってるのに順張りで負ける要因って何よ?

 
 

もう、何が答えなのか分かりません。

 
 
 

Protraに対する独自修正部分の再整理

損失状況の確認が遅くなった理由があります。

 
 

今まで日記で紹介してきた実装以外にも、様々な改造を試み続けてました。

  • Protraの月足表示
  • 銘柄と同数のCSVの取り込み
  • Ptsimの売買結果を勝ち負けで色変更
  • Ptsimの売買結果をクリックで、Protraの銘柄該当箇所に飛ぶ

どれも失敗に終わったけどね。

さらに、その結果

 
 

C#知らないのに修正を入れすぎてGUIが壊れ、何も確認できなくなった。

 
 

更にはRevertも行わずに公式サイトによるアップデートも部分的に取り込んでいたので、もはや本線と差分が大きくて意味が分からぬ状況が続いてました。

 

今回は重い腰をあげ差分パッチを作ります。

因みに差分パッチに含む修正は次の通り。

Windowsアプリ(C#)の起動時の処理・任意タイミングでの終了(システムトレード自動化)
Protraを使ってシステムトレード完全自動化をするには、「Protra.exe」・・・株価更新「PtSim.exe」・・・・バックテスト実施2つのアプリケーションの動作を自動化しなければならない。一度、...
バックテスト完了後に売買結果をテキストに保存する(システムトレード)
過去のイザナミ愛用者のブログを読み漁ると、2015年頃までは独自ストラテジー・開発ヒントを公開されている方が多かったように感じます。ですが、次のようなバッシングを受けて、多くの方(hamhamseven氏など)が自粛されたという経緯...
最大連勝・最大連敗・平均年利などを追加する(システムトレード)
なぜバックテストすると近年は資産曲線が寝る(横ばい)なストラテジーが多いのか?前回、イザナミのサンプルストラテジーを実装してバックテストをしてみると、次のような結果になりました。この結果を見ると「2013年」ぐらいか...
Protra使い方発展編(ボリンジャーバンドを3/-3σまで表示する)
テクニカル分析には、テクニカル指標を活用します。分析手法 分析法の概要 テクニカル指標名 トレンド分析 株価の方向を教えてくれる 移動平均線、モメンタム、MACD、ボリンジャーバンドオシレーター分析 売買...

次の修正は、折角投稿したので公式にマージして欲しい……。

https://ja.osdn.net/projects/protra/ticket/39208

自動起動&終了を動的に切り替える

パッチ作成の前にもう一つ改造を施してみます。

自動化処理のために

  • Protra.cli.exe
  • Ptsim.cli.exe

という実行ファイル名でソースコードを書き換えてはビルドを行っていました。

 
 

今回は「conf/protra.xml」「conf/ptsim.xml」を書き換える事で、ビルド無しで動的に自動実行実施を切り替える修正を行います。

 
 

具体的には次のようにXMLに書き込めば自動処理を行うアプリケーションになります(「true」で「自動実行&自動終了」適用。デフォルトfalse)。

修正内容を抜粋すると次のとおり。

ページ下のパッチの中に含まれます。

独自拡張が増えてきたのでパッチ化&パッチ適用方法

Cygwin上でパッチ作って、適用しようとすると次のようなエラーが出て弾かれてました。

色々とググって試行錯誤した結果、確実にパッチ適用する方法は次のとおり。

これで、実装が壊れても戻せる。

まとめ

ストラテジーを失い、お金も失い、時間も失い、何も進んでない。

 

この順張りアルゴリズムは、2012年頃の手法だよ?

これが実践で使い始めたと同時に負け始めるって……。

 
 

完全自動化に向けて、動かすストラテジーが一つ無くなった……。

差分コード

今回作った差分コード。

Performance.cs」に関しては、修正が多く そのまま差し替えた方が良いのでパッチには入れてない。

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