Эта стратегия экспериментально использует комбинацию нескольких динамических индикаторов, таких как индикатор динамики Чанде, индикатор RMI, Triple HMA RSI, Double EVW RSI, Triple EMA RSI, чтобы определить направление тренда и войти в игру, когда все индикаторы сигнализируют одновременно.
Вычислите динамический показатель Чанде и установите его линию покупок и продаж.
Рассчитайте RMI, Triple HMA RSI, Double EVW RSI, Triple EMA RSI и многие другие.
Установите линию покупки и линию продажи для каждого индикатора.
Когда динамический индикатор Чанде пересекает линию покупки вверх, проверьте, не находятся ли другие индикаторы ниже соответствующей линии покупки. Если все индикаторы одновременно выполняют условия, то создается сигнал покупки.
Наоборот, если Чанде пересекает проданную линию под динамическим показателем, а другие показатели одновременно превышают соответствующие проданные линии, то создается проданный сигнал.
Несколько комбинаций показателей, которые могут быть проверены друг с другом, чтобы избежать ошибочных выводов.
Динамический индикатор Chande чувствителен к изменению тренда и может эффективно улавливать повороты.
Показатель RMI может показать уровень динамики, чтобы определить, насколько вы перекупаете.
HMA RSI, EVW RSI и другие индикаторы тестируют различные способы расчета RSI.
Показатель эффективности может быть проведен гибко с помощью комбинации из нескольких показателей.
Поскольку многопоказательная комбинация требует более сложных условий, сигналов меньше, возможно, мы упустим возможности.
Нет средств контроля риска, таких как остановка убытков.
Показатель эффективности зависит от периода времени и может быть нечувствительным к различным периодам.
Без оптимизации параметров параметры индикатора могут быть неправильно настроены.
Не хватает данных для полной проверки стратегии.
Решение проблемы:
Уменьшение обесценения индексов, чтобы обеспечить больше возможностей для торговли.
Добавить мобильный или жесткий стоп для контроля одиночных потерь.
Испытания в разных циклах и разновидностях, чтобы найти оптимальные параметры.
Параметры оптимизируются с помощью методов машинного обучения или сетевого поиска.
Это позволит обеспечить стабильность стратегии на многих рынках.
Тестирование различных параметров параметров показателей, чтобы найти оптимальную конфигурацию.
Добавление адаптивных динамических показателей в разных временных масштабах.
Внедрение трендовых тестов, чтобы избежать обратной торговли.
Применение машинного обучения для повышения весовой конфигурации в нескольких показателях.
В сочетании с равнолинейной системой, изменился выбор времени входа в поле.
Эта стратегия пытается найти более надежную точку перехода к тренду путем комбинирования нескольких динамических показателей. Такая разнообразная стратегия имеет большое пространство для расширения и оптимизации. Она может быть начата с выбора параметров, веса показателя, контроля риска и т. Д., чтобы получить больше торговых возможностей, соответствующих логике системы, при условии обеспечения качества сигнала.
/*backtest
start: 2023-08-24 00:00:00
end: 2023-09-23 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © burgercrisis
//@version=4
strategy("RMI + Triple HMRSI + Double EVWRSI + TERSI Strategy")
//* Backtesting Period Selector | Component *//
//* https://www.tradingview.com/script/eCC1cvxQ-Backtesting-Period-Selector-Component *//
//* https://www.tradingview.com/u/pbergden/ *//
//* Modifications made *//
testStartYear = input(2021, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)
testStopYear = input(999999, "Backtest Stop Year")
testStopMonth = input(9, "Backtest Stop Month")
testStopDay = input(26, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)
testPeriod() => true
/////////////// END - Backtesting Period Selector | Component ///////////////
src = input(close, "Price", type = input.source)
CMOlength = input(9, minval=1, title="Alpha Chande Momentum Length")
//CMO
momm = change(src)
f1(m) => m >= 0.0 ? m : 0.0
f2(m) => m >= 0.0 ? 0.0 : -m
m1 = f1(momm)
m2 = f2(momm)
sm1 = sum(m1, CMOlength)
sm2 = sum(m2, CMOlength)
percent(nom, div) => 100 * nom / div
chandeMO = percent(sm1-sm2, sm1+sm2)
plot(chandeMO, "Chande MO", color=color.blue)
//RMI
// Copyright (c) 2018-present, Alex Orekhov (everget)
// Relative Momentum Index script may be freely distributed under the MIT license.
length3 = input(title="RMI Length", type=input.integer, minval=1, defval=30)
momentumLength3 = input(title="RMI Momentum ", type=input.integer, minval=1, defval=25)
up3 = rma(max(change(src, momentumLength3), 0), length3)
down3 = rma(-min(change(src, momentumLength3), 0), length3)
rmi3 = (down3 == 0 ? 100 : up3 == 0 ? 0 : 100 - (100 / (1 + up3 / down3)))-50
//
//
// end RMI, end Alex Orekhov copywrite
//
//
lengthMA = input(7)
lengthRSI = input(14)
thrsi = hma(hma(hma(rsi(src, lengthRSI), lengthMA), lengthMA), lengthMA)
thrsi1 = (thrsi-50)*10
lengthMA2 = input(7)
lengthRSI2 = input(14)
devwrsi = ((ema(ema(vwma(rsi(src, lengthRSI2), lengthMA2), lengthMA2), lengthMA2))-50)*5
lengthMA3 = input(7)
lengthRSI3 = input(14)
tersi = ((ema(ema(ema(rsi(src, lengthRSI3), lengthMA3), lengthMA3), lengthMA3))-50)*10
rmirsi = ((thrsi*rmi3/25))
//Boundary Lines
obLevel1 = input(0, title="Chande Sellline")
osLevel1 = input(0, title="Chande Buyline")
hline(obLevel1, color=#0bc4d9)
hline(osLevel1, color=#0bc4d9)
obLevel2 = input(0, title="Triple HMRSI Sellline")
osLevel2 = input(0, title="Triple HMRSI Buyline")
hline(obLevel2, color=#5a0bd9)
hline(osLevel2, color=#5a0bd9)
obLevel3 = input(0, title="DEVWRSI Sellline")
osLevel3 = input(0, title="DEVWRSI Buyline")
hline(obLevel3, color=#5a0bd9)
hline(osLevel3, color=#5a0bd9)
obLevel4 = input(0, title="TERSI Sellline")
osLevel4 = input(0, title="TERSI Buyline")
hline(obLevel4, color=#5a0bd9)
hline(osLevel4, color=#5a0bd9)
obLevel5 = input(0, title="RMI Sellline")
osLevel5 = input(0, title="RMI Buyline")
hline(obLevel5, color=#5a0bd9)
hline(osLevel5, color=#5a0bd9)
obLevel6 = input(0, title="RMI*RSI Sellline")
osLevel6 = input(0, title="RMI*RSI Buyline")
hline(obLevel6, color=#5a0bd9)
hline(osLevel6, color=#5a0bd9)
plot((thrsi1), title="THRSI")
plot(devwrsi, color=color.red, title="DEVWRSI")
plot(tersi, color=color.yellow, title="TERSI")
plot(rmirsi, color=color.purple, title="RMI*HMRSI")
plot(rmi3, color=color.orange, title="RMI")
longcondition1 = crossover(chandeMO, osLevel1)
shortcondition1 = crossunder(chandeMO, obLevel1)
longcondition2 = rmirsi<osLevel6 and rmi3<osLevel5 and tersi<osLevel4 and devwrsi<osLevel3 and thrsi1<osLevel2 and longcondition1
shortcondition2 = rmirsi>obLevel6 and rmi3>obLevel5 and tersi>obLevel4 and devwrsi>obLevel3 and thrsi1>obLevel2 and shortcondition1
if testPeriod()
if longcondition2
strategy.entry("Buy", strategy.long)
if shortcondition2
strategy.entry("Sell", strategy.short)
hline(0, color=#C0C0C0, linestyle=hline.style_dashed, title="Zero Line")