株価データcsvフォーマット変換
追記)フォーマット変換が複雑になってるので、整理予定
株価データを準備して所定のフォルダに置いて
をクリックすると
tcltk2/scr2.tcl に
.m.m1 add command -label "HenkanDauto" -underline 0 -command {exec bash -c ./henkanDauto &}
と記述されてるので、
henkanDauto
#!/bin/bash for var in `ls ./henkan/before/D*csv` do year=`echo $var | cut -c 18-19` month=`echo $var | cut -c 20-21` day=`echo $var | cut -c 22-23` stocks=./henkan/stocks/stocks_20${year}-${month}-${day}.csv cat $var | awk -f ./awk/henkanD2new.awk > $stocks echo mv -f $var ./henkan mv -f $var ./henkan echo cp $stocks ./stocksnew cp $stocks ./stocksnew done exit
というshell script が実行され、入手データのフォーマットを変換してくれます
実際に変換を行っているのは
#!/bin/awk BEGIN { FS="," #print "henkanD2new" print "コード,銘柄名,市場,始値,高値,安値,終値,出来高,売買代金,henkanD2new" } # 1,2行目を無視 NR>2 { printf("%s-T,",$2) printf("dummy,") printf("dummy,") if ($4==0) {printf(",")} else {printf("%s,",$4)} if ($5==0) {printf(",")} else {printf("%s,",$5)} if ($6==0) {printf(",")} else {printf("%s,",$6)} if ($7==0) {printf(",")} else {printf("%s,",$7)} printf("%s,",$8) printf("%d\n",($4+$7)*$8/2) #売買代金=(始値+終値)*出来高/2で代用 } END {}
です(ちなみに日本語シフトJIS LF(UNIX)となってますね)
もし、入手するデータフォーマットが変わったら、このあたりを変更することになります
更にちなみに変換後のcsvデータは シフトJIS CRLF になってます
これで1回目の変換が実行され、前に入手していた新しいタイプのcsvフォーマットに変換されてます
で、あと2回変換が行われることになります
この辺は何とか簡潔にしたいのですが、動いているからまあいいか状態ですw
上場廃止銘柄除外の登録
毎日の作業でまず最初に上場廃止銘柄除外登録を行います
Preparation→jjhsi をクリックすると
上場廃止銘柄(取引注意銘柄)|取引注意銘柄 |セミナー・マーケット情報|株のことならネット証券会社【カブドットコム】
↑がブラウザで開き、同時に設定ファイルがエディタで開くので、そこに(手動でw)4桁のコードを登録します
これで、バックテスト及びシグナル出しの際に登録した銘柄が除外されます
(バックテストで除外されるのはちょっと困ったことでもあるんですが仕方ないかと)
ちなみに設定ファイルは
になってるようです
※システムの改行コードが混在しててちょっとまずいかもしれません まあ動いてるのでいいか状態w
株価データについて・・・
株の自作システムの詳細について書いていこうと・・・
ひょっとしたら自分で(大規模な?)株のスィングトレード用のシステム(アプリ)をプログラムしてみたいと思っている人もいるかと思いますので、私のシステムの詳細を(グダグダと)書いて行ってみようかと思ってます
現在のパネルがこんな感じで、Tcl/Tkで書いてます
とりあえず簡易的なGUIはできてますが、プログラム本体はCUIで、shell script 駆使してます
マニュアルも開発仕様書もない状態のフルスクラッチソフトですので、まあ、記事書くことで自分のためになるので・・・・・
使っている言語は
shell script (bash)
m4
Tcl/Tk
こんなところです
バックテストでこんな資産グラフが描けます
CSN_1Aという戦略の2008年対策検討
CSN_1Aという戦略
2008年の暴落に全く対応できていないので、パラメタ(変数)を弄ってみる
2007/1/5~2011/2/4の1000日データ
全くだめ!
変数は
Vckc 22 Va1 15 Va2 29 Vzd 10 Vmn 30
となってる
いろいろやったが割といい結果になったものだけ掲載
Va1 15⇒25(+10) Va2 29⇒33(+4)
信用倍率2倍
DD:j=249:357,783( 5.50%) 資金=6,509,645
損益=2,528,449 (年740,033 年利 11.37%)
結論
- 年利10%程度だが
- Va1,2を大きくすれば
- 許容DD内で運用可能
追記)同じパラメタ調整をしてもコロナショックには対応できず
追記終わり)
CSN_1Aという戦略のバックテスト
追記)コロナショックにも対応できてない
更に追記)パラメタ弄ってた
追記終わり)
すみません ほぼ自分用記事です
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日データ
信用倍率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日データ
信用倍率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日データ
信用倍率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日データ
信用倍率2倍
DD:j=437:4,949,243(44.43%) 資金=11,139,635 損益=-1,564,451 (年-457,888 年利 -4.11%)
結論
gr125255チェックで2007~2008レベルになったら運用停止して、別の戦略に譲った方がいいかも・・・・