Это простая количественная торговая стратегия, основанная на показателях скользящей средней. Она использует золотой крест и смертельный крест быстрых и медленных скользящих средних для определения сигналов входа и выхода. Когда быстрый MA переходит выше медленного MA снизу, генерируется сигнал покупки. Когда быстрый MA переходит ниже медленного MA сверху, генерируется сигнал продажи.
Стратегия в основном использует способность отслеживания тренда движущихся средних. Быстрый MA имеет меньший параметр и может быстро реагировать на изменения цен, в то время как медленный MA имеет более большой параметр и представляет собой долгосрочную тенденцию. Быстрый MA, пересекающий медленный MA, сигнализирует об обратном направлении в краткосрочных движениях и начале восходящего тренда. Быстрый MA, пересекающий медленный MA, сигнализирует об обратном направлении в нисходящий тренд. Захватив эти сигналы, мы можем торговать вместе с импульсом.
В частности, эта стратегия определяет 5-дневную (быструю) и 34-дневную (медленную) двойную скользящую среднюю. Она ежедневно рассчитывает эти два МА и проверяет, пересекает ли быстрый МА выше или ниже медленного МА. Если происходит золотой крест, он длинный. Если происходит смертельный крест, он выходит из позиций.
Это простая и понятная стратегия, подходящая для начинающих торговцев.
Стратегия двойного MA может эффективно отфильтровывать рыночный шум и отслеживать основную тенденцию.
Он также имеет встроенный механизм стоп-лосса. Когда цены начинают менять направление и происходит смертельный крест МА, он своевременно выходит из позиций, чтобы контролировать риски.
Стратегия двойного MA имеет риски, такие как неудачные стоп-потери или неудачи в настройке кривой.
MAs имеют задерживающий эффект и могут генерировать сигналы только после того, как тенденция уже изменилась.
На различных рынках может быть много ложных сигналов, что приводит к ненужным сделкам, увеличению затрат и сдвигу.
Он опирается исключительно на технические показатели, не сочетая фундаментальный анализ.
Это не учитывает размер позиций и управление рисками.
Чтобы лучше использовать свои сильные стороны и снизить риски, можно оптимизировать следующие способы:
Добавьте индикаторы тренда, такие как MACD и индикаторы волатильности, такие как KDJ, чтобы установить более строгие правила входа и отфильтровать ложные сигналы.
Включите соответствующие механизмы остановки потерь, такие как выход после того, как цены упадут на определенный процент после золотого креста, или после того, как цены упадут в определенный диапазон от новых максимумов / минимумов.
Оптимизируйте комбинации быстрых и медленных дней MA для адаптации к колебаниям цен в разных временных рамках.
Ссылка на широкие рыночные индексы для определения общего режима рынка и избежания переоценки на различных рынках.
Включайте изменения объема торговли для проверки надежности сигналов тренда.
Стратегия двойного скользящего среднего кроссовера является очень типичной количественной торговой стратегией. Она имеет такие преимущества, как простота, интуитивность и простота в реализации. При постоянном тестировании и настройке параметров она может давать приличные результаты. Однако существуют такие проблемы, как идентификация отстающих сигналов и ложные сигналы.
/*backtest start: 2022-11-15 00:00:00 end: 2023-11-21 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 //////////////////////////////////////////////////////////// // This strategy is a modification to the "Bill Williams, Awesome Oscillator // (AO) Backtest" strategy (Copyright by HPotter v1.0 29/12/2016) // // This version of the strategy by Midnight Mouse. 10/4/2018 // // DESCRIPTION // // This indicator plots the oscillator as a column where periods fit for buying // are marked as green, and periods fit for selling as orange/brown. If the // current value of AO (Awesome Oscillator) is > the previous, the period is // deemed fit for buying and the indicator is marked green. If the AO values is // not over the previous, the period is deemed fit for selling and the indicator // is marked orange/brown. // // You can change long to short in the Input Settings // // Please, use it only for learning or paper trading. Do not for real trading. //////////////////////////////////////////////////////////// strategy("Awesome Oscillator.MMouse_Lager_BCE") // === SETTINGS === // Strategy start date FromMonth = input(defval = 1, title = "From Month", minval = 1) FromDay = input(defval = 1, title = "From Day", minval = 1) FromYear = input(defval = 2017, title = "From Year", minval = 2014) // Strategy settings nLengthSlow = input(34, minval=1, title="Length Slow") nLengthFast = input(5, minval=1, title="Length Fast") allowShorts = input(false, title="Include Short Trades") reverse = input(false, title="Trade reverse") // === BODY === // Use Heikin-Ashi candles for the buy/sell signal ha_t = heikinashi(syminfo.tickerid) ha_high = security(ha_t, timeframe.period, high) ha_low = security(ha_t, timeframe.period, low) length = input( 14 ) price = open vrsi = rsi(price, length) // Calc (H+L)/2 for each length xSMA1_hl2 = sma((ha_high + ha_low)/2, nLengthFast) xSMA2_hl2 = sma((ha_high + ha_low)/2, nLengthSlow) // Get SMA difference (Fast - Slow) xSMA1_SMA2 = xSMA1_hl2 - xSMA2_hl2 // Derive the color of the column cClr = xSMA1_SMA2 > xSMA1_SMA2[1] ? #93c47d : #ad5e1d // Determine the position to take (Long vs. Short) pos = iff(xSMA1_SMA2 > xSMA1_SMA2[1], 1, iff(xSMA1_SMA2 < xSMA1_SMA2[1], -1, nz(pos[1], 0))) possig = iff(reverse and pos == 1, -1, iff(reverse and pos == -1, 1, pos)) // Only apply strategy from the start date if (time >= timestamp(FromYear, FromMonth, FromDay, 00, 00)) if (possig == 1) // Market is currently fit for a Long position strategy.entry("Long", strategy.long) if (possig == -1) // Market is currently fit for a Short position if(allowShorts) // Shorts are allowed. Record a Short position strategy.entry("Short", strategy.short) else // Shorts are not allowed. Closec the Long position. strategy.close("Long") // Define the candle colors //barcolor(possig == -1 ? red : // possig == 1 ? green : // blue ) // Plot the oscillator plot(xSMA1_SMA2, style=columns, linewidth=1, color=cClr)