NA0TA

値動きのパターンを使ったストラテジー(試作)

OANDA:GBPJPY   ポンド/円
GBPJPY
今日はインジケータを使わないバーのパターンを使ったシステムのバックテストしました。
パターンベースのストラテジーはあまり作ったことが無いので今は勉強中です。

GBP/JPYの8時間足で2010年~現在までの期間で検証です。

システムのロジックはまず、ポジションを取っていない状態で(終値>前のバーの終値)の日をカウントします。
これを変数U-countとします。
ポジションを取っていない状態で(終値<前のバーの終値)の日をカウントします。
これを変数D-countとします。

U-countの数が7以上で(終値<2本前の終値)になったらショートエントリー。
D-countの数が7以上で(終値>2本前の終値)になったらロングエントリー。
そして、ポジションをとったらすべてのカウントを0に戻し、ポジションが無くなった時点でカウントを再開。

仕掛け値から5ATRの価格に指値でターゲットオーダーを出し、仕掛け値から2ATRの価格にストップロスを置きます

期待値もリカバリーファクターもなかなか良い数値で、ウォークフォワード分析でもほとんどの期間で利益が出ていました。
ですが、カウントの数のパラメータを変えると平均損益の標準偏差がかなりバラバラになってしまい
堅牢性が怪しく、オーバーフィッティングを疑われます。
パターンをつかった良いアイディアがあれば教えてくださいませ。
=========================================================
BCount = input(1, title="BCount", step=1, minval=1, maxval=10)
PCount = input(1, title="PCount", step=1, minval=1, maxval=10)

var UCount = 0.0
var DCount = 0.0

if close > close
UCount := UCount + 1

if close < close
DCount := DCount + 1

sell = UCount > BCount and close < close
buy = DCount > BCount and close > close

if strategy.position_size != 0
DCount := 0.0
UCount := 0.0

//買いシグナル△
LONG_SIGNAL = buy

//売りシグナル▽
SHORT_SIGNAL = sell

//ATRストップルール
tg_pointL = strategy.position_avg_price + atr_tg * atr
tg_pointS = strategy.position_avg_price + (-1*atr_tg * atr)
strategy.exit("TG","買い", limit = atr_tget == true ? tg_pointL : na, comment="買いATRターゲット")
strategy.exit("TG","売り", limit = atr_tget == true ? tg_pointS : na, comment="売りATRターゲット")
strategy.cancel("TG", strategy.openprofit < 0 or atr_tget == false or re_su == true)

lcL = strategy.position_avg_price - unit_val / qty_set
lcS = strategy.position_avg_price + unit_val / qty_set
trCL = strategy.position_avg_price - atr_stop * atr
trCS = strategy.position_avg_price + atr_stop * atr

trcL_set = lcL > trCL ? lcL : trCL
trcs_set = lcS < trCS ? lcS : trCS

strategy.exit("EX","買い", stop = atr_stopLoss == true ? trcL_set : na, comment="買い-ATRロス")
strategy.exit("EX","売り", stop = atr_stopLoss == true ? trcs_set : na, comment="売り-ATRロス")
strategy.cancel("EX", strategy.openprofit > 0 or atr_stopLoss == false)

免責事項

これらの情報および投稿は、TradingViewが提供または保証する金融、投資、取引、またはその他の種類のアドバイスや推奨を意図したものではなく、またそのようなものでもありません。詳しくは利用規約をご覧ください。