SU/CAR-ST-APplication-cells

自己流株シストレ真面目で時におバカな独り言ブログ

ぴけやねんの「俺ひまやねん」
ぴけやねん

Sort Uniq (percentile) C Awk R Selenium Tcl/Tk
Stock Trading APplication cells
ローマは一日にしてならず R,C

53歳限界プログラマの憂鬱
安倍野ミックス

にほんブログ村 株ブログ 株 自動売買へ
にほんブログ村 株ブログ 株 スイングへ
にほんブログ村 株ブログ シニア投資家へ

来訪ありがとうございます
←クリックいただくと励みになります

 自分用メモ
特に何も・・・

目的みたいなもの

f:id:sucar:20151115183011p:plain

夏休みだけど、市場は動いてて、しかも暴落中で、メンタル死んでる午後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ファイルができて、それを実行すると

バックテスト結果

f:id:sucar:20180811083154p:plain

こんなバックテスト結果が得られたり、

日々のシグナルをcsvファイルに吐いて、それを処理し、katalon recorder に読み込ませると、自動で発注作業してくれるって、まあ、改めて自画自賛ですが、よく作ったなぁこんなの・・・

と、まったくの自己満足の世界

その過程をブログにだらだら書いてるだけかもしれません

勿論、成績も大事なんですが、今年は自作システムの完成度を上げるのが一番の目的ということで・・・

まあ、成績ひどいので負け惜しみなんですけど・・・

 

 

f:id:sucar:20150414192227p:plain

CとRでス・パ・カー・エス・ティー
高級アセンブラC言語と統計分析R言語を
駆使して生まれたその名は、ス・パ・カー・エス・ティー!

f:id:sucar:20150414193802p:plain