Эта стратегия в основном основана на принципе прорыва тренда, в сочетании с методом прорыва канала, используя быстрые и медленные двойные рельсы для прорыва для определения направления тренда. Стратегия имеет двойную защиту прорывных входов и выходов с выводом одновременно, что может эффективно справляться с внезапными изменениями рынка. Самое большое преимущество стратегии заключается в том, что она может отслеживать снижение счета в режиме реального времени. Когда вывод превышает определенный процент, она активно уменьшает размер позиции. Это позволяет стратегии эффективно контролировать рыночный риск и сопротивление риску счета.
Быстрые и медленные двойные рельсы: Быстрые и медленные линии используются для строительства каналов соответственно. Быстрая линия реагирует быстрее, а медленная линия более гладкая.
Прорывные записи: идти длинный, когда цена проходит через восходящий канал, и идти короткий, когда он проходит через нисходящий канал.
Выходы из снятия: мониторинг максимального снятия в режиме реального времени. Как только точка выхода из снятия достигается, он будет активно останавливать убытки для закрытия позиций. Точка выхода из снятия может быть скорректирована в соответствии с рыночными условиями.
адаптивный размер позиций: количество позиций корректируется в режиме реального времени на основе собственного капитала счета, чтобы избежать рыночного риска. чем меньше снижение счета, тем меньше позиций. более сильная устойчивость к риску.
Двойной рельсовый канал + прорывные входы, более точное суждение о тренде.
Механизм стоп-лосса и прибыли эффективно контролирует одиночные потери.
Мониторинг в режиме реального времени использования счета и активная корректировка размера позиции для снижения рыночного риска.
Размер позиции связан с собственным капиталом с высокой устойчивостью к риску, чтобы справиться с внезапными изменениями рынка.
На волатильных рынках контроль за снижением может не работать, что приводит к большим потерям.
Многочисленные недействительные сигналы прорыва могут возникнуть, когда быстрая линия входит в нейтральную зону.
Медленная линия слишком гладкая, чтобы фиксировать быстрые тенденции перемены времени.
Существует риск блокировки с смешанными длинными и короткими позициями.
Установка более высокой терпимости к снижению на волатильных рынках, чтобы избежать перегрузки стоп-лосса.
Добавьте фильтр нейтральной зоны, чтобы избежать недействительных сигналов.
Оптимизировать параметры медленного канала для улучшения скорости ответа на быстрые рынки.
Добавить правила сортировки порядка открытия, чтобы избежать блокировки с двусторонними позициями.
В целом, это эффективная стратегия, подходящая для средне- и долгосрочной торговли трендом. Наибольшее преимущество стратегии заключается в мониторинге снижения в режиме реального времени и динамической корректировке позиций. Это позволяет стратегии автоматически корректировать размер позиции с сильной адаптивностью к рынку. При резком изменении рынка или колебании цены стратегия может автоматически уменьшить размер позиции, чтобы эффективно предотвратить расширение убытков. Это трудно для многих традиционных стратегий.
//Noro //2020 //Original idea from «Way of the Turtle: The Secret Methods that Turned Ordinary People into Legendary Traders» (2007, CURTIS FAITH, ISBN: 9780071486644) //@version=4 strategy("Noro's Turtles Strategy", shorttitle = "Turtles 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, title = "Long") needshort = input(false, 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, %") needfast = input(true, title = "Fast") needslow = input(true, title = "Slow") enter_fast = input(20, minval=1) exit_fast = input(10, minval=1) enter_slow = input(55, minval=1) exit_slow = input(20, minval=1) showof = input(true, title = "Show offset") showll = input(false, title = "Show lines") showlabel = input(true, defval = true, title = "Show label") 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") //Fast fastL = highest(enter_fast) fastLC = lowest(exit_fast) fastS = lowest(enter_fast) fastSC = highest(exit_fast) //Slow slowL = highest(enter_slow) slowLC = lowest(exit_slow) slowS = lowest(enter_slow) slowSC = highest(exit_slow) //Lines offset = showof ? 1 : 0 col1 = showll and needlong and needfast ? color.blue : na col2 = showll and needshort and needfast ? color.red : na col3 = showll and needlong and needslow ? color.blue : na col4 = showll and needshort and needslow ? color.red : na plot(fastL, color = col1, offset = offset) plot(fastLC, color = col1, offset = offset) plot(fastS, color = col2, offset = offset) plot(fastSC, color = col2, offset = offset) plot(slowL, color = col3, offset = offset) plot(slowLC, color = col3, offset = offset) plot(slowS, color = col4, offset = offset) plot(slowSC, color = col4, offset = offset) //Orders truetime = time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59) size = strategy.position_size lotlong = 0.0 lotlong := size != size[1] ? strategy.equity / close * sizelong / 100 : lotlong[1] lotshort = 0.0 lotshort := size != size[1] ? strategy.equity / close * sizeshort / 100 : lotshort[1] //Fast strategy.entry("fast L", strategy.long, lotlong, stop = fastL, when = needfast and needlong and strategy.position_size == 0 and truetime) strategy.entry("fast S", strategy.short, lotshort, stop = fastS, when = needfast and needshort and strategy.position_size == 0 and truetime) strategy.exit("fast L", stop = fastLC, when = needfast and needlong and strategy.position_size > 0) strategy.exit("fast S", stop = fastSC, when = needfast and needshort and strategy.position_size < 0) //Slow strategy.entry("slow L", strategy.long, lotlong, stop = slowL, when = needslow and needlong and strategy.position_size == 0 and truetime) strategy.entry("slow S", strategy.short, lotshort, stop = slowS, when = needslow and needshort and strategy.position_size == 0 and truetime) strategy.exit("slow L", stop = slowLC, when = needslow and needlong and strategy.position_size > 0) strategy.exit("slow S", stop = slowSC, when = needslow and needshort and strategy.position_size < 0) if time > timestamp(toyear, tomonth, today, 23, 59) strategy.close_all() strategy.cancel("fast L") strategy.cancel("fast S") strategy.cancel("slow L") strategy.cancel("slow S") if showlabel //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)