Параболическая стратегия SAR RSI генерирует торговые сигналы, основанные на показателях
Стратегия в основном использует два технических показателя:
Параболическая SAR: графики параболической SAR линии как динамической линии стоп-лосса. Когда цена нарушает эту линию, положение и направление линии стоп-лосса сбросаются, генерируя сигналы покупки или продажи.
RSI: отражает скорость и изменение роста и падения цен в течение определенного периода времени. Выше 70 - это зона перекупления, а ниже 30 - зона перепродажи.
В частности, стратегия сначала устанавливает начальное значение, шаг и максимальное значение параболического SAR на основе ввода пользователя. Затем она определяет время входа и выхода в зависимости от того, переходит ли цена линию SAR:
В то же время стратегия также отслеживает RSI, чтобы определить, находится ли он в зоне перекупленности/перепроданности. Долгие позиции закрываются, когда RSI входит в зону перекупленности. Коротые позиции закрываются, когда RSI входит в зону перепроданности.
Комбинируя сигналы SAR и сигналы фильтра RSI, стратегия может своевременно совершать противоположные движения, когда цены изменяются, чтобы достичь высокого уровня покупки.
Основными преимуществами этой стратегии отслеживания реверсии являются:
Capture Price Reversal - использует прорывы для генерации сигналов обворота и совершения противоположных движений при перепаде цен.
Динамическая стоп-лосс - SAR действует как движущаяся стоп-лосс, которая регулирует уровни стоп-лосса на основе цен в режиме реального времени для защиты прибыли.
Адаптация - регулируемые параметры делают стратегию адаптивной к различным рыночным условиям.
Фильтр RSI - фильтрует ложные прорывы и избегает неправильных ходов.
Легко внедряется - использует простые индикаторы с небольшим количеством кода, легко внедряется и проверяется.
К рискам относятся:
Риск - ложные прорывы вызывают неправильные сигналы остановки и обратного движения, что приводит к повторным потерям.
Сверхоптимизация - оптимизация параметров может привести к переподключению и отсутствию надежности.
Нет фундаментальной основы - основывается исключительно на технических показателях, игнорирует фундаментальные показатели.
Игнорируйте затраты на транзакции - Частая торговля увеличивает затраты на транзакции.
При условии наличия разрывов в цене - разрывы могут вызвать неправильные сигналы остановки и обратного движения.
Стратегия может быть усовершенствована из следующих аспектов:
Комбинировать с другими индикаторами - подтвердить сигналы с другими индикаторами, чтобы избежать ложных сигналов.
Настройка параметров - тестирование и оптимизация параметров для поиска оптимальных комбинаций параметров.
Размер позиции - корректировка размера позиции на основе рыночных условий для контроля риска.
Торговля на значительных уровнях - торговать только вокруг ключевых уровней поддержки/сопротивления для снижения частоты.
Рассмотрим основные факторы - Добавьте основные факторы, чтобы избежать торговли против основных тенденций.
Стратегия отслеживания реверсии генерирует сигналы с использованием SAR и RSI для улавливания реверсий. Она динамически регулирует остановки для улавливания краткосрочной прибыли от прорывов. Но она также подвергается рискам последующего шума. Оптимизация параметров, улучшение качества принятия решений повысит стабильность и прибыльность стратегии.
/*backtest start: 2023-09-07 00:00:00 end: 2023-10-07 00:00:00 period: 2h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 // strategy("SARSI",overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0, commission_type = strategy.commission.percent, commission_value = 0.0675, initial_capital = 10000, currency = currency.USD, calc_on_order_fills = true, calc_on_every_tick = true) //study("SARSI",overlay = true) src = input(close, title="Source") len = input(14, minval=1, title="Length") rob = input(title="RSI Overbought Level", defval=82, minval=1, maxval=100) ros = input(title="RSI Oversold Level", defval=21, minval=1, maxval=100) start = input(title="SAR Start", defval=0.007, minval=0.001, maxval=10) inc = input(title="SAR Increment", defval=0.017, minval=0.001, maxval=100) max = input(title="SAR Maximum", defval=0.24, minval=0.01, maxval=10) asar = sar(start,inc,max) xrsi = rsi(close,len) date = timestamp(2018, 8, 1, 00, 00) up = crossunder(asar,src) dn = crossover(asar,src) //ob = crossunder(xrsi,rob) //os = crossover(xrsi,ros) strategy.entry("long", strategy.long, when=up and time>=date, comment="Long") strategy.entry("short", strategy.short, when=dn and time>=date, comment="Short") //strategy.close("long", when=ob) //strategy.close("short", when=os) alertcondition(up, "Long", "Long Msg") alertcondition(dn, "Short", "Short Msg") //uptrend=plotshape(up,"uptrend",shape.triangleup,color=#48A498,transp=0, size = size.tiny, location = location.belowbar,text="฿") //downtrend=plotshape(dn,"downtrend",shape.triangledown,color=#E25655,transp=0, size = size.tiny, location = location.abovebar,text="$") //plotshape(ob,"overbuy",shape.triangleup,color=#48A498,transp=0, size = size.small, location = location.belowbar,text="0฿") //plotshape(os,"oversell",shape.triangledown,color=#E25655,transp=0, size = size.small, location = location.abovebar,text="0$") plot(asar, style=cross, color=gray, transp=0, linewidth=1, title="SAR")