Эта стратегия объединяет несколько индикаторов для определения тренда и генерирует торговые сигналы на основе согласованных направленных изменений.
Основными показателями являются:
Средняя скорость движения: отражает динамику цены.
STOCH: перепроданные/перекупленные из-за изменения тренда.
MACD: изменение тренда от двойных скользящих средних.
Правила торговли:
Увеличение скорости движения дает положительный сигнал.
STOCH в зоне перекупленности дает медвежий сигнал.
Положительный перекресток MACD дает бычий сигнал.
Введите, когда любые два индикатора выравнивают сигналы.
Выйти, когда индикаторные сигналы изменятся.
Комбинация оценивает тенденцию из нескольких измерений, фильтруя шум для высококонкурентных сигналов.
По сравнению с отдельными показателями стратегия комбинирования имеет следующие преимущества:
Комбинированный вид улучшает точность.
Ансамбль фильтрации уменьшает ложные сигналы.
Включает индикаторы тренда и среднего отклонения.
Выровненные сигналы имеют высокую убедительность, избегая ложных прорывов.
Простые и понятные правила, легко применяемые.
Гибкая настройка параметров, прочность.
Применимо к разным временным рамкам.
Могу обучить весовые индикаторы с помощью машинного обучения.
В целом стабильность и рентабельность лучше, чем у отдельных показателей.
Несмотря на достоинства, риски, которые следует учитывать, включают:
Увеличение сложности с помощью нескольких показателей.
Очень сложная оптимизация параметров и взвешивание.
Могут возникнуть противоречивые индикаторные сигналы.
Некоторые задержки всегда существуют, не может избежать всех потерь.
Неопределенный однонаправленный период ожидания с фактором удачи.
Совокупные сигналы не могут устранить присущие трендовые риски торговли.
Высокая частота торговли увеличивает затраты на транзакции.
Нужно следить за соотношением вознаграждения/риска.
На основе анализа улучшения могут включать:
Оценить эффективность показателей на разных рынках.
Добавьте проверки прочности параметров для предотвращения чрезмерного приспособления.
Оптимизировать вес показателей для уменьшения конфликтов.
Внедряйте остановки, чтобы ограничить серьезные потери.
Используйте временные выходы для управления неограниченными периодами хранения.
Оценить влияние частоты торговли на затраты на транзакции.
Включить ограничения по показателям риска.
Проверка надежности на нескольких рынках.
Постоянно проверяйте эффективность стратегии.
Эта стратегия формирует стабильные ансамбль сигналов путем интеграции нескольких индикаторов для оценки тренда. Но непрерывная оптимизация является ключом к любой стратегии, мониторинга рисков и предотвращения перенапряжения.
/*backtest start: 2022-09-16 00:00:00 end: 2023-09-22 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // By TradeStation //@version=5 strategy("Mov Avg Speed Strategy", overlay=true) src = input(close, title="Source") // MA Speed avg_len = input.int(50, minval=1, title="Avg Length", group="MA Speed") roc_len = input.int(1, minval=1, title="Rate of Change Length", group="MA Speed") avg_roc_len = input.int(10, minval=1, title="Avg Rate of Change Length", group="MA Speed") // Stochastic stoch_len = input.int(14, minval=1, title="Stochastic Length", group="Stochastic") smooth_k = input.int(3, minval=1, title="Stochastic Smooth K", group="Stochastic") overbought = input.float(80, title="Stochastic Overbought", group="Stochastic") oversold = input.float(20, title="Stochastic Oversold", group="Stochastic") // MACD fast_length = input(12, title="Fast Length", group="MACD") slow_length = input(26, title="Slow Length", group="MACD") macd_avg_length = input.int(9, title="MACD Avg Length", minval=1, group="MACD") // MA Speed avg = ta.sma(src, avg_len) roc = ta.roc(avg, roc_len) avg_roc = ta.sma(roc, avg_roc_len) avg_roc_signal = avg_roc > 0 ? 1 : avg_roc < 0 ? -1 : 0 // Stochastic k k = ta.sma(ta.stoch(close, high, low, stoch_len), smooth_k) stochastic_signal = k <= oversold ? 1 : k >= overbought ? -1 : 0 // MACD fast_ma = ta.ema(src, fast_length) slow_ma = ta.ema(src, slow_length) macd = fast_ma - slow_ma macd_avg = ta.ema(macd, macd_avg_length) macd_signal = macd_avg > macd_avg[1] ? 1 : macd_avg < macd_avg[1] ? -1 : 0 // set the signal couint long_count = 0 short_count = 0 if macd_signal == 1 long_count += 1 else if macd_signal == -1 short_count += 1 if stochastic_signal == 1 long_count += 1 else if stochastic_signal == -1 short_count += 1 if avg_roc_signal == 1 long_count += 1 else if avg_roc_signal == -1 short_count += 1 if (long_count >= 2) strategy.entry("Long", strategy.long) if (short_count >= 2) strategy.entry("Short", strategy.short)