Прорыв в двулинейной стратегии количественной торговли

Автор:Чао Чжан, Дата: 2024-02-21 14:28:28
Тэги:

量化交易策略之双均线突破策略

Обзор

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

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

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

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

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

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

В частности, в частности:

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

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

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

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

Стратегические риски

В то же время в этой стратегии есть некоторые риски:

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

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

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

Относительное решение:

  1. Сокращение циклов средней линии, повышение чувствительности перекрестного сигнала.

  2. Присоединение показателей волатильности или объема торговли для фильтрации и уменьшения неэффективных сделок в условиях нестабильных рынков.

  3. Оптимизация параметров, поиск оптимальной комбинации параметров.

Оптимизация стратегии

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

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

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

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

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

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

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

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


/*backtest
start: 2024-01-21 00:00:00
end: 2024-02-20 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy('Pine Script Tutorial Example Strategy 1', overlay=true, initial_capital=100000, default_qty_value=100, default_qty_type=strategy.percent_of_equity)

//OBV
src = close
obv = ta.cum(math.sign(ta.change(src)) * volume)
ma(source, length, type) =>
    switch type
        "SMA" => ta.sma(source, length)
        "EMA" => ta.ema(source, length)
        "SMMA (RMA)" => ta.rma(source, length)
        "WMA" => ta.wma(source, length)
        "VWMA" => ta.vwma(source, length)
typeMA = input.string(title = "Method", defval = "SMA", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"], group="Smoothing")
smoothingLength = input.int(title = "Length", defval = 20, minval = 1, maxval = 100, group="Smoothing")
Limit = input.float(title = "Limit", defval = 1, minval = 0.1, maxval = 10, group="Smoothing")
smoothingLine_ma = ma(obv,smoothingLength, typeMA)
obv_diff = (obv-smoothingLine_ma)*100/obv

//PVT
var cumVolp = 0.
cumVolp += nz(volume)
if barstate.islast and cumVolp == 0
    runtime.error("No volume is provided by the data vendor.")
srcp = close
vt = ta.cum(ta.change(srcp)/srcp[1]*volume)
smoothingLine_map = ma(vt,smoothingLength, typeMA)
pvt_diff = (vt-smoothingLine_map)*100/vt

// plot(obv_diff+close+100 ,title="OBV_DIFF", color = color.rgb(255, 118, 54))
// plot(pvt_diff+close+80 ,title="PVT_DIFF", color = color.rgb(223, 61, 255))

indicator = (pvt_diff+obv_diff)/2
goLongCondition1 = ta.crossover(indicator,Limit)
timePeriod = time >= timestamp(syminfo.timezone, 2023,1, 1, 0, 0)  // Backtesting Time
notInTrade = strategy.position_size <= 0
if goLongCondition1 and timePeriod and notInTrade
    stopLoss = low * 0.99 // -2%
    takeProfit = high * 1.05 // +5%
    strategy.entry('long', strategy.long )
    strategy.exit('exit', 'long', stop=stopLoss, limit=takeProfit)






// fastEMA = ta.ema(close, 24)
// slowEMA = ta.ema(close, 100)
// goLongCondition1 = ta.crossover(fastEMA, slowEMA)
// timePeriod = time >= timestamp(syminfo.timezone, 2018, 12, 15, 0, 0)
// notInTrade = strategy.position_size <= 0
// if goLongCondition1 and timePeriod and notInTrade
//     stopLoss = low * 0.97
//     takeProfit = high * 1.12
//     strategy.entry('long', strategy.long)
//     strategy.exit('exit', 'long', stop=stopLoss, limit=takeProfit)
// plot(fastEMA, color=color.new(color.blue, 0))
// plot(slowEMA, color=color.new(color.yellow, 0))

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