Эта стратегия использует скользящие средние (MA) и EMA на разных временных отрезках для выявления и торговли тенденциями. Объединяя SMA, EMA различных периодов, а также тела свечей, она может эффективно фильтровать рыночный шум и торговать среднесрочными и долгосрочными тенденциями с низким риском.
Основная идея основана на сравнении 3 SMA разных периодов для определения динамики цены.
В частности, стратегия использует 3 SMA - 3-, 8- и 10-периодные SMA. Когда цена ниже всех 3 SMA, это считается нисходящим трендом. Долгий сигнал срабатывает, когда цена пересекает обратно выше SMA.
Кроме того, 5-периодная EMA проверяет, указывает ли тело свечи вверх, прежде чем вводить длинные сделки.
Для правил выхода максимальное количество выгодных закрытий или максимальная длительность используется в качестве механизма остановки потерь.
Комбинируя MAs различных временных рамок, эта стратегия может эффективно фильтровать шум рынка и улавливать промежуточные и долгосрочные тенденции.
Использование EMA для проверки направления тела свечи уменьшает ненужное скольжение от покупки в падающие свечи.
В целом это стабильная и надежная система, подходящая для наблюдения за тенденцией в течение нескольких недель или месяцев.
Стратегия чувствительна к параметрам. Неоптимальный выбор 3 периодов SMA или 1 EMA может ухудшить качество сигнала. Параметры должны быть оптимизированы для разных инструментов.
Неожиданные фундаментальные новости о том, что цены на дефицит могут привести к убыткам. Стоп-лосс цены может помочь смягчить такие риски.
Для дальнейшего улучшения точности тренда можно добавить больше временных рамок МА или ЕМА.
Умеренный стоп-лосс цены может быть протестирован, чтобы закрепить прибыль при снижении потерь в экстремальных движениях.
Машинное обучение может динамически оптимизировать параметры для адаптации к меняющимся рыночным условиям.
Стратегия является надежной и надежной в целом, используя кроссоверы MA для определения тренда, дополненного фильтром EMA. Дальнейшая оптимизация параметров и осторожное управление рисками могут повысить показатель выигрыша и рентабельность. Достоин дальнейших исследований и применения.
/*backtest start: 2024-01-01 00:00:00 end: 2024-01-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy("Free Strategy #02 (ES / SPY)", overlay=true) // Inputs Quantity = input(1, minval=1, title="Quantity") SmaPeriod01 = input(3, minval=1, title="SMA Period 01") SmaPeriod02 = input(8, minval=1, title="SMA Period 02") SmaPeriod03 = input(10, minval=1, title="SMA Period 03") EmaPeriod01 = input(5, minval=1, title="EMA Period 01") MaxProfitCloses = input(5, minval=1, title="Max Profit Close") MaxBars = input(10, minval=1, title="Max Total Bars") // Misc Variables src = close BarsSinceEntry = 0 MaxProfitCount = 0 Sma01 = sma(close, SmaPeriod01) Sma02 = sma(close, SmaPeriod02) Sma03 = sma(close, SmaPeriod03) Ema01 = ema(close, EmaPeriod01) // Conditions Cond00 = strategy.position_size == 0 Cond01 = close < Sma03 Cond02 = close <= Sma01 Cond03 = close[1] > Sma01[1] Cond04 = open > Ema01 Cond05 = Sma02 < Sma02[1] // Update Exit Variables BarsSinceEntry := Cond00 ? 0 : nz(BarsSinceEntry[1]) + 1 MaxProfitCount := Cond00 ? 0 : (close > strategy.position_avg_price and BarsSinceEntry > 1) ? nz(MaxProfitCount[1]) + 1 : nz(MaxProfitCount[1]) // Entries strategy.entry(id="L1", long=true, qty=Quantity, when=(Cond00 and Cond01 and Cond02 and Cond03 and Cond04 and Cond05)) // Exits strategy.close("L1", (BarsSinceEntry - 1 >= MaxBars or MaxProfitCount >= MaxProfitCloses))