Многофакторная количественная стратегия Great Delight сочетает в себе несколько технических индикаторов, включая скользящие средние, MACD и облако Ичимоку, как долгосрочную стратегию, следующую за трендом.
Принимая во внимание как долгосрочные, так и краткосрочные тенденции, а также проверку множественных факторов, эта стратегия может эффективно отфильтровывать шумные сделки, вызванные ложными прорывами.
Когда цена выше 200-дневного MA, стратегия считает, что рынок находится в бычьем тренде. До тех пор, пока 20-дневные индикаторы MA и MACD генерируют сигнал покупки одновременно, а цена выше высокой цены облака Ichimoku или внутри облака, генерируется сигнал покупки.
Когда цена опускается ниже 200-дневного MA, стратегия определяет начало медвежьего тренда. Требования к сигналу становятся более строгими: в дополнение к 20-дневным MA и MACD сигналам покупки, облако Ichimoku также должно дать сигнал покупки (зеленое облако или цена выше облака), прежде чем инициировать покупку.
Логика сигнала продажи аналогична, но обратная: на бычьем рынке свеча закрывается ниже дна облака или облака; на медвежьем рынке вводятся красные облака или 20-дневные сигналы продажи MA и MACD.
Наибольшее преимущество этой стратегии заключается в сочетании нескольких долгосрочных и краткосрочных индикаторов для определения рыночной ситуации, которая может эффективно отфильтровывать ложные сигналы.
Благодаря многоуровневым проверкам можно значительно улучшить уровень рентабельности.Кроме того, координация между долгосрочными и краткосрочными показателями также делает стратегию подходящей как для краткосрочных, так и для среднесрочных операций.
Основным риском этой стратегии является вероятность того, что несколько индикаторов дают неправильные сигналы одновременно.
Стратегия может быть оптимизирована из следующих аспектов:
Стратегия Great Delight отфильтровывает шум с помощью научных комбинаций индикаторов, обеспечивая постоянную прибыльность при одновременном контроле рисков. Учитывая как долгосрочные тенденции, так и краткосрочные возможности, она широко применима в среднесрочных и долгосрочных инвестициях.
/*backtest start: 2023-11-03 00:00:00 end: 2023-12-03 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy(title="MACD/EMA/SMA/Ichimoku Long Strategy",overlay=true) // Ichimoku conversionPeriods = input(9, minval=1, title="Conversion Line Periods"), basePeriods = input(26, minval=1, title="Base Line Periods") laggingSpan2Periods = input(52, minval=1, title="Lagging Span 2 Periods"), displacement = input(26, minval=1, title="Displacement") donchian(len) => avg(lowest(len), highest(len)) conversionLine = donchian(conversionPeriods) baseLine = donchian(basePeriods) leadLine1 = avg(conversionLine, baseLine) leadLine2 = donchian(laggingSpan2Periods) p1 = plot(leadLine1, offset = displacement, color=green, title="Lead 1") p2 = plot(leadLine2, offset = displacement, color=red, title="Lead 2") fill(p1, p2, color = leadLine1 > leadLine2 ? color(green,50) : color(red,50)) bottomcloud=leadLine2[displacement-1] uppercloud=leadLine1[displacement-1] // SMA Indicator - Are we in a Bull or Bear market according to 200 SMA? SMA200 = sma(close, input(200)) EMA = ema(close,input(20)) //MACD Indicator - Is the MACD bullish or bearish? fastLength = input(12) slowlength = input(26) MACDLength = input(9) MACD = ema(close, fastLength) - ema(close, slowlength) aMACD = ema(MACD, MACDLength) delta = MACD - aMACD // Set Buy/Sell conditions [main,signal,histo]=macd(close,fastLength,slowlength,MACDLength) buy_entry = if ((uppercloud>bottomcloud or close>max(uppercloud,bottomcloud)) and close>EMA and (delta>0 and close>min(uppercloud,bottomcloud))) or (close<SMA200 and delta>0 and close>EMA and (uppercloud>bottomcloud or close>max(uppercloud,bottomcloud))) true if close<EMA and ((delta<0 and close<min(uppercloud,bottomcloud)) or (uppercloud<bottomcloud and close>max(uppercloud,bottomcloud))) buy_entry = false strategy.entry("Buy",true , when=buy_entry) alertcondition(buy_entry, title='Long', message='Chart Bullish') sell_entry = if ((uppercloud<bottomcloud or close<min(uppercloud,bottomcloud)) and close<EMA and (delta<0 and close<max(uppercloud,bottomcloud))) or (close>SMA200 and delta<0 and close<EMA and (uppercloud<bottomcloud or close<min(uppercloud,bottomcloud))) true if close>EMA and ((delta>0 and close>max(uppercloud,bottomcloud)) or (uppercloud>bottomcloud and close<min(uppercloud,bottomcloud))) sell_entry = false strategy.close("Buy",when= sell_entry) alertcondition(sell_entry, title='Short', message='Chart Bearish') //plot(delta, title="Delta", style=cross, color=delta>=0 ? green : red )