Эта стратегия сочетает в себе двойные скользящие средние и индикаторы Supertrend для создания торговых сигналов и оценивает направление тренда через различные комбинации циклов для достижения высокой прибыльности.
Эта стратегия использует индикаторы MACD и Supertrend для определения времени входа на рынок. Двойные скользящие средние MACD определяют направление краткосрочного тренда, в то время как Supertrend определяет направление средне- и долгосрочного тренда.
Когда быстрая линия проходит через медленную линию вверх, это сигнал покупки. В это время, если средне-досрочный супертенд также является восходящим трендом, окончательный сигнал покупки генерируется для длинного. Наоборот, когда быстрая линия проходит через медленную линию вниз, это сигнал продажи. В это время, если средне-досрочный супертенд также является нисходящим трендом, окончательный сигнал продажи генерируется для короткого.
Стоп-лосс и прибыль устанавливаются на фиксированные значения.
Самое большое преимущество этой стратегии заключается в том, что она использует как двойные скользящие средние, так и Supertrend для определения направления рынка, объединяя среднесрочные краткосрочные и среднесрочные долгосрочные анализы, чтобы значительно повысить эффективность принятия решений и избежать ложных прорывов. Кроме того, Supertrend может корректировать параметры в соответствии с волатильностью рынка для адаптации к более широкому спектру рыночных условий.
Основной риск этой стратегии заключается в том, что фиксированные параметры стоп-лосса и прибыли могут упустить большие возможности получения прибыли. Кроме того, если есть расхождение между среднесрочными краткосрочными и среднесрочными долгосрочными суждениями, стратегия не будет работать должным образом. Мы можем уменьшить этот риск путем плавающего стоп-лосса и прибыли.
Эта стратегия может быть оптимизирована в следующих аспектах:
Увеличить динамический механизм корректировки стоп-лосса и прибыли и установить стоп-лосс и прибыль в соответствии с волатильностью рынка и тенденциями.
Оптимизировать параметры MACD для поиска параметров скользящих средних, более подходящих для целевого диапазона.
Оптимизировать параметры Supertrend для корректировки его чувствительности к рынку.
Увеличить другие показатели для суждения, чтобы предоставить более масштабные сигналы и улучшить эффективность стратегии.
Эта стратегия успешно сочетает в себе преимущества двойных скользящих средних и индикаторов Supertrend. Сочетая различные суждения о цикле, она отфильтровывает неправильные сигналы и получает лучшую отдачу на трендовых рынках. Мы можем еще больше повысить стабильность и рентабельность этой стратегии путем оптимизации параметров и корректировки механизма.
/*backtest start: 2024-01-28 00:00:00 end: 2024-02-04 00:00:00 period: 5m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 //Supertrend Strategy by breizh29 using *rajandran.r* Supertrend Indicator strategy("Super Trend 2 MACD", overlay=true) // MACD input source = input(close) fastLength = input(12, minval=1, title="MACD fast moving average") slowLength=input(26,minval=1, title="MACD slow moving average") signalLength=input(9,minval=1, title="MACD signal line moving average") // Calculation fastMA = sma(source, fastLength) slowMA = sma(source, slowLength) Macd = fastMA - slowMA Signal = sma(Macd, signalLength) res = input(title="Main SuperTrend Time Frame", defval="120") Factor=input(1, minval=1,maxval = 100) Pd=input(1, minval=1,maxval = 100) tp = input(500,title="Take Profit") sl = input(400,title="Stop Loss") Up=hl2-(Factor*atr(Pd)) Dn=hl2+(Factor*atr(Pd)) MUp=request.security(syminfo.tickerid,res,hl2-(Factor*atr(Pd))) MDn=request.security(syminfo.tickerid,res,hl2+(Factor*atr(Pd))) Mclose=request.security(syminfo.tickerid,res,close) TrendUp=close[1]>TrendUp[1]? max(Up,TrendUp[1]) : Up TrendDown=close[1]<TrendDown[1]? min(Dn,TrendDown[1]) : Dn MTrendUp=Mclose[1]>MTrendUp[1]? max(MUp,MTrendUp[1]) : MUp MTrendDown=Mclose[1]<MTrendDown[1]? min(MDn,MTrendDown[1]) : MDn Trend = close > TrendDown[1] ? 1: close< TrendUp[1]? -1: nz(Trend[1],1) Tsl = Trend==1? TrendUp: TrendDown MTrend = Mclose > MTrendDown[1] ? 1: Mclose< MTrendUp[1]? -1: nz(MTrend[1],1) MTsl = MTrend==1? MTrendUp: MTrendDown linecolor = Trend == 1 ? green : red plot(Tsl, color = linecolor , style = line , linewidth = 2,title = "SuperTrend") Mlinecolor = MTrend == 1 ? blue : orange plot(MTsl, color = Mlinecolor , style = line , linewidth = 2,title = "Main SuperTrend") plotshape(cross(close,Tsl) and close>Tsl , "Up Arrow", shape.triangleup,location.belowbar,green,0,0) plotshape(cross(Tsl,close) and close<Tsl , "Down Arrow", shape.triangledown , location.abovebar, red,0,0) up = Trend == 1 and Trend[1] == -1 and MTrend == 1 down = Trend == -1 and Trend[1] == 1 and MTrend == -1 plotarrow(up ? Trend : na, title="Up Entry Arrow", colorup=lime, maxheight=60, minheight=50, transp=0) plotarrow(down ? Trend : na, title="Down Entry Arrow", colordown=red, maxheight=60, minheight=50, transp=0) golong = Trend == 1 and Trend[1] == -1 and MTrend == 1 and Macd > Signal goshort = Trend == -1 and Trend[1] == 1 and MTrend == -1 and Macd < Signal strategy.entry("Buy", strategy.long,when=golong) strategy.exit("Close Buy","Buy",profit=tp,loss=sl) strategy.entry("Sell", strategy.short,when=goshort) strategy.exit("Close Sell","Sell",profit=tp,loss=sl)