
Стратегия является комплексной количественной торговой стратегией, основанной на MACD. Она использует несколько индикаторов, таких как MACD, KDJ и т. Д., чтобы создать торговый сигнал с помощью комбинации между ними.
Основным показателем стратегии является MACD. MACD представляет собой индексную скользящую среднюю, являющуюся индикатором трендового отслеживания. Она состоит из быстрого скользящего среднего ((EMA) и медленного скользящего среднего ((EMA).
Также в стратегии введены индикаторы KDJ. Индикаторы KDJ включают в себя значения K, D и J. Из них значения K - это случайные значения, значения D - это скользящие средние значения K, а значения J - значения определенности. Индикаторы KDJ отражают состояние перепродажи на рынке.
Стратегия использует несколько индикаторов, таких как MACD и KDJ, чтобы эффективно отфильтровывать рыночный шум и идентифицировать направление тенденции. MACD-индикатор может своевременно улавливать краткосрочные изменения цен, а KDJ-индикатор может подтверждать среднесрочные и долгосрочные тенденции.
Кроме того, в стратегию добавлен выбор времени, позволяющий самостоятельно выбирать временной диапазон для отслеживания. Это обеспечивает большую гибкость в оценке эффективности стратегии.
Когда рынок длительное время колеблется, MACD будет появляться многократно. В этом случае можно соответствующим образом скорректировать параметры линии EMA, отфильтровывая частичный шум.
Неправильная настройка параметров показателя KDJ также может повлиять на результаты. Можно тестировать несколько групп параметров, выбирая более стабильную комбинацию параметров.
Неправильно выбранное время отслеживания может завысить или занизить эффективность стратегии.
Эта стратегия может быть оптимизирована в следующих аспектах:
Увеличение механизма остановки убытков. Принудительная остановка убытков в случае, когда цена наступает на линию остановки убытков.
Добавление дополнительных фильтров. В сочетании с другими индикаторами, такими как RSI, BRI, можно повысить точность сигналов.
Оптимизировать параметры показателя. Изменить комбинацию параметров EMA и KDJ, чтобы найти оптимальный параметр.
Автоматическая оптимизация с использованием технологий машинного обучения. Тренировка и оптимизация параметров стратегии с использованием нейронных сетей.
Эта стратегия является типичной количественной стратегией, основанной на отслеживании тенденций, дополненной контролем за покупку и продажу. Она объединяет преимущества нескольких показателей, которые эффективно балансируют между стабильностью и чувствительностью.
/*backtest
start: 2022-12-06 00:00:00
end: 2023-12-12 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy(title="New Renaissance", shorttitle="New Renaissance", overlay=true,initial_capital=10000)
source = close
fastlength=input(12, minval=1)
slowlength=input(26,minval=1)
signallength=input(9,minval=1)
// === Defining the MACD oscillator
fastMA=ema(source,fastlength)
slowMA=ema(source,slowlength)
MACD=fastMA-slowMA
signal=sma(MACD,signallength)
delta=MACD-signal
// === Buy and Sell Signals ===
buy=crossover(MACD, signal)
sell=crossunder(MACD, signal)
// === INPUT BACKTEST RANGE ===
fromMonth = input(defval = 1, title = "From Month", type = input.integer, minval = 1, maxval = 12)
fromDay = input(defval = 1, title = "From Day", type = input.integer, minval = 1, maxval = 31)
fromYear = input(defval = 2018, title = "From Year", type = input.integer, minval = 1970)
thruMonth = input(defval = 12, title = "Thru Month", type = input.integer, minval = 1, maxval = 12)
thruDay = input(defval = 31, title = "Thru Day", type = input.integer, minval = 1, maxval = 31)
thruYear = input(defval = 2020, title = "Thru Year", type = input.integer, minval = 1970)
// === INPUT SHOW PLOT ===
showDate = input(defval = true, title = "Show Date Range", type = input.bool)
// === FUNCTION EXAMPLE ===
start = timestamp(fromYear, fromMonth, fromDay, 00, 00) // backtest start window
finish = timestamp(thruYear, thruMonth, thruDay, 23, 59) // backtest finish window
window() => true // create function "within window of time"
// === EXECUTION ===
strategy.entry("L", strategy.long, when = window() and buy) // enter long when "within window of time" AND crossover
strategy.close("L", when = window() and sell) // exit long when "within window of time" AND crossunder