この戦略は,ドジパターンに基づいています.ドジパターンが表示されたとき,ドジの高値と前のキャンドルの高値の間に買いストップオーダーが配置され,ドジの低値と前のキャンドルの低値の間に販売ストップオーダーが配置されます.価格がストップオーダーをトリガーすると,固定ストップ損失と利益を得たり,ドジパターンの最高値と最低価格をストップ損失と利益を得たりして退場することを選択できます.この戦略は,ノイズをフィルタリングするために毎日と週間のようなより高いタイムフレームでうまく機能します.
ドージーパターンは,供給と需要の関係が変化し,力がよりバランスが取られ,価格の逆転につながる可能性があることを示唆する.この戦略は,ドージーが示す価格逆転信号を利用し,ストップオーダーを通じて機会を把握する.特に,ドージーパターンを決定する基準は以下のとおりである.
body=close-open
range=high-low
abody=abs(body)
ratio=abody/range
data=(abs(open - close) <= (high - low) * Doji)
abs ((open-close) <= (high-low) * Doji パラメータである場合,それは Doji パターンとみなされ,ストップオーダーは配置されます.ストップオーダーの位置は:
longDist= longcandle[1] and range[1]>range? high: max(high,high[1])
shortDist= longcandle[1] and range[1]>range? low: min(low,low[1])
前回のキャンドルのボディが大きい場合,バイストップオーダーはドジの高値と前回のキャンドルの高値の間に配置されます.前回のキャンドルのボディが小さい場合,バイストップオーダーはドジの高値に置かれます.セールストップオーダーは同じ論理に従う.
出口には2つの選択肢があります
strategy.exit("exit buy","buy stop",loss=SL, profit=TP, when=Use_SL_TP)
strategy.close("buy stop",when=not Use_SL_TP and close<dojilow)
この戦略の利点は次のとおりです.
この戦略にはいくつかのリスクがあります:
戦略を最適化する方法:
この戦略の全体的なパフォーマンスは良好である.ドジ価格逆転の機会を把握することで,適切な取引信号を生成することができる.また,実装し,複数のインstrumentに適用することが簡単である.継続的なテストと最適化により,より良い結果が期待できる.
/*backtest start: 2024-01-02 00:00:00 end: 2024-02-01 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 //This is a simple strategy based on Doji star candlestick //It places two orders: buy stop at doji star high or previous candle high and sell stop at doji star low or previous candle low. //This strategy works very well with high time frames like Weekly TF because it eliminates the noise in doji formation. // strategy("Doji strategy W", overlay=true, calc_on_every_tick=true, pyramiding=0,default_qty_type=strategy.percent_of_equity,default_qty_value=100,currency=currency.USD) //INPUTS //MinDistance=input(100,'Minimum distance in ticks') Use_SL_TP=input(true,'Use stop loss and take profit?') TP=input(200,'Take Profit in ticks') SL=input(200,'Stop Loss in tiks') Doji = input(0.05, minval=0.01, title="Doji size", step=0.01) //VARIABILI body=close-open range=high-low abody=abs(body) ratio=abody/range longcandle= (ratio>0.6) //Doji data=(abs(open - close) <= (high - low) * Doji) plotchar(data, title="Doji", text='Doji', color=black) longDist= longcandle[1] and range[1]>range? high: max(high,high[1]) shortDist= longcandle[1] and range[1]>range? low: min(low,low[1]) dojilow=data==1?low:na dojihigh=data==1?high:na goStar=data==1?true:false ////////////////////////////////////////////////////////////////// //STRATEGY strategy.order("buy stop",true,stop=longDist, oca_name="Dojy Entry",when=goStar) strategy.order("sell stop",false,stop=shortDist, oca_name="Dojy Entry",when=goStar) strategy.exit("exit buy","buy stop",loss=SL, profit=TP, when=Use_SL_TP) strategy.exit("exit sell","sell stop",loss=SL,profit=TP, when=Use_SL_TP) strategy.close("buy stop",when=not Use_SL_TP and close<dojilow) strategy.exit("exit buy","buy stop",profit=TP, when=not Use_SL_TP) strategy.close("sell stop",when=not Use_SL_TP and close>dojihigh) strategy.exit("exit sell","sell stop",profit=TP, when=not Use_SL_TP)