Стратегия торговли Awesome Oscillator Double Stochastic Filtered Divergence идентифицирует потенциальные возможности покупки и продажи путем обнаружения расхождений между Awesome Oscillator (AO) и ценовым действием, отфильтрованным на основе условий перекупления и перепродажи Stochastic Oscillator
Стратегия состоит из следующих компонентов:
Расчет Awesome Oscillator (AO): AO - это разница между 5-периодными и 34-периодными SMA средней точки (HL2) для определения динамики рыночной динамики.
Стохастический осциллятор: используется для измерения импульса и потенциальных точек переворота путем сравнения цены закрытия с диапазоном цен в течение периода. Использует 14-периодный стохастический (stochK) и 3-периодный SMA (stochD) для обнаружения уровней перекупа / перепродажи.
Логика обнаружения дивергенции: упрощена, когда цена движется в одном направлении, а AO движется в противоположном направлении.
Стохастическая фильтрация: Сигналы, фильтрованные по стохастическому условию перекупки для продажи и перепродажи для покупки.
Графика сигналов: подтвержденные сигналы после фильтрации, изображенные на графике в виде форм.
Правила входа: длинный вход на подтвержденный бычий сигнал, короткий вход на подтвержденный медвежий сигнал.
Стратегия сочетает в себе следующий тренд и выявление обратных сдвигов, с надежными сигналами.
AO помогает определить краткосрочные изменения тренда, расхождение с ценой обеспечивает надежный источник сигнала.
Стохастические фильтры избегают ложных сигналов без подтверждения перекупа/перепродажи.
Объединение показателей обеспечивает надежную оценку рынка и надежность.
Ясные сигналы и правила входа, легкая реализация.
Разумный выбор показателей и параметров, хорошее обратное тестирование и живая производительность.
Потенциальные риски включают:
Упрощенное обнаружение дивергенции рискует неправильно оценить сигналы.
Настройки статических параметров могут быть менее эффективными при изменении рыночных условий.
Стохастическая фильтрация может упустить некоторые прибыльные возможности.
Нет строгих механизмов контроля потерь для открытых позиций.
Области для дальнейшей оптимизации:
Улучшить логику идентификации дивергентных сигналов для сигналов более высокого качества.
Испытайте различные комбинации параметров, чтобы найти оптимальные параметры.
Включайте стратегии стоп-лосса для контроля снижения на отдельных сделках.
Оптимизировать правила размера входа и управление открытыми позициями.
Внедрить машинное обучение для динамической оптимизации параметров и логики.
Добавьте больше источников данных для многовариантного фактора управления.
Стратегия двойного стохастического фильтра дивергенции AO эффективно сочетает в себе отслеживание тренда и идентификацию обратной тенденции с помощью дивергенции AO и стохастического фильтра. Ясные правила, хорошие результаты обратных тестов, с сильным практическим потенциалом. Дальнейшие оптимизации могут привести к улучшению моделирования и производительности в режиме реального времени.
/*backtest start: 2024-01-01 00:00:00 end: 2024-01-31 23:59:59 period: 4h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Fixed AO Divergence Strategy", shorttitle="Fixed AO+Stoch", overlay=true) // Calculate Awesome Oscillator ao() => ta.sma(hl2, 5) - ta.sma(hl2, 34) aoVal = ao() // Stochastic Oscillator stochK = ta.stoch(close, high, low, 14) stochD = ta.sma(stochK, 3) // Simplify the divergence detection logic // For educational purposes, we will define a basic divergence detection mechanism // Real-world application would require more sophisticated logic // Detect bullish and bearish divergences based on AO and price action bullishDivergence = (close > close[1]) and (aoVal < aoVal[1]) bearishDivergence = (close < close[1]) and (aoVal > aoVal[1]) // Stochastic Overbought/Oversold conditions stochOverbought = (stochK > 80) and (stochD > 80) stochOversold = (stochK < 20) and (stochD < 20) // Filtered signals confirmedBullishSignal = bullishDivergence and stochOversold confirmedBearishSignal = bearishDivergence and stochOverbought // Plot signals plotshape(series=confirmedBullishSignal, style=shape.triangleup, location=location.belowbar, color=color.green, title="Bullish Divergence", text="BUY") plotshape(series=confirmedBearishSignal, style=shape.triangledown, location=location.abovebar, color=color.red, title="Bearish Divergence", text="SELL") // Strategy Entry if (confirmedBullishSignal) strategy.entry("Long", strategy.long, comment="Long Entry") if (confirmedBearishSignal) strategy.entry("Short", strategy.short, comment="Short Entry")