夏休みだけど、市場は動いてて、しかも暴落中で、メンタル死んでる午後2時過ぎ
8:30~10:00くらいまで、ザラ場を見てて、早い段階で今日は反発と予想して、寄成戦略のシグナルのいくつかの発注作業
もともとザラ場監視は苦手なので、一応今日は放置で大丈夫と判断し・・・
結局、貴重な休日を何に使ったか? というと・・・
最新1000日データでバックテストができなくなる(シグナル全部消える)ってバグの原因を探るしんどい作業を実施
C言語ソースのあちこちにprintf文を埋め込んで、途中の変数を出力させるという原始的なデバッグ方法で・・・・
で、何とか原因が判明!
ただ、バグを直すとこれまでのバックテスト結果も変わってしまう可能性が高いので、暫定的な処置にとどめることに・・・
でも、やっかいなバグの原因がわかって一安心・・・・
で、タイトルの目的みたいなものなんだけども・・・
このところ、シストレブロガーさんのブログ休止、放置? がかなりあるので、懲りずに辞めない自分の目的みたいなものを書いとこうと・・・・
まず
やはり実弾を投じているので、利益が出ないと話にならないわけですが、そうであれば、今年はとっくにブログ休止、閉鎖してもおかしくないわけです
ただ、今のところ利益は最優先でもなく・・・
とにかく、まず、自分のシステムをある程度完成させたいということです
システムというのは、既存であれば、イザナミ、protra、iTradeにあたるものです
それも
CSN_0
; -----市場---------------------- ; NotT1 //何故か NotT1だとシグナルが全部出ないときがあるので外す dnl 2018/8/11- ; ---------------------- ; include(./inc/fix/filter0) Fix(filter0) # DEF _CK_CNT_ 22 _CK_CNT_ 22 ; Xp 75 ; --------------------- dnl DblV 0.4 a1 DblV 15 b1 dnl DblD Heihei75{0}*Va1-Vb1 d1 DblD -Vb1 d1 pAd(Dd1) ; --------------------- #d Oku(1) Oku(500000) pD(Oku(1),Oku(500000)) Zday 10 # DEF _MAXn_ 20 MAXn 30 dnl -------------------- dnl YSN 240000 dnl RKK 1 dnl 2018/8/5- YSN 360000 RKK 2 SSN 6
こんな感じのソースをテキストエディタで書いて、それでが戦略になっているといのが、自己満足の極みでして・・・
例えば protraだと
require "TIlib" def Num(price) unit = Unit2(price) return (1000000 / (unit * price)) * unit end if !$__INIT__ # TIlibのオブジェクトを生成する。 $MA_fast = MA_new(10) $MA_slow = MA_new(40) $Cross = Crossover_new(0, 0.0) $__INIT__ = 1 else MA_next($MA_fast) MA_next($MA_slow) end ma_fast = MA_value($MA_fast) ma_slow = MA_value($MA_slow) price = {+1}Open if !price price = Close end if ma_fast == null || ma_slow == null || !price # 指標の計算に必要な日数を経過していない場合は何もしない。 return end cross = Crossover_next($Cross, ma_fast, ma_slow) # entryの条件を判定する。 if !$long && cross > 0 && Close > 50 && Volume * Close > 10000 $long = Num(price) if $long == 0 # 100万円で買えないなら何もしない。 return end Buy(price, $long) $loss_cut = Yobine(price * 0.90) elsif $long if Low && Low <= $loss_cut # 逆指値でexitする。 Sell(Min($loss_cut, Open), $long) $long = 0 elsif cross < 0 # exitする。 Sell(price, $long) $long = 0 end end # Local Variables: # tab-width: 4 # End:
こんな感じの高級言語ぽくなるのですが、自分やつはアセンブラっぽいという・・・
ほんとに自己満足なんですが、このアセンブラっぽいてのがいいのですw
実際に、このアセンブラぽいやつをアセンブルすると、実際に実行可能なexeファイルができて、それを実行すると
バックテスト結果
こんなバックテスト結果が得られたり、
日々のシグナルをcsvファイルに吐いて、それを処理し、katalon recorder に読み込ませると、自動で発注作業してくれるって、まあ、改めて自画自賛ですが、よく作ったなぁこんなの・・・
と、まったくの自己満足の世界
その過程をブログにだらだら書いてるだけかもしれません
勿論、成績も大事なんですが、今年は自作システムの完成度を上げるのが一番の目的ということで・・・
まあ、成績ひどいので負け惜しみなんですけど・・・