Стратегия следования за трендом с использованием постепенной скользящей средней


Дата создания: 2023-10-26 17:08:43 Последнее изменение: 2023-10-26 17:08:43
Копировать: 0 Количество просмотров: 666
1
Подписаться
1617
Подписчики

Стратегия следования за трендом с использованием постепенной скользящей средней

Обзор

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

Стратегический принцип

Эта стратегия использует несколько групп движущихся средних, таких как 18 циклов, 26 циклов и 36 циклов, чтобы улавливать ценовые тенденции. Когда краткосрочная средняя линия пересекает долгосрочную среднюю линию, считается, что она находится в восходящей тенденции, делая больше; когда краткосрочная средняя линия пересекает долгосрочную среднюю линию, считая, что она находится в нисходящей тенденции, делая больше.

В то же время, стратегия также использует такие индикаторы, как MACD, RSI и EFI, чтобы определить зоны перепродажи. Например, столбик MACD делает больше, чем отрицательное преобразование, а затем делает больше, чем отрицательное преобразование; высокий RSI делает больше, когда RSI возвращается, и более, когда низкий RSI возвращается; показатель EFI делает больше, чем больше, чем больше, чем больше, чем больше.

Правила игры:

Многослойный: проход на короткую среднюю линию на длинную среднюю линию AND MACD>0 AND RSI низкий отскок AND EFI<0

Пустой билет: короткая средняя линия, проходящая под длинной средней линией AND MACD<0 AND RSI высокий откат AND EFI>0

Правила остановки убытков:

Многократный стоп: EFI больше, чем обесценился, и цена опустилась ниже средней отметки

Прекращение пустых билетов: показатель EFI меньше обесценения И цена пробивает указанную среднюю линию

Стратегические преимущества

  1. Robustness and anti-fragility are key characteristics that help ensure resilience over time to capture major trend change points. Robustness and anti-fragility are key characteristics that help ensure resilience over time to capture major trend change points. Robustness and anti-fragility are key characteristics that help ensure resilience over time to capture major trend change points. Robustness and anti-fragility are key characteristics that help ensure resilience over time to capture major trend change points.

  2. Сочетание волатильных индикаторов используется для определения зоны перепродажи и перекупа, чтобы избежать преследования.

  3. Правила стоп-лосс учитывают тенденции и направления денежных потоков, эффективно контролируют риски.

  4. Параметры стратегии оптимизированы с помощью многократных тестов, чтобы адаптироваться к большинству ситуаций.

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

Анализ рисков

  1. В результате резкого падения, вызванного внезапными событиями, может возникнуть эффект прекращения убытков.

  2. В условиях шока частота торгов может быть слишком высокой, поэтому следует соответствующим образом скорректировать параметры, чтобы снизить частоту торгов.

  3. Продолжительное хранение может привести к увеличению убытков. Следует соответственно сократить средний цикл и своевременно прекратить убытки.

  4. При отслеживании имеется риск пересоединения, эффективность на диске еще проверяется.

Направление оптимизации

  1. Оптимизация частоты торгов и доходов, чтобы найти оптимальное сочетание параметров.

  2. Добавление алгоритмов машинного обучения, динамические параметры оптимизации, адаптация к изменениям рынка.

  3. Добавление адаптивных механизмов погашения убытков с использованием разных степеней погашения убытков в разных ситуациях.

  4. Вместе с другими показателями мы можем определить время входа в игру и повысить стратегическую устойчивость.

  5. Повышение стратегии управления капиталом, контроль размера отдельных позиций и управление общим риском.

Подвести итог

Стратегия последовательного отслеживания трендов с помощью многоразовых линий, которая позволяет эффективно отслеживать большие тенденции и достигать стабильной прибыли в долгосрочной перспективе. Стратегия имеет определенную стабильность путем оптимизации параметров, но все еще требует дальнейшего совершенствования механизмов контроля риска и самостоятельной адаптации, снижения отступления и повышения выигрыша. В целом, эта стратегия является простой практической программой отслеживания трендов, основная психология имеет сильную масштабируемость и заслуживает дальнейшего изучения.

Исходный код стратегии
/*backtest
start: 2023-09-25 00:00:00
end: 2023-10-25 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/
// © murdocksilva

//@version=5

strategy("Daily_Mid Term_Consulting BOLT")

//calculo longuitud
longuitud = input(58, title= "longitud_sma")


px = ta.sma(close, 1)
px2 = ta.sma(low, 1)

Length1 = input.int(18)
Length2 = input.int(18)
Length3 = input.int(26)
Length4 = input.int(36)
Length5 = input.int(78)
Length6 = input.int(1)
Length7 = input.int(1500)
Length8 = input.int(58)
Length9 = input.int(3000)
Length10 = input.int(2)
Length11 = input.int(14)
ma1 = ta.sma(low, Length1)
ma2 = ta.sma(high, Length2)
ma3 = ta.sma(close, Length3)
ma4 = ta.sma(close, Length4)
ma5 = ta.sma(close, Length5)
ma6 = ta.sma(close, Length6)
ma7 = ta.sma(close, Length7)
ma8 = ta.sma(close, Length8)
ma9 = ta.sma(close, Length9)
ma10 = ta.sma(close, Length10)
ma11 = ta.sma(close, Length11)

// calculo EFI
efi = (close[1]-close) * volume / 1000
efi_indicador = (efi[1] + efi) / 2

//Variable  RSI - calculo desv estandar
b = (px-ma10)*(px-ma10)
b2 = (px[1]-ma10[1])*(px[1]-ma10[1])
c = b + b2
c2 = c / 2
desv = math.sqrt(c2)/10

//calculo MACD
macd = ma4 - ma5

//calculo RSI
rsi = ta.rsi(close, 9)

// calculo Divergencia
ma = ta.sma(close, longuitud)
dist = close - ma
porcentaje = dist * 100 / close
ma_dista = ta.sma(porcentaje, 333)

//condición de entrada y salida long
long = ma1[1] < ma1 and ma2[1] < ma2 and macd > 0 and px > ma3 and efi_indicador < 9 and px > ma7 and macd[1] < macd
clong = efi_indicador > 22000 and px < ma8
strategy.entry("BUY", strategy.long, when = long)
strategy.close("BUY", when = clong)

//condición de entrada y salida short
short = ma1[1] > ma1 and ma2[1] > ma2 and macd < 0 and px < ma3 and efi_indicador > 9 and macd[1] > macd 
cshort =  efi_indicador < 14000 and px > ma8 and ma11 > desv
strategy.entry("SELL", strategy.short, when = short)
strategy.close("SELL", when = cshort)

//SL Y TP
//strategy.exit("long exit", "Daily_Mid Term_Consulting BOLT", profit = close * 40 / syminfo.mintick, loss = close * 0.02 / syminfo.mintick)
//strategy.exit("shot exit", "Daily_Mid Term_Consulting BOLT", profit = close * 40 / syminfo.mintick, loss = close * 0.02 / syminfo.mintick)

// GRAFICA smas
plot(ma1, color=color.new(color.orange, 0))
plot(ma2, color=color.new(color.orange, 0))
plot(ma3, color=color.new(color.orange, 0))
plot(ma4, color=color.new(color.orange, 0))
plot(ma5, color=color.new(color.orange, 0))
plot(ma6, color=color.new(color.green, 0))
plot(ma7, color=color.new(color.orange, 0))
plot(ma8, color=color.new(color.orange, 0))
plot(ma9, color=color.new(color.orange, 0))
//GRAFICA MACD
plot(macd, color=color.new(color.red, 0), style = plot.style_columns)
//GRAFICA DIVERGENCIA
plot(porcentaje, style = plot.style_columns)
//GRAFICA MA DIVERGENCIA
plot(ma_dista, color=color.new(color.white, 0))
//GRAFICA MA DIVERGENCIA
plot(desv, color=color.new(color.blue, 0))
//GRAFICA EFI
plot(efi_indicador, color=color.new(color.yellow, 0))
// GRAFICA RSI
l1 = hline(70, color=color.new(color.green, 0))
l2 = hline(30, color=color.new(color.green, 0))
plot(rsi, color=color.new(color.white, 0))




//prueba 1 stop loss and take profit
//sl = 0.05
//tp = 0.1    
//calculo de precio para sl y tp
//longstop=strategy.position_avg_price*(1-sl)
//longprofit=strategy.position_avg_price*(1+tp)

//shortstop=strategy.position_avg_price*(1+sl)
//shortprofit=strategy.position_avg_price*(1-tp)

//if (long)
  //  strategy.exit("BUY", strategy.long)

//sl and tp  long|short
//if strategy.entry("BUY", strategy.long)

//if strategy.position_avg_price > 0
//strategy.exit("BUY", limit = longprofit, stop = longstop)

//if strategy.position_avg_price < 0
//strategy.exit("SELL", limit = shortprofit, stop=shortstop)