
Эта стратегия является количественной торговой системой, основанной на пересечении равной линии и MACD, в сочетании с несколькими техническими показателями для оптимизации времени входа и выхода. Стратегия использует пересечение EMA9 и WMA30 в качестве входного сигнала, а также подтверждение в сочетании с MACD.
Условия участия:
Условия выхода на сцену (при наличии одного из следующих условий):
Вспомогательные показатели:
Основная идея стратегии заключается в том, чтобы использовать пересечение краткосрочной средней линии (EMA9) и среднесрочной средней линии (WMA30) для захвата потенциальных тенденций к росту, а также использовать индикатор MACD для фильтрации ложных сигналов. Условия выхода из игры предназначены для своевременного остановки убытков или блокировки прибыли, чтобы избежать отступлений, вызванных чрезмерным удержанием позиций.
Комплексный многопоказательный анализ: в сочетании с несколькими техническими показателями, такими как средняя линия, MACD, VWAP, предоставляется более полный взгляд на анализ рынка, что помогает повысить точность торговых решений.
Гибкий механизм входа: MACD-подтверждение через перекрестную координацию EMA и WMA позволяет не только улавливать ранние стадии тренда, но и эффективно отфильтровывать ложные сигналы.
Строгое управление рисками: использование множества условий выхода, включая последовательное падение краткосрочной средней линии и обратный сигнал MACD, помогает своевременно остановить убытки и контролировать риски.
Рассматривать различные временные периоды: введение 200-дневного SMA и 21-дневного EMA позволяет стратегии анализировать в разных временных рамках, что повышает адаптивность стратегии.
Цены на основе объема сделок: с помощью показателя VWAP учитывается фактор объема сделок, что обеспечивает более репрезентативную ссылку на движение цен.
Риск частых сделок: стратегии равнолинейного скрещивания могут привести к частым сделкам, увеличить стоимость сделок и повлиять на общую прибыль.
Риск отставания: скользящие средние по своей сути являются отстающими индикаторами, которые могут не успеть вовремя поймать переломные моменты в сильно волатильных рынках.
Риск ложного прорыва: Во время поперечной сборки может возникать частота ложных сигналов прорыва, что приводит к последовательным потерям.
Тенденционная зависимость: эта стратегия хорошо работает на рынках с заметной тенденцией, но может не работать на рынках с потрясениями.
Чувствительность параметров: эффекты стратегии могут быть очень чувствительны к параметрам (например, среднелинейный период, MACD параметры и т. д.), которые требуют частого корректирования.
Введение показателя волатильности: рассмотреть возможность добавления показателя ATR (средняя реальная волатильность), чтобы скорректировать свои стоп-позиции в зависимости от рыночных колебаний и повысить гибкость управления рисками.
Оптимизация механизма выхода: можно рассмотреть возможность добавления трейлинговых стопов или динамических стопов, основанных на волатильности, для лучшего блокирования прибыли.
Добавление фильтрации трафика: при подтверждении входящего сигнала, в сочетании с анализом трафика, чтобы уменьшить риск ложного прорыва.
Классификация состояния рынка: разработка классификационной модели состояния рынка с использованием различных торговых параметров или стратегий при различных состояниях рынка (тенденции, колебания).
Анализ нескольких временных рамок: расширяет стратегию до нескольких временных рамок, чтобы повысить точность приема с помощью подтверждения сигнала в разных циклах.
Оптимизация машинного обучения: динамическая оптимизация параметров стратегии с использованием алгоритмов машинного обучения для повышения адаптивности стратегии к изменениям рынка.
“Усиленная EMA/WMA кросс-стратегия с комплексными условиями выхода” - это количественная торговая система, объединяющая несколько технических показателей, которая захватывает рыночные тенденции с помощью равнолинейных кросс и MACD-индикаторов и контролирует риск с использованием множества условий. Преимущества стратегии заключаются в ее всестороннем взгляде на рынок и строгом механизме управления рисками, но в то же время она сталкивается с такими проблемами, как отсталость и чувствительность к параметрам.
/*backtest
start: 2023-07-25 00:00:00
end: 2024-07-30 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
//X version 11
strategy("EMA9/WMA30 Crossover Strategy with Enhanced Exit Conditions", shorttitle="EMA9/WMA30 Enhanced Exit", overlay=true)
// Inputs
lengthEma = input.int(9, title="Length for EMA")
lengthWma = input.int(30, title="Length for WMA")
fastLength = input.int(12, title="Fast Length for MACD")
slowLength = input.int(26, title="Slow Length for MACD")
macdLength = input.int(9, title="Signal Smoothing for MACD")
pointsGainGoal = input.float(33.00, title="Points Gain Goal")
pointsLossGoal = input.float(-50.00, title="Points Loss Goal")
// Calculating EMA, WMA, and MACD
EMA9 = ta.ema(close, lengthEma)
WMA30 = ta.wma(close, lengthWma)
[macdLine, signalLine, _] = ta.macd(close, fastLength, slowLength, macdLength)
// Adding 200 SMA, 21 EMA, and VWAP
SMA200 = ta.sma(close, 200)
EMA21 = ta.ema(close, 21)
VWAPValue = ta.vwap(close)
// Buy Signal based on EMA/WMA Crossover and MACD confirmation
crossover = ta.crossover(EMA9, WMA30)
buySignal = crossover and macdLine > signalLine
// Entry
var float entryPrice = na
if (buySignal)
strategy.entry("Buy", strategy.long)
entryPrice := close
// Counters for consecutive closes below EMA9 and WMA30
var int belowEMA9Count = 0
var int belowWMA30Count = 0
belowEMA9Count := close < EMA9 ? belowEMA9Count + 1 : 0
belowWMA30Count := close < WMA30 ? belowWMA30Count + 1 : 0
// Exit Conditions
MACDBearishCross = ta.crossunder(macdLine, signalLine)
exitCondition1 = belowEMA9Count >= 2 and belowWMA30Count >= 1
exitCondition2 = MACDBearishCross
// Exit
if (strategy.position_size > 0)
if (exitCondition1 or exitCondition2)
strategy.close("Buy")
entryPrice := na
belowEMA9Count := 0
belowWMA30Count := 0
// Visualization
plot(EMA9, title="EMA 9", color=color.blue)
plot(WMA30, title="WMA 30", color=color.red)
plot(SMA200, title="SMA 200", color=color.orange)
plot(EMA21, title="EMA 21", color=color.purple)
plot(VWAPValue, title="VWAP", color=color.green)