Традиционная стратегия количественного движения является комбинацией трендового отслеживания, индикатора движения и канала Блинн-Белда. Стратегия использует пересечение медленно движущихся средних для определения направления тренда, а также комбинацию канала Блинн-Белда и индикатора движения для подтверждения сигналов входа. Стратегия также имеет такие меры контроля риска, как стоп-потери, слежение за стоп-потери и управление позициями.
Основной принцип этой стратегии - использовать тенденции цены и динамические эффекты для захвата рыночных возможностей. В частности, эта стратегия использует две различные циклические движущиеся средние линии ("быстрая линия и медленная линия") для определения направления ценового тренда. Когда быстрая линия пересекает медленную линию снизу вверх, она будет генерировать больше сигналов, представляющих рост; наоборот, когда быстрая линия пересекает медленную линию сверху вниз, она будет генерировать сигналы, представляющие падение.
Для дальнейшего определения тренда и времени входа стратегия также сочетает в себе каналы и индикаторы динамики Брин-Белда. Брин-Белд состоит из трех линий: средняя трасса - это движущаяся средняя, а верхняя и нижняя трассы соответственно увеличивают и уменьшают определенные стандартные отклонения на основе средней трассы.
Кроме того, стратегия также вводит индикатор динамики, который измеряет скорость падения цены, сравнивая текущую цену с ценой до определенного цикла. Индекс динамики может быть использован для определения силы и слабости тренда, что обеспечивает дополнительное подтверждение входа.
С точки зрения управления позициями, стратегия позволяет настраивать размер позиции в зависимости от средств в счете и рисковых предпочтений. В то же время стратегия также имеет механизмы сдерживания и отслеживания сдерживания, чтобы контролировать рисковый предел для одной сделки.
В целом, методы количественной торговли динамикой трендов используют несколько аспектов, таких как отслеживание трендов, подтверждение динамики и управление рисками, чтобы добиться стабильной отдачи от инвестиций при строгом контроле рисков, а также для того, чтобы уловить возможности рынка.
Тенденционное отслеживание: стратегия, использующая быстрое и медленное пересечение горизонтальных линий, чтобы поймать трендовые возможности цены, может делать как много восходящих тенденций, так и много понижающихся тенденций, чтобы адаптироваться к различным рынкам.
Подтверждение динамики: введение индикатора динамики в качестве второго подтверждения тренда помогает исключить ложные сигналы и улучшить качество входа.
Принятие вспомогательных решений с помощью ленты Блинн: лента Блинн может отражать колебания цены в диапазоне, а прорыв ленты Блинн может рассматриваться как сигнал ускорения тренда или необычного колебания цены, который может служить ориентиром для входа.
Управление позициями: Стратегия использует подход к управлению позициями, основанный на процентах и пределах средств в счете, что позволяет гибко контролировать долю средств на каждой сделке, чтобы использовать их в полной мере и не подвергать чрезмерному риску.
Стоп-стоп: установлены стоп-стоп-потери и стоп-стоп-потери, которые позволяют защитить прибыль при движении цены в ожидаемом направлении, в то же время решительно останавливая убытки при переходе цены, эффективно контролируя максимальные убытки от одной сделки.
Многопараметровая оптимизация: стратегия содержит несколько параметров, которые можно регулировать, такие как среднелинейный цикл, параметры ленты Брин, коэффициент остановки и остановки убытков.
Частые сделки: эта стратегия создает сигналы входа на основе скрещивания и прорыва Бринской полосы, что может привести к частому появлению торговых сигналов при большей волатильности рынка, что приводит к чрезмерному количеству сделок, увеличению расходов на процедурные сборы и стоимости сдвига.
Параметрочувствительный: политика содержит несколько параметров, таких как циклы сплошной линии, циклы мощности, параметры ленты Брин и т. д. Выбор различных параметров может иметь большое влияние на эффективность стратегии. Если параметры выбраны неправильно, это может привести к плохой работе стратегии.
Задержка в определении тренда: движущаяся средняя является задержкой в определении тренда, особенно если средняя цикл длиннее.
Риск остановки убытков: несмотря на то, что стратегия устанавливает меры остановки убытков, в экстремальных ситуациях (например, быстрый скачок) цена может прямо перейти предел остановки убытков, что приводит к фактическому убытку, превышающему ожидания.
Риск концентрации позиций: если стратегия в течение определенного периода последовательно дает однонаправленные сигналы, это может привести к чрезмерному концентрации позиций в одном направлении, что приводит к большему риску держания позиций.
Риск ликвидности: ретроспектирование стратегии и ее эффективность на рынке могут быть подвержены влиянию рыночной ликвидности, особенно в случае крупных операций с крупными капиталами, где могут возникнуть проблемы с подвижными точками и недостаточным объемом сделок.
Внедрение большего количества технических индикаторов: на основе существующих средних линий, динамики и Бринской полосы можно попытаться внедрить больше технических индикаторов, таких как RSI, MACD и т. д., чтобы повысить надежность сигнала путем совместного подтверждения множества индикаторов.
Оптимизация механизмов входа и выхода: можно рассмотреть возможность введения дополнительных условий в суждениях о входе и выходе, таких как необходимость выполнения определенных требований к объему сделок до того, как цена прорвется, использование распределенных типовых или мобильных остановок при выходе, чтобы повысить гибкость и прибыльность стратегии.
Динамические параметры корректировки: для среднелинейных циклов, динамических циклов, параметров ленты Брин и т. д. можно спроектировать механизм, который адаптирует параметры, чтобы динамически корректировать параметры в соответствии с различными состояниями рынка и уровнями волатильности, повышая адаптивность стратегии.
Улучшенное управление позициями: на базе текущего управления позициями могут быть введены более продвинутые методы управления средствами, такие как формула Келли, фиксированные ставки, динамические правоприменения и т. д., чтобы лучше сбалансировать прибыль и риск.
Комбинированный фундаментальный анализ: стратегия чисто технического анализа может подвергаться риску неэффективности или неэффективности рынка, и ее эффективность может быть улучшена, если ее можно совместить с некоторыми фундаментальными факторами, такими как макроэкономические данные, отраслевые тенденции и т. Д. Фильтрация и подтверждение технических сигналов.
Повышение согласованности ретро- и ретро-тестов: стратегии могут отличаться в результате ретро- и ретро-тестов, и необходимо уделять особое внимание качеству выполнения ретро- и ретро-тестов, включая факторы, такие как цена сделки, сдвиг, задержка, чтобы обеспечить согласованность ретро- и ретро-тестов.
Квалификация трендовой динамики является методом количественного трейдинга, который включает в себя несколько методов технического анализа. Он использует однолинейные перекрестные тренды, прорывы в ленте Брин, скорость отражения динамики, риск контроля, управление позициями, оптимизирующее использование средств, чтобы сформировать полный набор торговых решений и системы управления.
Преимущества этой стратегии заключаются в том, что она сочетает в себе отслеживание тренда с динамикой, вспомогательное суждение по Брин-лентам, управление позициями и сдерживание стоп-потери, чтобы использовать рыночные возможности с помощью многомерного анализа и принятия решений. Но в то же время эта стратегия также сталкивается с потенциальными рисками, такими как частое торговля, параметры, задержка в определении чувствительных тенденций, невозможность покрытия стоп-потери крайними рынками.
Кроме того, количественные стратегии торговли могут иметь различия между результатами обратной связи и фактическими показателями, что требует особого внимания к вопросам уровня исполнения, таким как цена сделки, скольжение, задержка, чтобы повысить практичность и стабильность стратегии. В то же время, количественные стратегии не должны ограничиваться техническим анализом, а соответствующее сочетание фундаментальных факторов поможет повысить всесторонность и эффективность принятия решений.
В целом, коэффициент количественного движения трендов предлагает более полную и действенную идею для количественной практики торговли, но конечный эффект стратегии также зависит от взвешивания различных возможностей и рисков и оптимизации деталей. В практическом применении стратегии необходимо соответствующим образом корректировать и улучшать в соответствии с конкретными обстоятельствами, такими как собственные рисковые предпочтения, размер капитала, рынок торговли и т. д., и постоянно контролировать и оптимизировать в реальном режиме работы, чтобы добиться более стабильного и идеального стратегического выполнения.
/*backtest start: 2024-02-01 00:00:00 end: 2024-02-29 23:59:59 period: 2h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy('甲易炳', overlay=true) // Parameters trendPeriod = input(50, 'Trend Period') momentumPeriod = input(14, 'Momentum Period') bbPeriod = input(20, 'Bollinger Bands Period') bbDeviation = input(2, 'Bollinger Bands Deviation') fastMALen = input(23, 'Fast SMA Length') slowMALen = input(50, 'Slow SMA Length') longTakeProfitPerc = input.float(0.5, 'Long Take Profit %', minval=0.05, step=0.05) * 0.01 shortTakeProfitPerc = input.float(0.5, 'Short Take Profit %', minval=0.05, step=0.05) * 0.01 stopLossPerc = input.float(0.5, 'Stop Loss %', minval=0.05, step=0.05) * 0.01 enableTrailing = input.bool(true, 'Enable Trailing') trailingTakeProfitPerc = input.float(0.01, 'Trailing Take Profit %', minval=0.01, maxval=100, step=0.01) * 0.01 trailingStopLossPerc = input.float(0.5, 'Trailing Stop Loss %', minval=0.05, step=0.05) * 0.01 qty_percent = input.int(20, 'Position Size %', step=1) qty_cap = input.int(10000, 'Max Position Size', step=1000) beast_mode = input.bool(false, 'Beast Mode') set_cap = input.bool(true, 'Cap Position Size') strategy.initial_capital = 50000 // Calculate position size qty1 = (strategy.initial_capital + strategy.netprofit) * qty_percent / 10 / close qty = (set_cap and qty1 > qty_cap) ? qty_cap : qty1 // Calculate moving averages fastMA = ta.sma(close, fastMALen) slowMA = ta.sma(close, slowMALen) // Bollinger Bands [upperBB, middleBB, lowerBB] = ta.bb(close, bbPeriod, bbDeviation) // Entry conditions buySignal = ta.crossover(close, fastMA) and close > upperBB sellSignal = ta.crossunder(close, fastMA) and close < lowerBB // Rampage mode entry conditions if beast_mode buySignal := buySignal and fastMA > fastMA[2] sellSignal := sellSignal and fastMA < fastMA[2] // Active positions longIsActive = buySignal or strategy.position_size > 0 shortIsActive = sellSignal or strategy.position_size < 0 // Declare take profit and stop loss variables var float longTakeProfitPrice = na var float shortTakeProfitPrice = na // Take profit and stop loss calculation if longIsActive if buySignal and not (strategy.position_size > 0) longTakeProfitPrice := close * (1 + longTakeProfitPerc) else longTakeProfitPrice := nz(longTakeProfitPrice[1], close * (1 + longTakeProfitPerc)) if shortIsActive if sellSignal and not (strategy.position_size < 0) shortTakeProfitPrice := close * (1 - shortTakeProfitPerc) else shortTakeProfitPrice := nz(shortTakeProfitPrice[1], close * (1 - shortTakeProfitPerc)) longTrailingTakeProfitStepTicks = longTakeProfitPrice * trailingTakeProfitPerc / syminfo.mintick shortTrailingTakeProfitStepTicks = shortTakeProfitPrice * trailingTakeProfitPerc / syminfo.mintick longTrailingStopLossPrice = close * (1 - trailingStopLossPerc) shortTrailingStopLossPrice = close * (1 + trailingStopLossPerc) // Entries and exits if strategy.position_size == 0 strategy.entry('Long Entry', qty=qty, direction=strategy.long, when=buySignal, alert_message='Long Entry') strategy.entry('Short Entry', qty=qty, direction=strategy.short, when=sellSignal, alert_message='Short Entry') strategy.exit('Long Take Profit', 'Long Entry', loss=close * stopLossPerc / syminfo.mintick, limit=enableTrailing ? na : longTakeProfitPrice, trail_price=enableTrailing ? longTakeProfitPrice : na, trail_offset=enableTrailing ? longTrailingTakeProfitStepTicks : na, when=longIsActive, alert_message='Long Take Profit') strategy.exit('Short Take Profit', 'Short Entry', loss=close * stopLossPerc / syminfo.mintick, limit=enableTrailing ? na : shortTakeProfitPrice, trail_price=enableTrailing ? shortTakeProfitPrice : na, trail_offset=enableTrailing ? shortTrailingTakeProfitStepTicks : na, when=shortIsActive, alert_message='Short Take Profit') else if longIsActive strategy.exit('Long Stop Loss', 'Long Entry', stop=longTrailingStopLossPrice, when=longIsActive) if shortIsActive strategy.exit('Short Stop Loss', 'Short Entry', stop=shortTrailingStopLossPrice, when=shortIsActive) // Plotting plot(fastMA, 'Fast SMA', color=color.blue, linewidth=1, style=plot.style_line) plot(slowMA, 'Slow SMA', color=color.orange, linewidth=1, style=plot.style_line) plot(upperBB, 'Upper BB', color=color.green, linewidth=1, style=plot.style_line) plot(lowerBB, 'Lower BB', color=color.red, linewidth=1, style=plot.style_line)