Тенденции в количественном движении металлического металла

Автор:Чао Чжан, Дата: 2024-03-08 15:40:05
Тэги:

甲易炳量化趋势动量交易策略

Обзор

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

Принципы стратегии

Основной принцип этой стратегии - использовать тенденции цены и динамические эффекты для захвата рыночных возможностей. В частности, эта стратегия использует две различные циклические движущиеся средние линии ("быстрая линия и медленная линия") для определения направления ценового тренда. Когда быстрая линия пересекает медленную линию снизу вверх, она будет генерировать больше сигналов, представляющих рост; наоборот, когда быстрая линия пересекает медленную линию сверху вниз, она будет генерировать сигналы, представляющие падение.

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

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

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

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

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

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

  2. Подтверждение динамики: введение индикатора динамики в качестве второго подтверждения тренда помогает исключить ложные сигналы и улучшить качество входа.

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

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

  5. Стоп-стоп: установлены стоп-стоп-потери и стоп-стоп-потери, которые позволяют защитить прибыль при движении цены в ожидаемом направлении, в то же время решительно останавливая убытки при переходе цены, эффективно контролируя максимальные убытки от одной сделки.

  6. Многопараметровая оптимизация: стратегия содержит несколько параметров, которые можно регулировать, такие как среднелинейный цикл, параметры ленты Брин, коэффициент остановки и остановки убытков.

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

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

  2. Параметрочувствительный: политика содержит несколько параметров, таких как циклы сплошной линии, циклы мощности, параметры ленты Брин и т. д. Выбор различных параметров может иметь большое влияние на эффективность стратегии. Если параметры выбраны неправильно, это может привести к плохой работе стратегии.

  3. Задержка в определении тренда: движущаяся средняя является задержкой в определении тренда, особенно если средняя цикл длиннее.

  4. Риск остановки убытков: несмотря на то, что стратегия устанавливает меры остановки убытков, в экстремальных ситуациях (например, быстрый скачок) цена может прямо перейти предел остановки убытков, что приводит к фактическому убытку, превышающему ожидания.

  5. Риск концентрации позиций: если стратегия в течение определенного периода последовательно дает однонаправленные сигналы, это может привести к чрезмерному концентрации позиций в одном направлении, что приводит к большему риску держания позиций.

  6. Риск ликвидности: ретроспектирование стратегии и ее эффективность на рынке могут быть подвержены влиянию рыночной ликвидности, особенно в случае крупных операций с крупными капиталами, где могут возникнуть проблемы с подвижными точками и недостаточным объемом сделок.

Оптимизация

  1. Внедрение большего количества технических индикаторов: на основе существующих средних линий, динамики и Бринской полосы можно попытаться внедрить больше технических индикаторов, таких как RSI, MACD и т. д., чтобы повысить надежность сигнала путем совместного подтверждения множества индикаторов.

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

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

  4. Улучшенное управление позициями: на базе текущего управления позициями могут быть введены более продвинутые методы управления средствами, такие как формула Келли, фиксированные ставки, динамические правоприменения и т. д., чтобы лучше сбалансировать прибыль и риск.

  5. Комбинированный фундаментальный анализ: стратегия чисто технического анализа может подвергаться риску неэффективности или неэффективности рынка, и ее эффективность может быть улучшена, если ее можно совместить с некоторыми фундаментальными факторами, такими как макроэкономические данные, отраслевые тенденции и т. Д. Фильтрация и подтверждение технических сигналов.

  6. Повышение согласованности ретро- и ретро-тестов: стратегии могут отличаться в результате ретро- и ретро-тестов, и необходимо уделять особое внимание качеству выполнения ретро- и ретро-тестов, включая факторы, такие как цена сделки, сдвиг, задержка, чтобы обеспечить согласованность ретро- и ретро-тестов.

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

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

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

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

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


/*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)


Больше информации