Тренд-следящая стратегия с помощью движущихся средних использует комбинацию движущихся средних и быстрых движущихся средних для определения направления тенденции рынка, в результате чего генерируется торговый сигнал. Когда цены пересекают простые и быстрые движущиеся средние, они делают больше, а когда цены пересекают простые и быстрые движущиеся средние, они делают меньше.
Эта стратегия использует функцию sma для вычисления простой скользящей средней sma длиной 50 циклов, а также для вычисления быстрой скользящей средней fsma. fsma рассчитывается на основе sma плюс n циклов стандартной разницы цены в 6 раз.
Стратегия использует две булевые переменные long и short для записи состояния выигрыша и проигрыша. Когда цена пересекает sma и fsma, long ставится на 1, чтобы сделать выигрыш; когда цена пересекается, long ставится на -1, чтобы сгладить.
Стратегия использует трендовые переменные для записи трендовых суждений. Когда цена выше fsma и sma, тренд равен 1, что означает тенденцию к росту; когда цена ниже fsma и sma, тренд равен -1, что означает тенденцию к снижению.
В зависимости от реального времени тренда, генерируются сигналы о длинных и коротких сделках. Когда тренд переходит от понижения к росту, если цена выше fsma, то делают больше; когда тренд переходит от повышения к снижению, если цена ниже sma, то делают пустое.
В комплексе стратегии учитываются методы определения тенденций и прорыва в торговле, которые позволяют эффективно использовать торговые возможности, связанные с изменением тенденций.
Используя модель двойного подтверждения, одновременно обнаруживая две скользящие средние, можно эффективно отфильтровать ложные прорывы.
В сочетании с оценкой трендов и прорывными сделками, можно поймать возможности в точке перехода тренда.
Тест и оптимизация без обратной связи, все торговые сигналы генерируются в режиме реального времени, без кривой соответствия.
Логика стратегии проста и понятна, легко понять и изменить.
Параметры визуальной конфигурации, длительность цикла, кратность и т. д. могут быть изменены в зависимости от рынка.
Двухлинейная стратегия может привести к частым сделкам и обратным потерям.
Движущаяся средняя сама по себе является отсталой и может пропустить изменение тенденции.
Отсутствие механизмов по сдерживанию убытков, невозможность контролировать отдельные убытки.
Неправильные параметры могут привести к слишком частым или слишком задержанным сделкам.
Для рисков 1 и 2 может быть соответствующим образом продлен среднелинейный цикл и добавлено стоп-потеря для снятия.
Для риска 3 можно установить стопроцентный стоп или привязанный стоп.
Для риска 4 следует адаптировать параметры для различных рынков, избегая одного фиксированного параметра.
Добавление условий фильтрации тенденций с использованием MACD, DMI и других показателей подтверждения тенденций.
Для входа в рынок используются такие показатели, как KD, RSI и другие, в сочетании с перекупкой и перепродажей.
Добавление общего механизма остановки убытков, такого как отслеживание остановки убытков, процентная остановка убытков и т. д.
Добавление модулей управления позициями, таких как динамическое изменение размеров позиций.
Оптимизация параметров, чтобы они более эффективно адаптировались к различным циклам.
Добавление модулей машинного обучения для автоматической оптимизации параметров с использованием технологии ИИ.
Построение комплексной стратегии, использующей другие показатели для профилактики прорывов.
Используйте технологии глубокого обучения для выявления более сложных моделей тенденций.
Стратегия движущейся средней трендового отслеживания в целом является более простой стратегией трендового отслеживания. Она использует комбинацию медленной средней линии, чтобы помочь определить направление тренда, в точке перехода тренда, чтобы изменить тренд, чтобы эффективно улавливать переход ценовой тенденции. Но в этой стратегии также есть некоторые проблемы, такие как частота торговли, риск задержки и т. д.
/*backtest
start: 2022-10-26 00:00:00
end: 2023-11-01 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("SMA STRATEGY", shorttitle="SMA TREND", overlay=true, calc_on_order_fills=true)
length = input(title="Length", type=input.integer, defval=50)
src_=input(close, title="Source", type=input.source)
mult=input(6.0, title="Mult")
barc=input(true, title="Use barcolor?")
plots=input(false, title="Show plots?")
tri=input(false, title="Use triangles?")
r(src, n)=>
s = 0.0
for i = 0 to n-1
s := s + ((n-(i*2+1))/2)*src[i]
x=s/(n*(n+1))
x
l=sma(low, length)
h=sma(high, length)
lr= l+mult*r(low, length)
hr= h+mult*r(high, length)
trend=0
trend:=src_ > lr and src_ > hr ? 1 : src_ < lr and src_ < hr ? -1 : trend[1]
strategy.close("Long", when=trend==-1)
strategy.close("Short", when=trend==1)
strategy.entry("Long", strategy.long, when=trend==1 and src_>h)
strategy.entry("Short", strategy.short, when=trend==-1 and src_<l)
long=0
short=0
long:= trend==1 and src_>h ? 1 : trend==-1 ? -1 : long[1]
short:= trend==-1 and src_<l ? 1 : trend==1 ? -1 : short[1]
barcolor(barc? (long>0? color.green : short>0? color.red : trend>0? color.orange: trend<0 ? color.white : color.blue) : na)
plotshape(tri? close : na, style= shape.diamond, color= long>0? color.green : short>0? color.red : trend>0? color.orange: trend<0 ? color.white : color.blue, location=location.top)
//shortenter=
a1=plot(plots? l : na, color=color.blue, linewidth=1)
//longenter=
a2=plot(plots? h : na, color=color.blue, linewidth=1)
fill(a1, a2, color=color.blue)
//stopshort=
b1=plot(plots? hr : na, color=color.navy, linewidth=1)
//stoplong=
b2=plot(plots? lr : na, color=color.navy, linewidth=1)
fill(b1, b2, color=color.navy)