Эта стратегия называется
ADX означает средний направленный индекс, отражающий силу тренда. Чем выше значение ADX, тем сильнее тренд. ADX выше 25 предполагает наличие значительной тенденции.
DMI включает линии DI+ и DI-. DI+ выше DI- показывает рост, а DI- выше DI+ - спад.
Логика торговли такова:
Когда ADX выше 45, тенденция считается очень резкой.
Если DI+ ниже DI- то это сигнализирует о перепроданном состоянии и возможности переворота тренда, идя на длинный.
И наоборот, если DI- ниже DI+, это указывает на перекупленные условия и возможность реверсии для короткого.
Принимать прибыль своевременно после отмены.
Преимущество заключается в использовании ADX для определения сильных точек переворота тренда. Высокие значения ADX эффективно фильтруют ложные сигналы от различных рынков. Но параметры ADX нуждаются в оптимизации, и стоп-лосс также важен.
В заключение, ADX умеет измерять сильные тенденции, но трейдеры все еще должны следить за другими факторами, используя ADX как один дополнительный индикатор.
/*backtest start: 2023-08-13 00:00:00 end: 2023-09-12 00:00:00 period: 2h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy(shorttitle='DMI swings',title='DMI swings', overlay=true, initial_capital = 100, process_orders_on_close=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, commission_type=strategy.commission.percent, commission_value=0.1) //Backtest dates 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 = 2021, title = "From Year", type = input.integer, minval = 1970) thruMonth = input(defval = 1, title = "Thru Month", type = input.integer, minval = 1, maxval = 12) thruDay = input(defval = 1, title = "Thru Day", type = input.integer, minval = 1, maxval = 31) thruYear = input(defval = 2112, title = "Thru Year", type = input.integer, minval = 1970) showDate = input(defval = true, title = "Show Date Range", type = input.bool) 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" [pos_dm, neg_dm, avg_dm] = dmi(14, 14) //Entry strategy.entry(id="long", long = true, when = avg_dm > 45 and pos_dm < neg_dm and window()) //Exit strategy.close("long", when = avg_dm > 45 and pos_dm > neg_dm and window())