В процессе загрузки ресурсов... загрузка...

Стратегия обратного движения двойных средних

Автор:Чао Чжан, Дата: 2023-10-24 10:56:08
Тэги:

双重移动平均线反转策略

Обзор

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

Принципы стратегии

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

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

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

Основная логика кода:

  1. Вычислить 20-дневную ЭМА и 60-дневную ЭМА
  2. Судить, стоит ли переходить 20-дневную ЭМА через 60-дневную ЭМА, а если да, то и дальше.
  3. Определить, следует ли снизить 20-дневную ЭМА через 60-дневную ЭМА, и если да, то сделать это.
  4. После входа в многопозиции, стоп-линия с максимальной ценой 3%
  5. После входа в пустую позицию, стоп-линия на 3% от минимальной цены
  6. Продолжает корректировать линию остановки при удержании

Анализ преимуществ

В частности, в частности:

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

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

В то же время в этой стратегии есть некоторые риски:

  1. Когда тенденции не видны, двойные уравнения могут часто пересекаться, что приводит к частым торговым потерям.
  2. Неправильное установление диапазона остановки может привести к тому, что остановка будет слишком свободной или слишком радикальной.
  3. Параметры, установленные в случае неправильной длины цикла, могут привести к пропуску ключевых сигнальных точек.
  4. В то же время, по мнению одного из пользователей сайта, "это может быть очень сложно".

Оптимизация рисков может быть осуществлена следующими способами:

  1. Если тенденции не очевидны, используйте систему фильтрации, чтобы избежать слепой торговли.
  2. Оптимизировать испытания на диапазоне остановки и установить соответствующий диапазон остановки.
  3. Найти оптимальные параметры настройки с помощью повторной проверки и настройки параметров.
  4. Сократить количество открытых позиций и снизить расходы на транзакции.

Оптимизировать мышление

Эта стратегия может быть оптимизирована в следующих аспектах:

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

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

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

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

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

  6. Присоединиться к механизму управления позициями, динамически регулировать позиции и диапазон стоп-лосса в соответствии с рыночными условиями.

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

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


/*backtest
start: 2023-09-23 00:00:00
end: 2023-10-15 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/


//@version=2
strategy("Noro's Bands Scalper Strategy v1.4", shorttitle = "Scalper str 1.4", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value=100.0, pyramiding=0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
takepercent = input(0, defval = 0, minval = 0, maxval = 1000, title = "take, %")
needbe = input(true, defval = true, title = "Bands Entry")
needct = input(false, defval = false, title = "Counter-trend entry")
needdb = input(true, defval = true, title = "Double Body")
len = input(20, defval = 20, minval = 2, maxval = 200, title = "Period")
needbb = input(true, defval = true, title = "Show Bands")
needbg = input(true, defval = true, title = "Show Background")
src = close

//PriceChannel 1
lasthigh = highest(src, len)
lastlow = lowest(src, len)
center = (lasthigh + lastlow) / 2

//Distance
dist = abs(src - center)
distsma = sma(dist, len)
hd = center + distsma
ld = center - distsma
hd2 = center + distsma * 2
ld2 = center - distsma * 2

//Trend
trend = close < ld and high < center ? -1 : close > hd and low > center ? 1 : trend[1]

//Lines
colo = needbb == false ? na : black
plot(hd2, color = colo, linewidth = 1, transp = 0, title = "High band 2")
plot(hd, color = colo, linewidth = 1, transp = 0, title = "High band 1")
plot(center, color = colo, linewidth = 1, transp = 0, title = "center")
plot(ld, color = colo, linewidth = 1, transp = 0, title = "Low band 1")
plot(ld2, color = colo, linewidth = 1, transp = 0, title = "Low band 2")

//Background
col = needbg == false ? na : trend == 1 ? lime : red
bgcolor(col, transp = 80)

//Body
body = abs(close - open)
smabody = needdb == false ? ema(body, 30) : ema(body, 30) * 2
candle = high - low

//Signals
bar = close > open ? 1 : close < open ? -1 : 0
up7 = trend == 1 and ((bar == -1 and bar[1] == -1) or (body > smabody and bar == -1)) ? 1 : 0
dn7 = trend == 1 and ((bar == 1 and bar[1] == 1) or (close > hd and needbe == true)) and close > strategy.position_avg_price * (100 + takepercent) / 100 ? 1 : 0
up8 = trend == -1 and ((bar == -1 and bar[1] == -1) or (close < ld2 and needbe == true)) and close < strategy.position_avg_price * (100 - takepercent) / 100 ? 1 : 0
dn8 = trend == -1 and ((bar == 1 and bar[1] == 1) or (body > smabody and bar == 1)) ? 1 : 0

if up7 == 1 or up8 == 1 
    strategy.entry("Long", strategy.long, needlong == false ? 0 : trend == -1 and needct == false ? 0 : na)

if dn7 == 1 or dn8 == 1
    strategy.entry("Short", strategy.short, needshort == false ? 0 : trend == 1 and needct == false ? 0 : na)

Больше информации