双線突破策は,開盤価格と前日の波動幅をベースに,上線を突破するために多行し,下線を突破するために空行する.この策は,突破によって形成されるトレンド取引の機会を捉える.
最近のN根K線の最高値HHと最低値LLを計算する.
前日の最高閉店価格HCと最低閉店価格LCを計算する.
前日波動幅の範囲はHH-LCとHC-LLのより大きな値である。
上線BuyLineの開設価格にk1を加える*Range。
下線SellLineは,開盤価格からk2を引いた*Range。
値上がり時に多,値下がり時に空.
この戦略のメリットは
取引先が開場価格の近くで突破したトレンドの取引機会を捉える.
上下軌道は,主観的なものを避けるため,歴史的な波動に基づく自動設定である.
k値は,異なる品種に対応してカスタマイズできます.
突破形は清晰で,信号品質は高い.
ポジションの周期を柔軟に設定し,さまざまなレベルのトレンドを捉えます.
この戦略の主なリスクは
合理的な上下軌域を特定できないため,最適化過度のリスクがある.
突破は偽突破であり,ストップダメージを設定する必要があります.
固定保有時間は動的に対応できない.
回測周期が短く,曲合いが存在する可能性がある.
複数の空間の二国間取引は,実現するのが困難です.
対応方法:
k値のパラメータを最適化して,データ検出範囲を拡大する.
合理的な止損位置を設定し,単一損失を制御する.
傾向判断を高め,逆向きの取引を避ける.
持仓期間をその日までに短縮することを検討する.
ポジションを段階的に拡大する.
この戦略は以下の点から最適化できます.
動的調整上下軌道パラメータ k値。
取引量などの指標で突破信号が確認された.
モバイル・ストップ・損失保護の利潤を増加させる
突破の強さや弱さを評価し,開場者数を調整する.
トレンドと区間を区別し,戦略的に分解する.
双線突破戦略は開場価格の近くのトレンド取引機会を捉えることができる。しかし,そのパラメータ設定とポジション保持時間の最適化スペースは大きいので,リスク管理を十分に考慮する必要がある。実態では保守的なパラメータから始め,順次ポジションを拡大することが推奨されている。
/*backtest
start: 2023-09-11 00:00:00
end: 2023-09-18 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy("Dual Thrust Strategy",overlay=true,initial_capital=1000)
k1=input(0.67,type=float,step=0.01)
k2=input(0.62,type=float,step=0.01)
TimeFrame=input('240')
len=input(20)
HH=security(syminfo.tickerid,TimeFrame,highest(high,len),barmerge.lookahead_off)
LC=security(syminfo.tickerid,TimeFrame,lowest(close,len),barmerge.lookahead_off)
HC=security(syminfo.tickerid,TimeFrame,highest(close,len),barmerge.lookahead_off)
LL=security(syminfo.tickerid,TimeFrame,lowest(low,len),barmerge.lookahead_off)
Range=max(HH-LC,HC-LL)
BuyLine=security(syminfo.tickerid,"D",open,barmerge.lookahead_off)+k1*Range
SellLine=security(syminfo.tickerid,"D",open,barmerge.lookahead_off)-k2*Range
plot(BuyLine,color=blue,linewidth=2,offset=1,transp=70)
plot(SellLine,color=red,linewidth=2,offset=1,transp=70)
LongCondition=crossover(close,BuyLine)
ShortCondition=crossunder(close,SellLine)
strategy.entry("enter long",true,1,when=LongCondition)
strategy.entry("enter short",false,1,when=ShortCondition)
plotshape(LongCondition and strategy.position_size<0?low:na,style=shape.labelup,location=location.absolute,color=blue,text="Long",textcolor=white,size=size.small)
plotshape(ShortCondition and strategy.position_size>0?high:na,style=shape.labeldown,location=location.absolute,color=red,text="Short",textcolor=white,size=size.small)
alertcondition(LongCondition and strategy.position_size<0,title='Long_DT')
alertcondition(ShortCondition and strategy.position_size>0,title='Short_DT')