Количественная стратегия торговли, основанная на перекрестном использовании двойной скользящей средней

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

img

Обзор

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

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

Основными показателями этой стратегии являются быстрые и медленные скользящие средние линии.

В частности, параметр быстро движущейся средней линии устанавливается на 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))

Больше