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

Автор:Чао Чжан, Дата: 2023-12-29 16:45:51
Тэги:

img

Обзор

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

Принципы

Стратегия одновременно вычисляет две группы быстрых и медленных линий. Параметры быстрой линии устанавливаются на 20 дней для открытия позиций и 10 дней для закрытия позиций. Параметры медленной линии составляют 55 дней и 20 дней соответственно. Когда цена пересекает высочайшее значение периода открытия быстрой линии, она запускает длинный сигнал. Когда цена падает ниже самого низкого значения периода открытия быстрой линии, она запускает короткий сигнал. Аналогично, когда цена падает ниже самого низкого значения периода закрытия быстрой линии, она закрывает длинные позиции. Когда цена проходит через самое высокое значение периода закрытия быстрой линии, она закрывает короткие позиции.

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

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

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

Риски и способы их смягчения

  1. Сама стратегия является механической и не может делать суждений о особых рыночных условиях, поэтому имеет ограничения прибыли;
    • Попытка включить больше показателей или моделей машинного обучения для облегчения принятия решений
  2. Движущиеся средние как отстающие показатели имеют некоторую задержку;
    • Соответственно сократить периоды открытия и закрытия
  3. Невозможно ограничить максимальное использование.
    • Установка точек остановки потери

Руководство по оптимизации

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

Резюме

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


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

//@version=2
//coded by tmr0
//original idea from «Way of the Turtle: The Secret Methods that Turned Ordinary People into Legendary Traders» (2007) CURTIS FAITH
strategy("20 years old Turtles strategy by tmr0", shorttitle = "Turtles", overlay=true)

enter_fast = input(20, minval=1)
exit_fast = input(10, minval=1)
enter_slow = input(55, minval=1)
exit_slow = input(20, minval=1)

fastL = highest(enter_fast)
fastLC = lowest(exit_fast)
fastS = lowest(enter_fast)
fastSC = highest(exit_fast)

slowL = highest(enter_slow)
slowLC = lowest(exit_slow)
slowS = lowest(enter_slow)
slowSC = highest(exit_slow)

enterL1 = high > fastL[1]
exitL1 = low <= fastLC[1]
enterS1 = low < fastS[1]
exitS1 = high >= fastSC[1]

enterL2 = high > slowL[1]
exitL2 = low <= slowLC[1]
enterS2 = low < slowS[1]
exitS2 = high >= slowSC[1]


//bgcolor(exitL1 or exitL2? red: enterL1 or enterL2? navy:white)

strategy.entry("fast L", strategy.long, when = enterL1)
strategy.entry("fast S", strategy.short, when = enterS1)
strategy.close("fast L", when = exitL1)
strategy.close("fast S", when = exitS1)

strategy.entry("slow L", strategy.long, when = enterL2)
strategy.entry("slow S", strategy.short, when = enterS2)
strategy.close("slow L", when = exitL2)
strategy.close("slow S", when = exitS2)
//zl=0
//z=strategy.netprofit / 37 * koef  //ежемесячная прибыль
//z=strategy.grossprofit/strategy.grossloss
//z1=plot (z, style=line, linewidth=3, color = z>zl?green:red, transp = 30)
//hline(zl, title="Zero", linewidth=1, color=gray, linestyle=dashed)

Больше