Стратегия торговли «Черепашка», основанная на простой скользящей средней


Дата создания: 2023-12-29 16:45:51 Последнее изменение: 2023-12-29 16:45:51
Копировать: 2 Количество просмотров: 848
1
Подписаться
1621
Подписчики

Стратегия торговли «Черепашка», основанная на простой скользящей средней

Обзор

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

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

Стратегия рассчитывает одновременно две группы быстрых и медленных линий. Параметры быстрых линий установлены на 20-дневный и 10-дневный периоды построения позиций; параметры медленных линий - на 55-дневный и 20-дневный периоды построения позиций.

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

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

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

Риски и решения

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

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

  1. Добавление модуля Stop Loss для контроля максимального отвода
  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)