Стратегия торговли черепахой Дон Аньци


Дата создания: 2024-02-26 14:35:02 Последнее изменение: 2024-02-26 14:35:02
Копировать: 0 Количество просмотров: 485
1
Подписаться
1166
Подписчики

Стратегия торговли черепахой Дон Аньци

Обзор

Торговая стратегия “Тонь-Ань” - это очень упрощенная торговая стратегия “Тонь-Ань”. Она существенно отличается от первоначальной торговой стратегии “Тонь-Ань”.

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

Основная логика этой стратегии заключается в следующем:

  1. Вычислить быстрый канал: взяв наивысшую цену ближайшей fast-корневой K-линии в канале вверх, наименьшую цену в канале вниз.

  2. Расчет медленного канала: наивысшая цена ближайшей медленной корневой K-линии - верхняя линия канала, наименьшая - нижняя линия канала.

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

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

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

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

Эта стратегия имеет следующие преимущества:

  1. Правила просты в исполнении. Донг Чжань и мобильный стоп легко понятны и подходят для начинающих.

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

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

  4. Автоматическое управление рисками при остановке. Мобильные остановки на скоростном пути, которые могут ограничивать одиночные остановки.

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

Эта стратегия имеет следующие риски:

  1. Если ценовые колебания не проявляются, то возникает больше остановок. Это влияет на прибыльность стратегии.

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

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

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

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

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

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

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

  2. Оптимизация параметров, чтобы они были более подходящими для различных типов торгов. Например, быстрый и медленный цикл каналов, размер позиции и т. Д.

  3. Добавление модулей управления рисками. Например, максимальный вывод, ограничение потери в течение дня и т. Д.

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

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

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

Исходный код стратегии
/*backtest
start: 2024-01-26 00:00:00
end: 2024-02-15 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2020

//@version=4
strategy("Noro's SimpleTurtle Strategy", shorttitle = "SimpleTurtle str", overlay = true, default_qty_type = strategy.percent_of_equity, initial_capital = 100, default_qty_value = 100, commission_value = 0.1)

//Settings
needlong  = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
sizelong  = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot long, %")
sizeshort = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot short, %")
fast      = input(20, minval=1)
slow      = input(50, minval=1)
showof    = input(true, defval = true, title = "Show offset")
showll    = input(true, defval = true, title = "Show lines")
showdd    = input(false, defval = true, title = "Show label (drawdown)")
showbg    = input(true, defval = true, title = "Show background")
fromyear  = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear    = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth   = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday   = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today     = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//Donchian price channel fast
hf = highest(high, fast)
lf = lowest(low, fast)
center = (hf + lf) / 2

//Donchian price chennal slow
hs = highest(high, slow)
ls = lowest(low, slow)

//Lines
colorpc = showll ? color.blue : na
colorsl = showll ? color.red : na
offset = showof ? 1 : 0
plot(hs, offset = offset, color = colorpc)
plot(ls, offset = offset, color = colorpc)
plot(center, offset = offset, color = colorsl)

//Background
size = strategy.position_size
colorbg = showbg == false ? na : size > 0 ? color.lime : size < 0 ? color.red : na
bgcolor(colorbg, transp = 70)

//Orders
truetime = true
lotlong = 0.0
lotshort = 0.0
lotlong := size != size[1] ? strategy.equity / close * sizelong / 100 : lotlong[1]
lotshort := size != size[1] ? strategy.equity / close * sizeshort / 100 : lotshort[1]

//Orders
strategy.entry("Long", strategy.long, lotlong, stop = hs, when = needlong and strategy.position_size == 0 and truetime)
strategy.entry("Short", strategy.short, lotshort, stop = ls, when = needshort and strategy.position_size == 0 and truetime)
strategy.exit("Long", stop = center, when = needlong and strategy.position_size > 0)
strategy.exit("Short", stop = center, when = needshort and strategy.position_size < 0)
if true
    strategy.close_all()
    strategy.cancel("fast L")
    strategy.cancel("fast S")
    strategy.cancel("slow L")
    strategy.cancel("slow S")
    
if showdd

    //Drawdown
    max = 0.0
    max := max(strategy.equity, nz(max[1]))
    dd = (strategy.equity / max - 1) * 100
    min = 100.0
    min := min(dd, nz(min[1]))
    
    //Label
    min := round(min * 100) / 100
    labeltext = "Drawdown: " + tostring(min) + "%"
    var label la = na
    label.delete(la)
    tc = min > -100 ? color.white : color.red
    osx = timenow + round(change(time)*10)
    osy = highest(100)
    la := label.new(x = osx, y = osy, text = labeltext, xloc = xloc.bar_time, yloc = yloc.price, color = color.black, style = label.style_labelup, textcolor = tc)