Эта стратегия создает индивидуальный комбинированный индикатор CRSI, принимая среднее значение RSI, силы быка/медведя и цены на процентный рейтинг изменения, и торгуя на основе скользящей средней CRSI, пересекающей фиксированные уровни.
Стратегия сначала рассчитывает 3-дневный RSI цены, чтобы оценить, является ли цена перекупленной или перепроданной. Тем временем, она рассчитывает бычью / медвежью силу цены, чтобы судить о импульсе. Она также рассчитывает процентный рейтинг изменения курса цены (ROC), чтобы проверить относительную скорость изменения цены. Затем она берет среднее значение этих трех индикаторов, чтобы построить индивидуальный композитный индикатор CRSI, который отражает общее состояние цены. Наконец, она рассчитывает 2-дневную простую скользящую среднюю (MA) CRSI. Когда MA пересекает уровень 40, она идет в длинную позицию. Когда MA пересекает уровень ниже 70, она выходит из длинной позиции.
Эта стратегия сочетает в себе несколько индикаторов для построения индивидуального индикатора CRSI, что делает торговые сигналы более надежными. RSI может сказать, перегрета цена или перепродана. Сила быка / медведя может судить о импульсе. ROC проверяет, как быстро меняется цена. Объединение их вместе в CRSI делает торговые сигналы более всеобъемлющими и надежными. Кроме того, использование MA также помогает отфильтровать ложные сигналы.
Хотя эта стратегия использует несколько индикаторов для комбинации, она по-прежнему рискует генерировать ложные сигналы в определенных рыночных условиях. Например, на рынках с диапазоном, RSI, ROC и другие индикаторы могут производить частые сигналы купли и продажи, в то время как на самом деле цена не имеет четкой тенденции. Или некоторые индикаторы могут задерживаться и задерживать генерирование торговых сигналов после внезапного события. Эти ситуации могут вызвать убытки. Риски могут быть уменьшены путем оптимизации параметров или добавления других условий фильтрации.
Вот некоторые аспекты, которые могли бы оптимизировать эту стратегию: 1) оптимизировать параметры RSI, бычьей / медвежьей силы и ROC, чтобы сделать CRSI более стабильным и надежным; 2) добавить другие вспомогательные индикаторы, такие как KDJ, MACD в комбинацию для более полных сигналов; 3) оптимизировать параметры MA, чтобы снизить риск задержки; 4) добавить условия остановки потери для контроля одиночных потерь; 5) включить долгосрочные индикаторы для оценки состояния тренда, избегая переоценки входящих рынков диапазона.
Эта стратегия строит индивидуальный индикатор CRSI на основе среднего значения RSI, силы быка / медведя и ROC и торгует на MA CRSI, пересекающей фиксированные уровни. Такая комбинация из нескольких индикаторов может сделать торговые сигналы более стабильными и надежными. Но эта стратегия все еще требует дальнейшей оптимизации параметров, вспомогательных индикаторов и условий фильтрации для уменьшения ложных сигналов и влияния рыночных режимов, чтобы улучшить устойчивую прибыльность.
/*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=3 src = close, lenrsi = 3, lenupdown = 2, lenroc = 100, malengt = 2, low = 40, high = 70, a = 1, vlow = 20 updown(s) => isEqual = s == s[1] isGrowing = s > s[1] ud = 0.0 ud := isEqual ? 0 : isGrowing ? (nz(ud[1]) <= 0 ? 1 : nz(ud[1])+1) : (nz(ud[1]) >= 0 ? -1 : nz(ud[1])-1) ud rsi = rsi(src, lenrsi) updownrsi = rsi(updown(src), lenupdown) percentrank = percentrank(roc(src, 1), lenroc) crsi = avg(rsi, updownrsi, percentrank) MA = sma(crsi, malengt) band1 = 70 band0 = 40 band2 = 20 ColorMA = MA>=band0 ? lime : red p1 = plot(MA, title="BuyNiggers", style=line, linewidth=4, color=ColorMA) p2 = plot(low, title="idk", style=line, linewidth=2, color=blue) p3 = plot(high, title="idk2", style=line, linewidth=2, color=orange) p4 = plot(vlow, title="idk3", style=line, linewidth=1, color=red) //@version=2 strategy("CMARSI") if crossover(MA, band0) strategy.entry("buy", strategy.long, 1, when=strategy.position_size <= 0) if crossunder(MA, band1) strategy.exit("close", "buy", 1, profit=1, stop=1) plot(strategy.equity)