Обзор
Стратегия CDC Action Zone [TS Trader] - это количественная торговая стратегия, адаптированная из индикатора CDC Action Zone. Стратегия использует перекресток быстрых и медленных скользящих средних в качестве сигналов покупки и продажи. Когда быстрый MA пересекает медленный MA, это сигнал покупки. Когда быстрый MA пересекает медленный MA, это сигнал продажи.
Принцип стратегии
Основными показателями этой стратегии являются быстрые и медленные скользящие средние. Стратегия сначала рассчитывает арифметическую среднюю цену, а затем вычисляет быстрые и медленные МА на основе длины периода, определенного пользователем. Когда быстрый МА пересекает более медленного МА, это считается бычьим сигналом. Когда быстрый МА пересекает ниже медленного МА, это считается медленным сигналом.
После определения рыночной тенденции стратегия далее оценивает взаимосвязь между ценой закрытия и скользящими средними. Если это бычий рынок и цена закрытия выше быстрого MA, это сильный сигнал покупки. Если это медвежий рынок и цена закрытия ниже быстрого MA, это сильный сигнал продажи.
На основе этих сигналов покупки и продажи стратегия может осуществлять автоматическую торговлю. Когда запускается сигнал покупки, открывается длинная позиция. Когда запускается сигнал продажи, закрываются существующие длинные позиции или открываются новые короткие позиции.
Анализ преимуществ
Преимущества этой стратегии включают:
Анализ рисков
Существуют также некоторые риски:
Такие методы, как объединение других показателей, сокращение периодов ДО и т.д., могут помочь устранить эти риски.
Руководство по оптимизации
Некоторые направления для оптимизации стратегии:
Резюме
Подводя итог, стратегия CDC Action Zone [TS Trader] реализует простую, но практичную количественную торговую стратегию с использованием двойных скользящих средних крестов. Стратегия проста в понимании и реализации, но имеет место для дальнейшей оптимизации. При постоянном тестировании и усовершенствовании она может стать стабильной долгосрочной стратегией.
/*backtest start: 2023-02-13 00:00:00 end: 2024-02-19 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("CDC Action Zone [TS Trader]", overlay=true) // CDC ActionZone V2 29 Sep 2016 // CDC ActionZone is based on a simple 2MA and is most suitable for use with medium volatility market // 11 Nov 2016 : Ported to Trading View with minor UI enhancement src = input(title="Data Array", type=input.source, defval=ohlc4) prd1 = input(title="Short MA period", type=input.integer, defval=12) prd2 = input(title="Long MA period", type=input.integer, defval=26) AP = ema(src, 2) Fast = ema(AP, prd1) Slow = ema(AP, prd2) // === INPUT BACKTEST RANGE === FromYear = input(defval = 2019, title = "From Year", minval = 2009) FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12) FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31) ToYear = input(defval = 9999, title = "To Year", minval = 2009) ToMonth = input(defval = 12, title = "To Month", minval = 1, maxval = 12) ToDay = input(defval = 31, title = "To Day", minval = 1, maxval = 31) // === FUNCTION EXAMPLE === start = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start window finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) // backtest finish window window() => true Bullish = Fast > Slow Bearish = Fast < Slow Green = Bullish and AP > Fast Red = Bearish and AP < Fast Yellow = Bullish and AP < Fast Blue = Bearish and AP > Fast //Long Signal Buy = Green and Green[1] == 0 Sell = Red and Red[1] == 0 //Short Signal Short = Red and Red[1] == 0 Cover = Red[1] and Red == 0 //Plot l1 = plot(Fast, "Fast", linewidth=1, color=color.red) l2 = plot(Slow, "Slow", linewidth=2, color=color.blue) bcolor = Green ? color.lime : Red ? color.red : Yellow ? color.yellow : Blue ? color.blue : color.white barcolor(color=bcolor) fill(l1, l2, bcolor) strategy.entry("Buy", strategy.long, when=window() and Buy) strategy.entry("Sell", strategy.short, when=window() and Sell) strategy.close("Buy", when=window() and Sell) strategy.close("Sell", when=window() and Buy)