
Эта стратегия использует преимущества движущихся средних, чтобы эффективно отслеживать рыночные тенденции и генерировать торговые сигналы в начале тренда.
Ключевыми показателями этой стратегии являются быстрая линия EMA и медленная линия EMA. Стратегия выполняется путем установки двух различных параметров линии EMA: скоростная линия EMA устанавливается на 10, медленная линия EMA - на 20. Среди них 10-дневная линия EMA реагирует на изменения цены быстрее, а 20-дневная линия реагирует медленнее. Когда краткосрочная линия EMA пересекает долгосрочную линию EMA, то краткосрочные средние цены начинают опережать долгосрочные средние цены вверх, что означает, что рынок может перейти в пассивное состояние, что вызывает сигнал к покупке; наоборот, когда краткосрочная линия пересекает долгосрочные средние цены вниз, то она начинает терять преимущество перед долгосрочными средними, что означает, что рынок может перейти в пассивное состояние, что вызывает сигнал к продаже.
Благодаря принципу пересечения медленной и быстрой линии EMA, эта стратегия в полной мере улавливает переходные моменты рыночных тенденций и может своевременно генерировать торговые сигналы. В то же время, сам индикатор EMA обладает способностью настраивать ложные сигналы и избегать частого открытия позиций во время рыночных колебаний. Это позволяет этой стратегии захватывать рыночные поворотные моменты и иметь более высокую доходность при одновременном сокращении ошибочных сделок.
В отношении вышеуказанных рисков можно оптимизировать путем введения дополнительных показателей, таких как увеличение условий фильтрации сделок, предотвращение ошибочных сигналов в сочетании с MACD-индикатором, использование самостоятельной скорости отклика индикатора EMA. Кроме того, необходимы разумные остановки и активные остановки.
Среди направлений, по которым эта стратегия может быть оптимизирована, можно назвать:
Эта стратегия использует принцип скрещивания двух быстрых и медленных линий EMA, чтобы захватить ключевые рыночные переломные моменты, и имеет сильный реальный эффект. В сочетании с вспомогательными показателями и оптимизацией стоп-лора, можно дополнительно повысить стабильность стратегии.
/*backtest
start: 2023-01-15 00:00:00
end: 2024-01-21 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("Backtest single EMA cross", overlay=true)
qty = input(100000, "Buy quantity")
testStartYear = input(2019, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testStartHour = input(0, "Backtest Start Hour")
testStartMin = input(0, "Backtest Start Minute")
testPeriodStart = timestamp(testStartYear, testStartMonth, testStartDay, testStartHour, testStartMin)
testStopYear = input(2099, "Backtest Stop Year")
testStopMonth = input(1, "Backtest Stop Month")
testStopDay = input(30, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear, testStopMonth, testStopDay, 0, 0)
testPeriodBackground = input(title="Color Background?", type=input.bool, defval=true)
testPeriodBackgroundColor = testPeriodBackground and time >= testPeriodStart and time <= testPeriodStop ?
#00FF00 : na
testPeriod() => true
ema1 = input(10, title="Select EMA 1")
ema2 = input(20, title="Select EMA 2")
expo = ema(close, ema1)
ma = ema(close, ema2)
avg_1 = avg(expo, ma)
s2 = cross(expo, ma) ? avg_1 : na
//plot(s2, style=plot.style_line, linewidth=3, color=color.red, transp=0)
p1 = plot(expo, color=#00FFFF, linewidth=2, transp=0)
p2 = plot(ma, color=color.orange, linewidth=2, transp=0)
fill(p1, p2, color=color.white, transp=80)
longCondition = crossover(expo, ma)
shortCondition = crossunder(expo, ma)
if testPeriod()
strategy.entry("Long", strategy.long, when=longCondition)
strategy.entry("Short", strategy.short, when=shortCondition)
plotshape(longCondition, title = "Buy Signal", text ="BUY", textcolor =#FFFFFF , style=shape.labelup, size = size.normal, location=location.belowbar, color = #1B8112, transp = 0)
plotshape(shortCondition, title = "Sell Signal", text ="SELL", textcolor = #FFFFFF, style=shape.labeldown, size = size.normal, location=location.abovebar, color = #FF5733, transp = 0)