Тенденция вследствие стратегии SMA

Автор:Чао Чжан, Дата: 2023-11-02 16:58:23
Тэги:

img

Обзор

Стратегия Trend Following SMA использует комбинацию простой скользящей средней (SMA) и быстрой SMA для определения направления тренда рынка и генерации торговых сигналов. Она длится, когда цена пересекает SMA и FSMA, и выходит длинной, когда цена пересекает ниже. Она становится короткой, когда цена пересекает ниже SMA и FSMA, и выходит короткой, когда цена пересекает выше. Стратегия обеспечивает динамические сигналы торговли без кривой, чтобы улавливать изменения тренда.

Логика стратегии

Стратегия использует функцию sma для расчета 50-периодного SMA и быстрого SMA fsma. fsma рассчитывается на основе SMA плюс 6 раз стандартного отклонения цены за n периодов.

Для записи длинных и коротких позиций используются две булевые переменные длинный и короткий. длинный устанавливается на 1 при пересечении цены выше sma и fsma для длинного входа, и -1 при пересечении цены ниже для выхода. короткий следует аналогичной логике для короткой позиции.

Изменная тренда используется для определения тренда. Она устанавливается на 1 при цене выше fsma и sma для восходящего тренда, и -1 при цене ниже fsma и sma для нисходящего тренда.

Торговые сигналы длинного и короткого формируются на основе направления тренда в режиме реального времени. Когда тренд меняется снизу вверх, если цена выше fsma, идти длинный. Когда тренд меняется сверху вниз, если цена ниже sma, идти короткий.

Стратегия сочетает в себе как методы следования трендам, так и методы прорыва, чтобы поймать возможности при изменении тренда.

Преимущества

  1. Использование двойного подтверждения двух МА фильтрует фальшивые побеги.

  2. Сочетание следующего тренда и прорыва приводит к поворотным моментам.

  3. Никакой настройки кривой или оптимизации для динамических торговых сигналов.

  4. Простая и понятная логика, легко понимаемая и модифицируемая.

  5. Настраиваемые параметры длины, множитель для разных рынков.

Риски

  1. Двойные пересечения MA могут привести к чрезмерным сделкам и отклонениям.

  2. Просрочка MA может пропустить раннее изменение тренда.

  3. Нет механизма остановки потери для контроля потери на одной сделке.

  4. Неправильная настройка параметров приводит к переоценке или отставанию.

  5. В случае, если риск 1 и 2 не соответствует критериям, то в случае, если риск 1 и 2 не соответствуют критериям, то в случае, если риск 1 и 2 не соответствуют критериям, то в случае, если риск 1 и 2 не соответствуют критериям, то в случае, если риск 1 и 2 не соответствуют критериям, то в случае, если риск 1 и 2 не соответствуют критериям, то в случае, если риск 1 и 2 не соответствуют критериям, то в случае, если риск 1 и 2 не соответствуют критериям, то в случае, если риск 1 и 2 не соответствуют критериям, то в случае, если риск 1 и 2 не соответствуют критериям, то в случае, если риск 1 и 2 не соответствуют критериям, то в случае, если риск 2 не соответствует критериям, в случае если риск 1 и 2 не соответствуют критериям.

  6. В случае, если риск не превышает 1%, то в случае, если риск превышает 1%, то в случае, если риск превышает 1%, то в случае, если риск превышает 1%, то в случае, если риск превышает 1%, то в случае, если риск превышает 1%, то в случае, если риск превышает 1%, то в случае, если риск превышает 1%, то в случае, если риск превышает 1%, то в случае, если риск превышает 1%, то в случае, если риск превышает 1%, то в случае, если риск превышает 1%, то в случае, если риск превышает 1%, то в случае, если риск превышает 1%.

  7. Для риска 4 параметры регулируются динамически для разных рынков.

Улучшение

  1. Добавьте фильтр тренда с использованием MACD, DMI для подтверждения тренда.

  2. Использовать KD, RSI для торговли с перекупленным/перепроданным средним отклонением.

  3. Добавьте общий стоп-лосс, например, стоп-остановку, стоп-процент.

  4. Добавить модуль измерения положения для динамической настройки.

  5. Оптимизируйте параметры для адаптации в разные временные рамки.

  6. Внедрить машинное обучение для автоматической настройки параметров.

  7. Создайте комплексную стратегию с дополнительными фильтрами.

  8. Используйте глубокое обучение для обнаружения сложных тенденций.

Заключение

Стратегия SMA - это простая система торговли трендом. Она использует быстрые и медленные MAs, чтобы помочь направлению тренда и захватить обратный тренд. Однако существуют риски, такие как whipsaw и lag.


/*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)

Больше