
Эта стратегия использует пересечение равномерной линии для определения направления движения цены, дополненное золотой форкой для определения общей тенденции, для осуществления отслеживания тенденции.
Эта стратегия использует пересечение двух равномерных линий EMA и SMA для определения направления движения цены, EMA реагирует быстрее, а SMA реагирует более стабильно. Когда EMA проходит через SMA, она определяется как сильная тенденция к росту цены и делает больше; когда EMA проходит через SMA, она определяется как сильная тенденция к снижению цены и делает больше.
Кроме того, эта стратегия также использует скрещивание быстрого и медленного SMA для определения направления общей тенденции. Когда быстрое SMA пересекает медленное SMA, это является золотым форком, и цена оценивается как долгосрочная тенденция к росту; когда быстрое SMA пересекает медленное SMA, это является мертвым форком, и цена оценивается как долгосрочная тенденция к снижению.
Стратегия оценивается как возможность сделать больше, когда она проходит SMA на EMA. Если это время является золотой форкой, то это означает, что есть не только кратковременная динамическая поддержка, но и согласуется с долгосрочной тенденцией, что является хорошей возможностью сделать больше; если это время является мертвой форкой, то это означает, что есть только кратковременная динамическая поддержка, но не согласуется с долгосрочной тенденцией, что является более рискованной возможностью сделать больше.
Можно снизить риск, подтвердив сигнал в сочетании с другими показателями, оптимизировав параметры среднелинейного цикла или установив стоп-лосс.
В целом, эта стратегия является более стабильной и надежной стратегией отслеживания тенденций. Она учитывает одновременно краткосрочные движения цен и направление долгосрочной тенденции, формируя торговый сигнал с помощью перекрестных линий. По сравнению с одной равномерной стратегией, она сочетает в себе подтверждение двойных показателей и имеет более высокую надежность.
/*backtest
start: 2023-09-19 00:00:00
end: 2023-10-19 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Cryptoluc1d
//@version=4
strategy("Equal-Length EMA/SMA Crossover Strategy", initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=25, commission_type=strategy.commission.percent, commission_value=0.2, overlay=true)
// Create inputs
mom_length = input(title="Momentum Length (EMA=SMA)", defval=50)
bias_length_fast = input(title="Golden Cross Length (Fast)", defval=50)
bias_length_slow = input(title="Golden Cross Length (Slow)", defval=100)
// Define MAs
ema = ema(close, mom_length) // EMA/SMA crossover of the same period for detecting trend acceleration/deceleration
sma = sma(close, mom_length)
bias_fast = sma(close, bias_length_fast) // golden/death cross for overall trend bias
bias_slow = sma(close, bias_length_slow)
// Define signal conditions
buy_trend = crossover(ema, sma) and bias_fast >= bias_slow // buy when EMA cross above SMA. if this happens during a bullish golden cross, buying is in confluence with the overall trend (bias).
buy_risky = crossover(ema, sma) and bias_fast < bias_slow // buy when EMA cross above SMA. if this happens during a bearish death cross, buying is early, more risky, and not in confluence with the overall trend (bias).
buy_late = crossover(sma, bias_slow) and ema > sma // the SMA crossing the Slow_SMA gives further confirmation of bullish trend, but signal comes later.
sell = crossunder(ema, sma) // sell when EMA cross under SMA.
// Enable option to hide signals, then plot signals
show_signal = input(title="Show Signals", defval=true)
plotshape(show_signal ? buy_trend : na, title='Trend Buy', style=shape.triangleup, location=location.belowbar, color=color.green, text='TREND BUY')
plotshape(show_signal ? buy_risky : na, title='Risky Buy', style=shape.triangleup, location=location.belowbar, color=color.olive, text='RISKY BUY')
plotshape(show_signal ? buy_late : na, title='Late Buy', style=shape.triangleup, location=location.belowbar, color=color.lime, text='LATE BUY')
plotshape(show_signal ? sell : na, title='Sell', style=shape.triangledown, location=location.abovebar, color=color.red, text='SELL')
// Define entry and exit conditions
longCondition = ema > sma and bias_fast >= bias_slow // LONG when EMA above SMA, and overall trend bias is bullish
if (longCondition)
strategy.entry("BUY TREND", strategy.long)
exitLong = crossunder(ema, sma) // close LONG when EMA cross under SMA
strategy.close("BUY TREND", when=exitLong)
// // short conditions. turned off because up only.
// shortCondition = ema < sma and bias_fast <= bias_slow // SHORT when EMA under SMA, and overall trend bias is bearish
// if (shortCondition)
// strategy.entry("SELL TREND", strategy.short)
// exitShort = crossover(ema, sma) // close SHORT when EMA cross over SMA
// strategy.close("SELL TREND", when=exitShort)
// Enable option to show MAs, then plot MAs
show_ma = input(title="Show MAs", defval=false)
plot(show_ma ? ema : na, title="Momentum EMA", color=color.green, linewidth=1)
plot(show_ma ? sma : na, title="Momentum SMA", color=color.yellow, linewidth=1)
plot(show_ma ? bias_fast : na, title="Golden Cross SMA (Fast)", color=color.orange, linewidth=2)
plot(show_ma ? bias_slow : na, title="Golden Cross SMA (Slow)", color=color.red, linewidth=2)