Это двойная стратегия отслеживания супертенденций. Он применяет индикаторы супертенденций в два разных периода времени, один в качестве основного временного периода для определения направления тренда, а другой в качестве вспомогательного временного периода для фильтрации записей. Он входит только тогда, когда супертенденции в обоих временных рамках находятся в одном направлении, чтобы более точно фиксировать точки перелома тренда.
Основным показателем этой стратегии является Supertrend. Supertrend определяет относительное направление тренда цен путем расчета волатильности цен. Стратегия использует Supertrend в два периода времени, рассчитывая линии Supertrend для основных и вспомогательных временных рамок соответственно.
Конкретная логика торговли:
Использовать направление основного временного рамок Supertrend в качестве общего направления тренда.
Введите, когда вспомогательный временной интервал Supertrend выдает сигнал в том же направлении.
Установите стоп-лосс и возьмите точки прибыли.
Выйти, когда главный временной отрезок Supertrend снова вернется.
Объединяя два индикатора временных рамок, некоторые расхождения могут быть отфильтрованы для более точного ввода.
Преимущества этой стратегии включают:
Сочетание двойных временных рамок позволяет более точно оценивать тренд.
Supertrend чувствителен к изменениям тренда, с точным входом.
Остановить убытки и взять риск контроля прибыли.
Простая и прямая логика стратегии, легко понятная.
Параметры могут быть настроены для разных продуктов.
Основными рисками являются:
Отставание от супертенденции может привести к неправильному оценке сигналов.
Неправильный стоп-лосс и прием прибыли могут привести к перегонке тенденций или преждевременному стоп-лос.
Двойные временные рамки могут пропустить некоторые более короткие переломы.
Оптимизация параметров опирается на исторические данные, существуют риски перенастройки.
Не учитывается стоимость сделки.
Решения:
Настройка параметров показателей, добавление других показателей для проверки комбинации.
Динамически оптимизировать стоп-лосс и получение прибыли на основе результатов обратных тестов.
Испытайте более короткие временные рамки в качестве вспомогательного суждения.
Расширить диапазон данных обратного теста, проверка обратного теста на нескольких рынках.
Добавьте транзакционные расходы, такие как комиссия и сдвиг.
Стратегия может быть дополнительно оптимизирована путем:
Проверяю больше комбинаций показателей, чтобы найти оптимальную комбинацию.
Использование машинного обучения для динамической оптимизации параметров.
Оптимизировать стоп-лосс и получение прибыли для улучшения соотношения риск-вознаграждение.
Пробую комбинировать больше временных рамок.
Корректировка диапазонов получения прибыли и остановки потерь на основе количества сделок.
Добавляю комиссионные и логику скольжения.
Разработка инструментов для оптимизации графических параметров.
Эта стратегия достигает относительно точного суждения о тренде и вводов с использованием двойных временных индикаторов Supertrend. Она контролирует риски, устанавливая стоп-лосс и прибыль. Логика стратегии проста и ясна, ее легко расширять и оптимизировать. Ее можно еще улучшить, внедряя больше индикаторов, динамически оптимизируя параметры, добавляя затраты на транзакции и т. д., чтобы сделать ее более надежной. В целом эта стратегия обеспечивает полезную идею отслеживания тренда двойных временных рамок, которая имеет хорошую справочную стоимость.
/*backtest start: 2023-08-22 00:00:00 end: 2023-09-21 00:00:00 period: 2h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 //Supertrend Strategy by breizh29 using *rajandran.r* Supertrend Indicator // strategy("Super Trend 2", overlay=true, default_qty_value=100) TrendUp = 0.0 TrendDown = 0.0 Trend = 0.0 MTrendUp = 0.0 MTrendDown = 0.0 MTrend = 0.0 res = input(title="Main SuperTrend Time Frame", defval="120") Factor=input(1, minval=1,maxval = 100) Pd=input(1, minval=1,maxval = 100) tp = input(500,title="Take Profit") sl = input(400,title="Stop Loss") Up=hl2-(Factor*atr(Pd)) Dn=hl2+(Factor*atr(Pd)) MUp=security(syminfo.tickerid,res,hl2-(Factor*atr(Pd))) MDn=security(syminfo.tickerid,res,hl2+(Factor*atr(Pd))) Mclose=security(syminfo.tickerid,res,close) TrendUp:=close[1]>TrendUp[1]? max(Up,TrendUp[1]) : Up TrendDown:=close[1]<TrendDown[1]? min(Dn,TrendDown[1]) : Dn MTrendUp:=Mclose[1]>MTrendUp[1]? max(MUp,MTrendUp[1]) : MUp MTrendDown:=Mclose[1]<MTrendDown[1]? min(MDn,MTrendDown[1]) : MDn Trend := close > TrendDown[1] ? 1: close< TrendUp[1]? -1: nz(Trend[1],1) Tsl = Trend==1? TrendUp: TrendDown MTrend := Mclose > MTrendDown[1] ? 1: Mclose< MTrendUp[1]? -1: nz(MTrend[1],1) MTsl = MTrend==1? MTrendUp: MTrendDown linecolor = Trend == 1 ? green : red plot(Tsl, color = linecolor , style = line , linewidth = 2,title = "SuperTrend") Mlinecolor = MTrend == 1 ? blue : orange plot(MTsl, color = Mlinecolor , style = line , linewidth = 2,title = "Main SuperTrend") plotshape(cross(close,Tsl) and close>Tsl , "Up Arrow", shape.triangleup,location.belowbar,green,0,0) plotshape(cross(Tsl,close) and close<Tsl , "Down Arrow", shape.triangledown , location.abovebar, red,0,0) up = Trend == 1 and Trend[1] == -1 and MTrend == 1 down = Trend == -1 and Trend[1] == 1 and MTrend == -1 plotarrow(up ? Trend : na, title="Up Entry Arrow", colorup=lime, maxheight=60, minheight=50, transp=0) plotarrow(down ? Trend : na, title="Down Entry Arrow", colordown=red, maxheight=60, minheight=50, transp=0) golong = Trend == 1 and Trend[1] == -1 and MTrend == 1 goshort = Trend == -1 and Trend[1] == 1 and MTrend == -1 strategy.entry("Buy", strategy.long,when=golong) strategy.exit("Close Buy","Buy",profit=tp,loss=sl) strategy.entry("Sell", strategy.short,when=goshort) strategy.exit("Close Sell","Sell",profit=tp,loss=sl)