自作DSL(Esgrsdnl)で株シストレ

株シストレ用の自作DSLの概要

自作シストレツールにて5年以上日本株のシストレを実施していましたが今はやってません

Esgrsdnl と名付けた自作DSLで戦略(ルール)を記述し、コンパイルすることでバックテスト及びシグナル出しが実行できるシステムが動いているので、その概要をこちらに纏めていくつもりでしたが頓挫してます

SU/CAR-ST-APplication-cells 操作例:戦略の登録(自分用記事)

自作したシステムは公開してないので自分用記事になりますが・・・・

メインパネルは2020/6/14現在

f:id:sucar:20200614132050p:plain

こうなっています

順序が逆ですが

0~59の60個の戦略(ルール)を登録でき、番号で呼び出せますが、戦略の登録は・・・

f:id:sucar:20200613193911p:plain

メニューから[systemQ2]->[Edit buyjcl]を選びます

f:id:sucar:20200613194203p:plain

エディタが設定ファイルを開くので登録していきます

#はコメントですので古い設定をコメントアウトしてます

コメントを消してみるとこうなってますが、

D	0	05C_OR_0	asis
I	8	05C_OR_0NF	asis
I	5	CSN_1C		asis
I	7	CSN_1A		asis
I	9	CSN_1S		asis
I	14	AsCMav_0	asis
I	15	AsCMav_0C	asis
Y	1	m5_2m_1		asis
I	13	m5_2m_2		asis
Y	2	m5_2m_1SN	asis
I	10	05C9y0_NotT1	asis
I	12	05C9y0CNotT1	asis
W	3	05C_9y_0T1	asis
I	18	05C_9y_0CKT1	asis
I	6	05C_9y_0NFT1	asis
I	11	mp16_3_0T2	asis
I	16	AsCMav_0T1	asis
I	17	AsCMav_0CT1	asis
G	19	U07A_0		asis
G	20	U05A_0		10	40	0	15
G	4	R_NOW_IMP	asis
  1. コマンド
  2. 番号
  3. 戦略(ルール)名
  4. asis

の順にtabで区切って書きます

asis と書くと、戦略(ルール)に設定したままの設定になりますが

  1. コマンド
  2. 番号
  3. 戦略(ルール)名
  4. 保持日数
  5. 1銘柄投入金額(万円)
  6. entry
  7. exit

と自由に設定できます

番号20だけその設定になってます

ただ、この設定はバックテストには反映されず、シグナル出しの時だけなので通常はasisと書いときます

ついでにいうと今のところ[a-zA-Z]+ つまりアルファベットで始まる単語なら何でもいいです(将来asis以外に何かする場合は対処予定)

 

コマンドですが

  • Gコマンド Go   普通に実行
  • Vコマンド Variable  変数を弄って実行
  • Dコマンド Dump 実行時株データをダンプ
  • Iコマンド Import ダンプデータを読み込んで実行
  • Wコマンド D+V でW 
  • Yコマンド I+Vで Y

の6個を使用できます(Kコマンドは登録できない)

簡単には全部GコマンドかVコマンドで登録すればいいのですが、毎日のシグナル出しの際、先頭から実行するので

  • 最初はDコマンドかWコマンドで株データをダンプする
  • 以降はIコマンドかYコマンドでダンプ株データをインポートする

とやると、処理速度が大幅にUPします

同じ株データを使う戦略を纏めて順番に登録するのが速度UPのコツです

バックテストだと関係ありません

f:id:sucar:20200613200450p:plain

エディタで保存したらメニューから[systemQ2]->[Mkmtrules2]を実行すれば登録完了です