
Эта стратегия использует в основном движущиеся средние и K-линии для принятия решений. Когда движущиеся средние и долгосрочные движущиеся средние пересекают короткие промежутки, они делают больше, а когда движущиеся средние и долгосрочные движущиеся средние пересекают короткие промежутки, они делают больше.
Вычислить скользящие средние для двух различных циклов EMA1 и EMA2. EMA1 - короткий, EMA2 - длинный.
Определить, будет ли EMA1 использовать EMA2, и если да, то сделайте больше.
Определить, является ли EMA1 свободным от EMA2, и если да, то освободить его.
В качестве входного сигнала используется определение того, будет ли цена закрытия преодолевать EMA1.
Стоп-выход: устанавливается фиксированная стоп-стоп или через Donchian channel.
Основными функциями являются:
Стратегическая концепция проста, ее реализация понятна.
Используя свойства отслеживания тенденций среднелинейной системы, можно эффективно отслеживать тенденции.
Прорыв в сочетании с закрытием цены K-линии используется в качестве входного момента, чтобы избежать ложного прорыва.
Гибкость в использовании равнолинейных комбинаций различных параметров для различных циклов.
Можно установить механизм сдерживания убытков для контроля риска.
Когда рынок находится в состоянии колебаний, уравнительная линия будет генерировать частые сигналы золотой форки, которые могут быть легко потеряны.
Фиксированная стоп-стоп может быть слишком жесткой и не может корректироваться в соответствии с изменениями рынка.
Среднелинейная система задерживается и легко пропускает обратный сигнал в точке перехода тренда.
Необходимо точно определить уклон равномерной линии для фильтрации ложных прорывов.
Необходимо осторожно выбирать параметры, слишком частое или задержанное сочетание параметров может повлиять на эффективность стратегии.
Для определения тенденции можно использовать нулевой пересечение MACD-индикатора, фильтруя колебания.
Дополнительно к Donchian channel можно установить динамическую линию стоп-порогов, улучшая фиксированные проблемы стоп-порогов.
При использовании индекса Брин-Бенд можно оценивать сильные и слабые тенденции, чтобы избежать неэффективной торговли на рынке во время колебаний.
Оптимизация комбинации среднелинейных параметров, тестирование эффективности различных циклических стратегий.
Можно рассмотреть возможность включения фиксированной скользящей средней для избежания задержек.
Общая концепция этой стратегии проста и понятна, используя обычную стратегию торговли равнолинейными золотыми спицами, в то же время в сочетании с прорывом в K-линии для эффективного фильтрации ложных сигналов. Пространство для оптимизации заключается в использовании других показателей для определения силы и слабости тренда, установки динамического стоп-порога и т. Д. В целом, классическая стратегия отслеживания тренда на основе равнолинейной линии легко понятна и стоит исследовать ее пространство для оптимизации.
/*backtest
start: 2023-09-01 00:00:00
end: 2023-10-23 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
strategy(title='Mega crypto bot strategy', shorttitle='megacryptobot_Strategy', overlay=true, pyramiding=0, initial_capital=10000, currency=currency.USD)
//Candle body resistance Channel-----------------------------//
len = 34
src = input(close, title="Candle body resistance Channel")
out = sma(src, len)
last8h = highest(close, 13)
lastl8 = lowest(close, 13)
bearish = cross(close,out) == 1 and falling(close, 1)
bullish = cross(close,out) == 1 and rising(close, 1)
channel2=input(false, title="Bar Channel On/Off")
ul2=plot(channel2?last8h:last8h==nz(last8h[1])?last8h:na, color=black, linewidth=1, style=linebr, title="Candle body resistance level top", offset=0)
ll2=plot(channel2?lastl8:lastl8==nz(lastl8[1])?lastl8:na, color=black, linewidth=1, style=linebr, title="Candle body resistance level bottom", offset=0)
//fill(ul2, ll2, color=black, transp=95, title="Candle body resistance Channel")
//-----------------Support and Resistance
RST = input(title='Support / Resistance length:', defval=10)
RSTT = valuewhen(high >= highest(high, RST), high, 0)
RSTB = valuewhen(low <= lowest(low, RST), low, 0)
RT2 = plot(RSTT, color=RSTT != RSTT[1] ? na : red, linewidth=1, offset=+0)
RB2 = plot(RSTB, color=RSTB != RSTB[1] ? na : green, linewidth=1, offset=0)
//--------------------Trend colour ema------------------------------------------------//
src0 = close, len0 = input(13, minval=1, title="EMA 1")
ema0 = ema(src0, len0)
direction = rising(ema0, 2) ? +1 : falling(ema0, 2) ? -1 : 0
plot_color = direction > 0 ? lime: direction < 0 ? red : na
plot(ema0, title="EMA", style=line, linewidth=1, color = plot_color)
//-------------------- ema 2------------------------------------------------//
src02 = close, len02 = input(21, minval=1, title="EMA 2")
ema02 = ema(src02, len02)
direction2 = rising(ema02, 2) ? +1 : falling(ema02, 2) ? -1 : 0
plot_color2 = direction2 > 0 ? lime: direction2 < 0 ? red : na
plot(ema02, title="EMA Signal 2", style=line, linewidth=1, color = plot_color2)
//=============Hull MA//
show_hma = input(false, title="Display Hull MA Set:")
hma_src = input(close, title="Hull MA's Source:")
hma_base_length = input(8, minval=1, title="Hull MA's Base Length:")
hma_length_scalar = input(5, minval=0, title="Hull MA's Length Scalar:")
hullma(src, length)=>wma(2*wma(src, length/2)-wma(src, length), round(sqrt(length)))
plot(not show_hma ? na : hullma(hma_src, hma_base_length+hma_length_scalar*6), color=black, linewidth=2, title="Hull MA")
//============ signal Generator ==================================//
period = input('720')
ch1 = request.security(syminfo.tickerid, period, open)
ch2 = request.security(syminfo.tickerid, period, close)
longCondition = crossover(request.security(syminfo.tickerid, period, close),request.security(syminfo.tickerid, period, open))
if (longCondition)
strategy.entry("BUY", strategy.long)
shortCondition = crossunder(request.security(syminfo.tickerid, period, close),request.security(syminfo.tickerid, period, open))
if (shortCondition)
strategy.entry("SELL", strategy.short)
///////////////////////////////////////////////////////////////////////////////////////////