
Эта стратегия называется двулинейным прорывом стратегии количественной торговли. Основная идея этой стратегии заключается в том, чтобы использовать перекрестные сигналы быстрого и медленно движущегося среднего значения для оценки ценовых тенденций и принятия решений о покупке и продаже.
Ключевыми показателями этой стратегии являются быстрые и медленные скользящие средние. Стратегия использует перекрестную связь между быстрыми и медленными скользящими средними для определения ценовых тенденций и принятия решений о покупке и продаже.
В частности, параметр быстрого движущегося среднего значения установлен на 24 цикла, а параметр медленного движущегося среднего значения - на 100 циклов. Когда быстрое движущееся среднее пересекает медленное движущееся среднее с нижнего направления, это означает, что цена входит в восходящий тренд, и тогда стратегия посылает сигнал покупки; когда быстрое движущееся среднее пересекает медленное движущееся среднее с верхнего направления, это означает, что цена входит в нисходящий тренд, и тогда стратегия посылает сигнал продажи.
Таким образом, можно эффективно улавливать изменения в ценовых тенденциях, помогая принимать решения о покупке и продаже, путем определения пересечения быстрого и медленного движения средних значений.
Эта стратегия имеет следующие преимущества:
Принципы просты, понятны и легко применяются. Двойной равномерный скрещивание является одним из самых основных технических показателей, легко понять и применить.
Параметры регулируемы и адаптируемы. Параметры быстрого и медленного движения могут быть изменены в зависимости от реальных обстоятельств, что делает стратегию более гибкой.
Умение улавливать изменения в тренде. Двойные равнолинейные пересечения часто используются для захвата переломных точек, когда цена переходит из свертывания в тренд.
Эффективно отфильтровывает колебания и уменьшает количество недействительных сделок. Двойная равномерная линия может использоваться для идентификации колебаний и предотвращения повторного открытия позиций во время колебаний.
Однако эта стратегия также несет в себе некоторые риски:
Двойные равнолинейные сигналы могут задерживаться. Двойные равнолинейные сигналы, используемые в качестве индикатора трендового отслеживания, часто задерживаются на определенный период. Это может привести к определенной степени затрат на возможности.
Ложные сигналы могут возникать в условиях рыночных потрясений. Лучше всего бинарная равновесие проявляется в ситуациях, когда цена имеет явную тенденцию. Однако в условиях рыночных потрясений часто возникают ложные сигналы.
Неправильная настройка параметров может повлиять на эффективность стратегии. Неправильная настройка параметров средней и медленной средней линии может повлиять на чувствительность к перекрестку трендов.
Решение проблемы:
Сокращение среднелинейного цикла, повышение чувствительности перекрестного сигнала.
Фильтрация по показателям волатильности или объема сделок снижает количество недействительных сделок на волатильных рынках.
Параметровая оптимизация, поиск оптимальных комбинаций параметров. Автоматическая оптимизация методов, таких как машинное обучение.
Эта стратегия может быть оптимизирована в следующих аспектах:
Использование более продвинутых технологических показателей, таких как линейно-весовая скользящая средняя, вместо простой скользящей средней, улучшает возможность отслеживания и прогнозирования показателей.
Добавление дополнительных показателей, таких как показатели загруженности, показатели волатильности и т. д. для совместной фильтрации, уменьшение неэффективного сигнала.
Оптимизация среднелинейных параметров, повышение адаптивности параметров. Можно использовать методы машинного обучения, рандомизации и других методов поиска оптимальных параметров.
После входа в стратегию можно разработать точки остановки убытков и перемещения убытков, чтобы контролировать одиночные потери. При этом добавление технологий оптимизации прибыли гарантирует получение достаточной прибыли.
Новые технологии, такие как глубокое обучение, могут быть использованы для выявления более сложных ценовых моделей, которые могут помочь в принятии решений о покупке и продаже с целью получения лучших результатов.
Эта стратегия в целом является более классической и простой, основанной на двух равномерных показателях, чтобы оценить ценовые тенденции, чтобы выявить возможности для перехода цены от колебаний к тренду. Преимущества заключаются в четкости мысли, простоте и практичности, подходящей для отслеживания тенденциозных действий. Но есть и некоторые недостатки, такие как задержка сигнала, которая требует повышения стабильности стратегии и эффективности торговли путем корректировки и оптимизации параметров. В целом, эта стратегия является более подходящей в качестве базовой стратегии, но требует постоянной оптимизации для адаптации к более сложной рыночной среде.
/*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))