NA0TA

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

OANDA:GBPJPY   Livre sterling / Yen japonais
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)

Clause de non-responsabilité

Les informations et les publications ne sont pas destinées à être, et ne constituent pas, des conseils ou des recommandations en matière de finance, d'investissement, de trading ou d'autres types de conseils fournis ou approuvés par TradingView. Pour en savoir plus, consultez les Conditions d'utilisation.