ドジスターパターンに基づくストップロスとテイクプロフィット戦略


作成日: 2024-02-02 17:17:38 最終変更日: 2024-02-02 17:17:38
コピー: 0 クリック数: 698
1
フォロー
1617
フォロワー

ドジスターパターンに基づくストップロスとテイクプロフィット戦略

概要

この戦略は,ドージー星形に基づいており,ドージー星形が発生すると,ドージー星高点と前K線高点の間に買取停止符を配置し,ドージー星低点と前K線低点の間に売出停止符を配置する.価格がトリガーされたとき,停止符の後に,固定ストップで出場するか,またはドージー星形の最高価格と最低価格でストップで出場する.この戦略は,日線や周線などの高時間枠で動作するのに適しており,ノイズを効果的にフィルターします.

戦略原則

ドージー星形が現れたとき,現在の供給・需要の関係が変化し,買い手・売り手の力が均衡に向かい,価格が逆転する可能性があることを示している.この戦略は,ドージー星形が予告する価格逆転信号を利用して,ストップ・シングルを配置することによって逆転の機会を捕捉するものである.具体的には,ドージー星形を判断する条件は,

body=close-open  
range=high-low
abody=abs(body)
ratio=abody/range
data=(abs(open - close) <= (high - low) * Doji)

絶対値 (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])

前K線が大きい場合は,Doji星高点と前K線の高点の間にあるストップカードを購入する. 前K線が小さい場合は,Doji星高点としてストップカードを購入する. ストップカードを販売する.

試合のルールには2つの選択肢があります.

  1. 固定ストップストローで出場
strategy.exit("exit buy","buy stop",loss=SL, profit=TP, when=Use_SL_TP) 
  1. ドジスターの最高値と最低値でストップ・ストラストを展開する.
strategy.close("buy stop",when=not Use_SL_TP and close<dojilow)

優位分析

この戦略の利点は以下の通りです.

  1. 操作が簡単で実行しやすい.
  2. Doji星が提示する価格逆転の信号を利用して,逆転の機会を捉えましょう.
  3. 設定可能な止損停止パラメータ,リスク制御
  4. 高い時間枠での動作に適し,ノイズをフィルタリングする.

リスク分析

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

  1. ドジスターの形状は必ずしも価格の逆転をもたらすわけではないが,ストップが起こる可能性がある.解決策は,合理的なストップの距離を設定し,単一損失を制御することである.
  2. 低時間枠で動作するときは,ドジ信号に過剰なノイズがある可能性があります. 解決策は日線周線などの高時間枠でのみ動作することです.
  3. 止損止めを設定しない場合,無限損失のリスクがあります. 解決方法は,止損止め機能を正しく使用することです.

最適化の方向

この戦略は以下の方向から最適化できます.

  1. Dojiパラメータを最適化して,異なる取引品種の最適なパラメータの組み合わせを見つけます.
  2. 異なる止損停止パラメータをテストし,最適なパラメータの組み合わせを見つけます.
  3. ATRの動的計算による止損距離.
  4. 他の指標と組み合わせて最適な入学時間を決定する.

要約する

この戦略は全体的に良好な動作をしており,Dojiの価格逆転の機会を捉えることで良い取引シグナルを得ることができます.同時に,戦略は操作が簡単で,実装が簡単で,複数の取引品種に適しており,実用的な量化取引戦略です.継続的なテストと最適化により,より良い戦略効果が得られることが期待されます.

ストラテジーソースコード
/*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)