ストップ・ロスト・アンド・テイク・プロフィート戦略

作者: リン・ハーンチャオチャン, 日付: 2024-02-02 17:17:38
タグ:

img

概要

この戦略は,ドジパターンに基づいています.ドジパターンが表示されたとき,ドジの高値と前のキャンドルの高値の間に買いストップオーダーが配置され,ドジの低値と前のキャンドルの低値の間に販売ストップオーダーが配置されます.価格がストップオーダーをトリガーすると,固定ストップ損失と利益を得たり,ドジパターンの最高値と最低価格をストップ損失と利益を得たりして退場することを選択できます.この戦略は,ノイズをフィルタリングするために毎日と週間のようなより高いタイムフレームでうまく機能します.

戦略の論理

ドージーパターンは,供給と需要の関係が変化し,力がよりバランスが取られ,価格の逆転につながる可能性があることを示唆する.この戦略は,ドージーが示す価格逆転信号を利用し,ストップオーダーを通じて機会を把握する.特に,ドージーパターンを決定する基準は以下のとおりである.

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つの選択肢があります

  1. 固定ストップ損失と利益
strategy.exit("exit buy","buy stop",loss=SL, profit=TP, when=Use_SL_TP)
  1. Doji の最高値と最低値をストップ・ロストとして利用し,利益を取ります.
strategy.close("buy stop",when=not Use_SL_TP and close<dojilow) 

利点分析

この戦略の利点は次のとおりです.

  1. 簡単に実行できます
  2. ドージーパターンからの効率的な価格逆転信号を利用します
  3. リスク管理のために ストップ・ロストと 収益のパラメータを調整できます
  4. 騒音をフィルタリングするためにより長い時間枠でうまく機能します

リスク分析

この戦略にはいくつかのリスクがあります:

  1. ドジパターンは必ずしも価格逆転につながらないので,ストップ損失に直面する可能性があります. 解決策は,取引毎の損失を制限するために,ストップ損失距離を合理的に設定することです.
  2. 低時間枠で音が多すぎる ドジ信号は 日・週間のような高時間枠でしか動作しない
  3. ストップ・ロストと利益を取ることなく 無制限の損失のリスクを

オプティマイゼーションの方向性

戦略を最適化する方法:

  1. Dojiパラメータを異なる取引手段に最適化する.
  2. ストップ・ロスの組み合わせを試して 利益を得てください
  3. 動的ストップ損失 ATRをベースに
  4. 他の指標と組み合わせて最適な入力を決定します

結論

この戦略の全体的なパフォーマンスは良好である.ドジ価格逆転の機会を把握することで,適切な取引信号を生成することができる.また,実装し,複数のイン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)
    
    



もっと