
この戦略は,主にEMA平均線指標と標準差指標を使用して,EMA平均線の交差信号によってトレンドの方向を判断し,標準差指標を使用して突破信号を探し,購入と販売のシグナルを生成する.価格が上線を突破するときに購入のシグナルを生成し,下線を突破するときに販売のシグナルを生成する.これはトレンド追跡型の戦略である.
この戦略は主に3つの部分から構成されています.
EMA平均線差値 ((s2)):速速のEMA平均線 ((ema_range) を減算して,遅速のEMA平均線 ((ema_watch) の差値を計算する.この差値は,価格トレンドの方向を判断するために使用される.
標準差の上下軌道 ((s3)):EMA平均線差値に基づいて,標準差の倍数を加えて,上下軌道帯を構築する。この中で標準差の倍数は,金分数5.618を使用する。
旗形とシグナル:価格が下から上へ突破すると,買入シグナルが生成され;価格が上から下へ突破すると,売り出シグナルが生成されます.同時に,シグナルが生成されると,旗形でマークされます.
この組み合わせの指標は,価格のトレンドの方向を捉え,キーポイントで買入と売却のシグナルを生成し,典型的なトレンド追跡戦略に属します.
この戦略には以下の利点があります.
この戦略にはいくつかのリスクがあります.
リスクは以下の方法で最適化できます.
この戦略は以下の方向から最適化できます.
この戦略の全体は,より典型的なトレンド追跡戦略に属し,EMAと標準差を用い,指標体系を構築し,重要なポイントで旗状の信号を生成する.戦略の優位性は,トレンドを捕捉し,標準差を用いることで誤信号を回避することにある.リスクは,主に,揺れ動いている市場の誤信号と無止境の損失による引き戻しのリスクにある.判断指標を増やし,最適化パラメータ,および止損を加えることで,戦略の安定性と収益性をさらに強化することができる.全体的に言えば,この戦略の枠組みは合理的で,大きな最適化余地がある.
/*backtest
start: 2023-09-27 00:00:00
end: 2023-11-26 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("ROCKET_EWO", overlay=true)
ema_range = input(5)
ema_watch = input(13)
inval_a = input(open)
inval_b = input(open)
ratio = input(0)
max = 5000
s2=ta.ema(inval_a, ema_range) - ta.ema(inval_b, ema_watch)
c_color=s2 <= ratio ? 'red' : 'lime'
s3 = s2 + (ta.stdev(open, 1)) * 5.618
plotshape(s3, color=color.white, style=shape.cross, location=location.abovebar, size=size.auto, show_last=max, transp=30, offset= 0)
cr = s2 > 0
alertcondition(cr, title='[Rocket_EWO]', message='[Rocket_EWO]')
buy = s2 > 1
sell = s2 < -1
txt = "🚀" + "\n"+ "\n"+ "\n"+ "\n"
plotshape(buy, color=color.lime, style=shape.triangleup, location=location.belowbar ,color=color.white, text=txt, size=size.normal, show_last=max, transp=1, offset= -3)
plotshape(not buy, color=color.red, style=shape.triangledown, location=location.belowbar, size=size.normal, show_last=max, transp=1, offset= 0)
signalperiod = time
s4 = ta.cross(s2, 0) ? time : na
colsig= s2 <= ratio ? color.red : color.lime
plotshape((time==s4)?7000:na,color=color.blue, style=shape.flag, location=location.abovebar, size=size.large, transp=1)
longCondition = ta.crossover(s2, 1.618)
if (longCondition)
strategy.entry("LONG Id", strategy.long)
shortCondition = ta.crossunder(s2, 1.618)
if (shortCondition)
strategy.entry("SHORT Id", strategy.short)
strategy.close("LONG Id", when = s2 < 0.218)
// strategy.risk.max_drawdown(75, strategy.percent_of_equity)