53歳限界プログラマの憂鬱

SU/CAR-ST-APplication-cellsから派生したプログラマのブログ

来訪ありがとうございます
シストレツールを自作してました
自分用の記事が多いのであまり役には立たないブログでした

f:id:sucar:20150414193802p:plain

自作システム詳細目次

CSN_1Aという戦略のバックテスト

追記)コロナショックにも対応できてない

f:id:sucar:20200601053805p:plain

更に追記)パラメタ弄ってた

supercar.hatenablog.com


追記終わり)

すみません ほぼ自分用記事です

CSN_1A という戦略

	MAIN	000
; -----市場----------------------
	NotT1
; ----------------------
	Var(ckc,22)
	Var(a1,15)
	Var(a2,29)
; ----------------
	IntV(zd,10)
	IntV(mn,30)
; ----------------------
_	CK_CNT=Vckc
	CK_CNT	22
; ---------------------
	DblD	-Va1	d1
	pAd(Dd1)
; ---------------------
	pD(Oku(1),Oku(500000))
; ---------------------
	DblD	-Va2	d2
	sAu(Dd2)
; ---------------------
_	Zday=Nzd
	Zday	10
_	MAXn=Nmn
	MAXn	30
dnl --------------------
	YSN 360000
	RKK 5
	SSN 5

 2014/10/28~2018/11/22の1000日データ

f:id:sucar:20181124203746p:plain

信用倍率2倍
DD:j=200:176,691( 1.74%) 資金=10,162,940 損益=9,035,723 (年2,644,601 年利 26.02%)

DD小さく年利20%以上

2012/11/28~2016/12/30の1000日データ

f:id:sucar:20181124204938p:plain

信用倍率2倍
DD:j=668:604,187( 5.68%) 資金=10,629,865 損益=12,248,285 (年3,584,863 年利 33.72%)

DDがちょっと大きいが年利は30%以上

まあ、DDは耐えられるレベル

2009/12/4~2013/12/30の1000日データ

f:id:sucar:20181124205702p:plain

信用倍率2倍
DD:j=867:474,333( 4.74%) 資金=10,016,245 損益=4,336,824 (年1,269,314 年利 12.67%)

DDは少し大きい(耐えられるレベル) 年利は10%ちょっとで物足りない

それ以前にシグナル少ない

2007/1/5~2011/2/4の1000日データ

f:id:sucar:20181124210809p:plain

信用倍率2倍
DD:j=437:4,949,243(44.43%) 資金=11,139,635 損益=-1,564,451 (年-457,888 年利 -4.11%)

結論

  • 2008年の暴落には対応できない
  • その後はDDも許容範囲でアベノミクス開始までは運用はできるが
  • シグナル少なく年利も低い
  • アベノミクス以降はgood

gr125255チェックで2007~2008レベルになったら運用停止して、別の戦略に譲った方がいいかも・・・・

 

 

CSN_1Cという戦略の2013年対策検討

CSN_1Cという戦略

abenomix.hatenablog.com

2013年の暴落に対しても少しDDが大きいので、パラメタ(変数)を弄ってみる

2009/12/4~2013/12/30の1000日データ

https://cdn-ak.f.st-hatena.com/images/fotolife/s/sucar/20181124/20181124144229.png

信用倍率2倍
DD:j=866:736,321( 5.83%) 資金=12,637,529 損益=10,102,361 (年2,939,717 年利 23.26%)

Vckc 22⇒26

信用倍率2倍
DD:j=866:736,321( 5.83%) 資金=12,637,529 損益=10,102,361 (年2,939,717 年利 23.26%)

まったく同じ

Vckc 22⇒32(+10)

信用倍率2倍
DD:j=864:369,270( 2.96%) 資金=12,459,029 損益=9,849,984 (年2,866,277 年利 23.01%)

資金微減、年利微減、DD1/2

Va1 29⇒33(+4)

信用倍率2倍
DD:j=848:536,175( 5.32%) 資金=10,080,764 損益=8,122,972 (年2,363,728 年利 23.45%)

資金20%減、年利微増、DD微減

Vckc 22⇒26 Va1 29⇒31

信用倍率2倍
DD:j=315:601,874( 5.32%) 資金=11,309,914 損益=8,726,029 (年2,539,213 年利 22.45%)

資金10%減、年利1%減、DD微減

結論

  • Vckc Va1 を大きくすると
  • 資金は最大20%減だが
  • 年利1%マイナス程度で
  • DDを1/2以下にまで小さくできた

 

CSN_1Cという戦略の2008年対策検討

追記)2020/5/17

コロナショックに対して 

Va1 29⇒33 Vckc 22⇒26

としたところ

f:id:sucar:20200517183523p:plain

儲かってないが多少は改善した
追記終わり)

 

CSN_1Cという戦略

abenomix.hatenablog.com

2008年の暴落に対してDDが大きいので、パラメタ(変数)を弄ってみる

2007/1/5~2011/2/4の1000日データ

https://cdn-ak.f.st-hatena.com/images/fotolife/s/sucar/20181124/20181124145019.png

 信用倍率2倍
DD:j=444:1,753,060(11.77%) 資金=14,890,615 損益=8,164,142 (年2,375,708 年利 15.95%)

まず、変数は

Vckc	22
Va1	29
Vzd	5
Vmn	30

 となってる

Vckc 22⇒26

信用倍率2倍
DD:j=433:1,134,334( 7.62%) 資金=14,890,615 損益=7,872,716 (年2,290,905 年利 15.38%)

資金変わらず、年利微減、DD2/3

Vckc 22⇒32(+10)

信用倍率2倍
DD:j=250:801,702( 5.38%) 資金=14,890,455 損益=6,940,180 (年2,019,544 年利 13.56%)

資金変わらず、年利2%マイナス DD1/2

Va1 29⇒33

信用倍率2倍
DD:j=433:861,146( 5.97%) 資金=14,433,230 損益=6,991,587 (年2,034,503 年利 14.10%)

資金微減、年利1%マイナス DD1/2

Vckc 22⇒26 Va1 29⇒31

信用倍率2倍
DD:j=250:739,354( 4.96%) 資金=14,905,980 損益=7,011,526 (年2,040,305 年利 13.69%)

資金微増 年利2%マイナス DD 1/2以下

結論

  • Vckc Va1 を大きくすると
  • 資金はほぼ変わらず
  • 年利2%マイナス程度で
  • DDを1/2以下にまで小さくできた

 

CSN_1Cという戦略のバックテスト

追記)2020/5/17

f:id:sucar:20200517143449p:plain


コロナショックには対応できずx_x

追記終わり)

 

すみません ほぼ自分用記事です

CSN_1C という戦略

	MAIN	000
; -----市場----------------------
	NotT1
; -------------------------------
	Var(ckc,22)
	Var(a1,29)
; ----------------
	IntV(zd,5)
	IntV(mn,30)
; ----------------------
_	CK_CNT=Vckc
	CK_CNT	22
; ---------------------
	DblD	-Va1	d1
	pAd(Dd1)
; ---------------------
	pD(Oku(1),Oku(500000))
_	Zday=Nzd
	Zday	5
_	MAXn=Nmn
	MAXn	30
dnl --------------------
	YSN 360000
	RKK 15
	SSN 0

追記2019/6/29追記)

最新表記(内容は同じ)一部おかしくて使っていない

	MAIN	000
; -----市場----------------------
	NotT1/sj
; -------------------------------
##2008 +4
	Vckc := 0
##2008 +4 2019 +2
	Va1 := 0
; ----------------
##使っていない
	IntV(mn,30)
##
; ----------------------
	CK_CNT := 22+Vckc
; ---------------------
	Dd1 := -29-Va1
	pA :< Dd1
; ---------------------
	pD : 1/ok 500000/ok
	Zday	5
;	DEF	DAIBUG
##おかしい
;_	MAXn=Nmn
##おかしい
	MAXn	30
dnl --------------------
	YSN 360000
	RKK 15
	SSN 0

    

 2014/10/28~2018/11/22の1000日データ

f:id:sucar:20181124143007p:plain

信用倍率2倍
DD:j=398:40,510( 0.36%) 資金=11,331,986 損益=8,563,989 (年2,492,061 年利 21.99%)

DD小さく年利20%以上

2012/11/28~2016/12/30の1000日データ

f:id:sucar:20181124143455p:plain

信用倍率2倍
DD:j=868:52,471( 0.44%) 資金=12,002,192 損益=13,228,006 (年3,849,258 年利 32.07%)

やはりDD小さく年利30%以上

2009/12/4~2013/12/30の1000日データ

f:id:sucar:20181124144229p:plain

信用倍率2倍
DD:j=866:736,321( 5.83%) 資金=12,637,529 損益=10,102,361 (年2,939,717 年利 23.26%)

DDがちょっと大きいが年利は20%以上

まあ、DDは耐えられるレベル

2007/1/5~2011/2/4の1000日データ

f:id:sucar:20181124145019p:plain

信用倍率2倍
DD:j=444:1,753,060(11.77%) 資金=14,890,615 損益=8,164,142 (年2,375,708 年利 15.95%)

DDはちょっと大きい 年利も15%

DD最大の444は2008/10/23

 結論

  • 基本ルール通り運用は可能
  • 2008年レベルの暴落に対しては少しチューニングした方がいいかも

※パラメタもすべて晒してますが、パラメタの内容までは解説してないので詳細はわからないと思います
ですが、何かの参考になれば・・・・

 

 

Esgrsdnl マニュアル(MAIN メインCソース指定)

Esgrsdnl という自作DSL でシストレルールを記述しているのですが、そのマニュアル

特殊パラメタ MAIN

MAIN  : メインCソース指定

記述例

    MAIN	000

 ベースとなるCソースを指定

今のところ、./suQ2/main/main_000.c

がメインCソースなので、000を指定

もしこの記述がないと、./suQ2/main/simxp8trsu_nobug2.c

が、メインCソースとなる

これは、メインCソースを改良して、互換性が失われるような際に、新たなメインCソースを新たに作り、Esgrsdnl上で指定することで、過去の資産がそのまま動くことを保証するための工夫(のつもり)

 

Esgrsdnl マニュアル(特殊パラメタ CK_CNT)

Esgrsdnl という自作DSL でシストレルールを記述しているのですが、そのマニュアル

特殊パラメタ CK_CNT

CK_CNT  : シグナル数フィルタ閾値 

監視銘柄数1000に対して、この設定値以上の数シグナルが出て初めてシグナルとする

(CNTはカウントですが、CKの意味が今となっては不明w)

記述例

CK_CNT	22

ただ、半角スペースまたはタブで区切って直接数値を指定すればよい

変数で書き換える場合

    Var(ckc,22)
_   CK_CNT=Vckc
CK_CNT 22

のように記述

注意として

  • CK_CNTはdoubleなのでIntV()ではなくVar()を使う
  • 先頭の"_"が必要で、かつ、"="で繋ぐ必要あり
  • CK_CNTはコンパイル時にfilter実現ソースを準備するので
  • ダミーで直接数値指定が必要

 2019/6/29追記)最新表記だと

	Vckc := 0
 	CK_CNT := 22+Vckc

といった表記も可能に

 ダミーで直接数値指定は不要

 

Esgrsdnl マニュアル(特殊パラメタ Zday MAXn)

Esgrsdnl という自作DSL でシストレルールを記述しているのですが、そのマニュアル

特殊パラメタ Zday と MAXn

Zday  : 何日保持するか? 省略時5

MAXn : 最大シグナル数(銘柄数) 省略時5

記述例

Zday	10
MAXn	30

ただ、半角スペースまたはタブで区切って直接数値を指定すればよい

変数で書き換える場合

	IntV(zd,10)
_	Zday=Nzd

	IntV(mn,20)
_	MAXn=Nmn
	MAXn	30

のように記述

注意として

  • ZdayもMAXnもintなので、IntV()を使う
  • 先頭の"_"が必要で、かつ、"="で繋ぐ必要あり
  • MAXnはコンパイル時に配列確保するので
  • デフォルトの5より大きくなる場合は
  • 直接数値指定が必要