Краткосрочная стратегия торговли корешко-осиляторным индексом

Автор:Чао Чжан, Дата: 2023-11-14 15:59:25
Тэги:

img

Обзор

Это краткосрочная торговая стратегия, которая использует индикатор RSI на основе правил торговли черепахой. Он сочетает в себе индикатор RSI и индикатор Williams Alligator для проведения контратендентных сделок, когда RSI входит в зону перекупленности или перепродажи. Это относительно консервативная краткосрочная торговая стратегия.

Логика стратегии

Стратегия основывается главным образом на следующих принципах:

  1. Используя правила торговли черепахами, выходите на рынок только тогда, когда есть очевидный поворот, используя относительно консервативный подход к торговле.

  2. Использование индикатора RSI для оценки условий перекупления/перепродажи. Когда линия RSI входит в зону перекупления (неоплата свыше 60) или зону перепродажи (неоплата свыше 40), это указывает на то, что рынок находится в точке переворота, затем принимать контратендные сделки.

  3. Комбинирование индикатора Уильямса Алигатора для определения тенденции рынка. Пройти короткий только тогда, когда Алигатор показывает три линии (Липы, Зубы, Челюсть), выровненные в нисходящем тренде; пройти длинный только тогда, когда три линии выровнены в восходящем тренде.

  4. Использование РСИ РСИ для оценки условий перекупления/перепродажи самого индикатора РСИ, создание двойного эффекта фильтра. Только когда линия РСИ входит в зону перекупления/перепродажи, а РСИ РСИ также входит в зону перекупления/перепродажи, торговые сигналы запускаются.

  5. Закройте позицию для получения прибыли или стоп-лосса, когда цена перевернется, чтобы достичь линии получения прибыли или стоп-лосса.

Анализ преимуществ

Стратегия имеет следующие преимущества:

  1. Принятие строгих правил торговли черепахами, выходя на рынок только тогда, когда есть очевидный поворот, может избежать огромных рисков, когда рынок колеблется.

  2. Используя индикатор RSI для определения точек переворота рынка, индикатор прост и понятен, легко работать.

  3. Сочетание индикатора Alligator для определения направления тренда позволяет избежать торговли против тренда.

  4. Установка стоп-лосса и блокировки прибыли в прибыли и контролирует риски.

  5. Легко оптимизировать параметры. Параметры RSI и критерии входа/выхода могут быть настроены для различных рынков для оптимизации стратегии.

Анализ рисков

Стратегия также сопряжена с некоторыми рисками:

  1. Существует вероятность ложных сигналов от индикатора RSI. RSI может давать неверные сигналы перекупления / перепродажи. Комбинирование Alligator может уменьшить ложные сигналы.

  2. Слишком широкая стоп-лосс может привести к увеличению потерь. Стоп-лосс следует сузить соответствующим образом, чтобы уменьшить потери на торговую сделку.

  3. В зоне перекупа/перепродажи РСИ может произойти не совсем обратное движение, изменение рыночного режима может изменить точки обратного движения, параметры должны быть соответствующим образом скорректированы.

  4. Количество сделок может быть низким, в период отсутствия сделок.

  5. Продолжительные тенденции на рынках могут затруднить краткосрочную торговлю.

Руководство по оптимизации

Стратегия может быть оптимизирована в следующих аспектах:

  1. Оптимизировать параметры RSI, корректировать зоны перекупленности/перепроданности для адаптации к различным рынкам.

  2. Настройка параметров Аллигатора для улучшения точности определения направления тренда.

  3. Оптимизируйте стоп-лосс и принимайте настройки прибыли, чтобы максимизировать контроль за снижением и блокировать больше прибыли.

  4. Комбинируйте с другими индикаторами, такими как KDJ, MACD и т. д., чтобы улучшить точность сигнала.

  5. Добавьте автоматическую остановку потери, отслеживающую остановку потери, чтобы лучше контролировать потерю одной сделки.

  6. Оптимизировать размер позиций в различных рыночных условиях для управления рисками.

  7. Оптимизируйте торговые сессии, торгуйте в те моменты, когда тенденция более очевидна.

Резюме

В целом, это относительно надежная краткосрочная стратегия торговли. Она использует консервативный подход к торговле черепахой, использует индикатор RSI для определения точек перелома и включает индикатор Аллигатора для оценки направления тренда, который может эффективно избежать высокорисковых сделок, таких как погоня за вершинами и дном, и блокировать относительно стабильную прибыль. Оптимизируя параметры, стоп-лосс / прибыль, комбинируя другие индикаторы и т. Д., Стратегия может постоянно совершенствоваться. В целом, эта стратегия подходит для инвесторов, которые заинтересованы в торговле с противоположным трендом и стремлении к стабильной прибыли.


/*backtest
start: 2023-11-06 00:00:00
end: 2023-11-07 20:00:00
period: 30m
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/
// © mohanee

//@version=4

strategy(title="RSI of Ultimate Oscillator [SHORT Selling] Strategy",  shorttitle="RSIofUO" , overlay=false, pyramiding=1,     default_qty_type=strategy.percent_of_equity,  default_qty_value=20, initial_capital=10000, currency=currency.USD)  //default_qty_value=10, default_qty_type=strategy.fixed,

	
//Ultimate Oscillator logic copied from  TradingView   builtin indicator
/////////////////////////////////////////////////////////////////////////////////
length1 = input(5, minval=1), length2 = input(10, minval=1), length3 = input(15, minval=1)


rsiUOLength = input(5, title="RSI UO length", minval=1)

sellLine = input (60, title="Sell at RSIofUO")
coverLine = input (75, title="Cover at RSIofUO")

riskCapital = input(title="Risk % of capital", defval=10, minval=1)
stopLoss=input(3,title="Stop Loss",minval=1)


showUO=input(false, "show Ultimate Oscialltor")



average(bp, tr_, length) => sum(bp, length) / sum(tr_, length)
high_ = max(high, close[1])
low_ = min(low, close[1])
bp = close - low_
tr_ = high_ - low_
avg7 = average(bp, tr_, length1)
avg14 = average(bp, tr_, length2)
avg28 = average(bp, tr_, length3)
out = 100 * (4*avg7 + 2*avg14 + avg28)/7
//Ultimate Oscillator 
/////////////////////////////////////////////////////////////////////////////////

//Willimas Alligator  copied from  TradingView built in Indicator
/////////////////////////////////////////////////////////////////////////////////
smma(src, length) =>
	smma =  0.0
	smma := na(smma[1]) ? sma(src, length) : (smma[1] * (length - 1) + src) / length
	smma

//moving averages logic copied from Willimas Alligator -- builtin indicator in TradingView
sma1=smma(hl2,10)
sma2=smma(hl2,20)
sma3=smma(hl2,50)

//Willimas Alligator
/////////////////////////////////////////////////////////////////////////////////


//drawings
/////////////////////////////////////////////////////////////////////////////////
hline(sellLine, title="Middle Line 60  [Short Here]", color=color.red , linestyle=hline.style_solid)

obLevelPlot = hline(75, title="Overbought",  color=color.blue , linestyle=hline.style_dashed)
osLevelPlot = hline(25, title="Oversold", color=color.blue, linestyle=hline.style_dashed)

fill(obLevelPlot, osLevelPlot, title="Background", color=color.blue, transp=90)
rsiUO = rsi(out,rsiUOLength)

ultPlot=plot(showUO==true? out : na, color=color.green, title="Oscillator")

plot(rsiUO, title = "rsiUO" ,  color=color.purple)
//drawings
/////////////////////////////////////////////////////////////////////////////////




//Strategy Logic 
/////////////////////////////////////////////////////////////////////////////////

//Entry--
//Echeck how many units can be purchased based on risk manage ment and stop loss
qty1 = (strategy.equity  * riskCapital / 100 ) /  (close*stopLoss/100)  

//check if cash is sufficient  to buy qty1  , if capital not available use the available capital only
qty1:= (qty1 * close >= strategy.equity ) ? (strategy.equity / close) : qty1


strategy.entry(id="SERSIofUO", long=false,   qty=qty1, when = sma1<=sma2 and sma2 < sma3 and close<sma2 and crossunder(rsiUO,sellLine) )

//strategy.entry(id="SERSiofUO", long=false, when = sma1< sma2  and crossunder(rsiUO,60) )

barcolor(abs(strategy.position_size)>=1 ? color.purple : na )
bgcolor(abs(strategy.position_size)>=1 ? color.purple : na , transp=70)


//partial exit
strategy.close(id="SERSIofUO", comment="PExit",  qty=strategy.position_size/3, when=abs(strategy.position_size)>=1 and close< strategy.position_avg_price and crossover(rsiUO,30) )

strategy.close(id="SERSIofUO", comment="CloseAll", when=abs(strategy.position_size)>=1 and crossover(rsiUO,coverLine) )

//Strategy Logic 
/////////////////////////////////////////////////////////////////////////////////



Больше