
Die Strategie basiert auf den Indikatoren RVI (Relative Strength Index) und EMA (Index Moving Average). Sie ermöglicht eine quantitative Handelsstrategie, die auf Trends und Überkauf und Überverkauf basiert.
Verwenden Sie die RVI, um Überkauf-Überverkauf zu ermitteln. Wenn die RVI-Indikatorlinie über ihre Signallinie geht, machen Sie mehr für das Überkaufsignal; Wenn die RVI-Indikatorlinie unter ihre Signallinie geht, machen Sie Platz für das Überverkaufsignal.
Die Verwendung von zwei EMAs zur Bestimmung der Richtung des Trends. Wenn der schnelle EMA über dem langsamen EMA liegt, ist dies ein bullish Trend, wenn der langsame EMA über dem schnellen EMA liegt, ist dies ein bearish Trend.
Mehroperationen werden nur durchgeführt, wenn der RVI einen Gewinn erlaubt und die EMA ihn als negativ beurteilt; Kurzschlussoperationen werden nur durchgeführt, wenn der RVI einen Gewinn erlaubt und die EMA ihn als negativ beurteilt.
Der Stop-Loss nach dem Übertritt liegt unter dem jüngsten Tiefpunkt.*atrSL-Distanz, der Stopp befindet sich oberhalb der nächsten Höheatr*atrTP-Distanz; der Stop-Loss nach dem Shorting befindet sich oberhalb des jüngsten Höchstwerts*atrSL-Distanz, der Stopp liegt unter dem jüngsten Tiefpunktatr*atrTP-Distanz
Der Trend und der Überkauf-Überverkauf-Indikator werden kombiniert, um falsche Durchbrüche zu vermeiden.
Die dynamische Stop-Loss-Stop-System hilft, die Situation besser zu verstehen.
Die Handelssignale sind präzise, wenn man die Qualität der Trends und den Überkauf und Überverkauf berücksichtigt.
Die Daten sind ausreichend, die Parameter sind optimiert und die Festplatte funktioniert gut.
Die EMA beurteilt Trends, die sich häufig ändern, und die Handelsfrequenz kann zu hoch sein, wenn die Märkte stark schwanken.
Die RVI-Parameter und EMA-Zyklen müssen für verschiedene Handelsarten optimiert werden, da sonst die Effektivität schlechter sein könnte.
Der Stop-Loss-Stopp-Faktor muss entsprechend der Volatilität des Marktes angemessen eingestellt werden, da er sonst nicht in der Lage ist, das Risiko effektiv zu kontrollieren.
Es kann in Erwägung gezogen werden, zusätzliche Hilfsindikatoren, die die Qualität von Trends beurteilen, zu verwenden, z. B. Schwingungsindikatoren, Blink-Linie-Kanäle usw., um die Handelsentscheidung präziser zu machen.
Die Stop-Loss-Distanz kann in Kombination mit Volatilitätsindikatoren wie ATR dynamisch angepasst werden, um den Stop-Loss-Bereich bei starken Schwankungen entsprechend zu erweitern.
Die Kombination von Parametern kann für verschiedene Sorten getestet werden, um die besten Parameter auszuwählen und die Strategie zu stabilisieren.
Die Strategie kombiniert die Vorzüge der RVI- und EMA-Indikatoren und berücksichtigt die Richtung der großen Trends bei der Beurteilung von Überkaufen und Überverkaufen und vermeidet Konfliktgeschäfte. Der dynamische Stop-Loss-Stopp-Mechanismus hilft, die Hauptrichtung der Marktentwicklung zu erfassen. Durch die Optimierung der Parameter und die strenge Risikokontrolle kann die Strategie eine relativ stabile Rendite erzielen.
/*backtest
start: 2024-01-22 00:00:00
end: 2024-02-21 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//this strategy works well on h4 (btc or eth)
//@version=5
strategy(title="Relative Vigor Index", shorttitle="RVGI",overlay=true)
//indicator(title="Relative Vigor Index", shorttitle="RVGI", format=format.price, precision=4, timeframe="", timeframe_gaps=true)
len = input.int(4, title="Length rvi", minval=1)
rvi = math.sum(ta.swma(close-open), len)/math.sum(ta.swma(high-low),len)
sig = ta.swma(rvi)
offset = input.int(0, "Offset rvi", minval = -500, maxval = 500)
atrlength = input.int(19,title="Atr Length",minval=1)
ema1 = input.int(95,title="Long EMA rapida",minval=1,step=10)
ema2 = input.int(200,title="Long EMA lenta",minval=1,step=10)
atrSL = input.float(2.0,title="Atr SL", step=0.1)
atrTP = input.float(1.0,title="Atr TP", step=0.1)
atr = ta.atr(atrlength)
esalcista = low > ta.ema(close,ema1) and ta.ema(close,ema1) > ta.ema(close,ema2)
bajista = high < ta.ema(close,ema1) and ta.ema(close,ema1) < ta.ema(close,ema2)
//plot(high + atr)
//plot(low - atr)
//strategy.entry("compra",strategy.long, when=ta.crossover(rvi,sig))
//strategy.close("compra",when=ta.crossunder(rvi,sig))
//plot(rvi, color=#008000, title="RVGI", offset = offset)
//plot(sig, color=#FF0000, title="Signal", offset = offset)
//plotshape(true,style=shape.xcross)
var TP = 0.0
var SL = 0.0
comprado = strategy.position_size>0
vendido = strategy.position_size<0
crucepositivo = ta.crossover(rvi,sig)
crucenegativo = ta.crossunder(rvi,sig)
if comprado
// ver SL
if low < SL
strategy.close("BUY",comment="SL")
if comprado
//ver tp
if high > TP
strategy.close("BUY",comment="TP")
if not comprado and not vendido
if crucepositivo and esalcista
strategy.entry("BUY",strategy.long)
SL := low - (atr * atrSL)
TP := high + (atr * atrTP)
alert("BUY",alert.freq_once_per_bar)
//---------------
if vendido
// ver SL
if high > SL
strategy.close("SELL",comment="SL")
if vendido
//ver tp
if low < TP
strategy.close("SELL",comment="TP")
if not vendido and not comprado
if crucenegativo and bajista
strategy.entry("SELL",strategy.short)
SL := high + (atr * atrSL)
TP := low - (atr * atrTP)
alert("SELL",alert.freq_once_per_bar)
//----------------
//plotshape(comprado,style=shape.xcross)
plot( comprado ? SL : na, color=color.red,style=plot.style_circles)
plot( comprado ? TP : na, color=color.blue,style=plot.style_circles)
plot( ta.ema(close,ema1),color=color.orange)
plot( ta.ema(close,ema2),color=color.yellow)
plot( vendido ? SL : na, color=color.red,style=plot.style_circles)
plot( vendido ? TP : na, color=color.blue,style=plot.style_circles)