Diese Strategie basiert auf einer klassischen Kurzzeit-Trading-Strategie, bei der nach der Bildung einer Reihe von Sonnenlinien die Negativ- und die Negativ-Linien ausgelöscht werden; nach der Bildung einer Reihe von Sonnenlinien werden die Negativ- und die Negativ-Linien ausgelöscht. Insbesondere wird die Strategie durch die Entdeckung der Körperhöhe und Farbe der K-Linien ermittelt, um zu beurteilen, ob mehrere K-Linien der gleichen Farbe in Folge auftreten, und dann durch die RVI-Indikatoren, um zu beurteilen, ob eine Umkehr eingetreten ist.
Die Kernlogik der Strategie besteht hauptsächlich aus folgenden Punkten:
Die K-Linien-Einheit wird über die Mindesthöhen-Thresholds erfasst, um zu kleine Yang- und Yangschwankungen zu filtern.
Beurteilen Sie, ob die ersten beiden K-Linien die gleiche Farbe haben, und wenn ja, kann dies zu einer kurzfristigen Preisumkehr führen.
Nach der Feststellung, dass die ersten beiden K-Linien gleichfarbig sind, wird ein Handelssignal erzeugt, wenn die aktuelle K-Line von der Farbe der beiden vorherigen K-Linien abweicht. Das heißt, nach zwei aufeinanderfolgenden Negativlinien erscheint eine Sonnenlinie.
Nach dem Eintritt in den Handel wird die Richtung der Position anhand der Multiplexung des RVI-Indikators beurteilt. Der RVI-Indikator kann den kurzfristigen Wendepunkt bestimmen.
Insgesamt betrachtet die Strategie die K-Line-Charakteristik und die RVI-Indikatoren als ein kurzfristiges Umkehrsystem.
Diese Strategie hat folgende Vorteile:
Kurzfristige Preisanomalien zu erfassen. Wenn eine Reihe von positiven oder negativen Zahlen auftritt, zeigt dies, dass eine kurzfristige Preisanomalie aufgetreten ist, und es ist zu erwarten, dass die Umkehrung eine bessere Rendite bringt.
RVI-Indikatoren unterstützen die Beurteilung. RVI-Indikatoren können die kurzfristigen Wendepunkte effektiv beurteilen, sich mit den K-Linie-Charakteristiken ergänzen und die Stabilität des Systems verbessern.
Eine hohe Frequenz des Handelns, geeignet für den Betrieb der kurzen Linie. Es ist häufig, dass die K-Linie in der gleichen Farbe ist, und in Verbindung mit dem RVI-Indikator kann diese Strategie mehr Handelsmöglichkeiten bieten.
Risikokontrolle. Einsatz einer festen Handzahlung und Einrichtung einer Stop-Loss-Sperre.
Die Logik ist klar und einfach. Es ist leicht zu verstehen und zu implementieren und die Festplatte ist nicht sehr schwierig zu bedienen.
Die Strategie birgt auch einige Risiken, die beachtet werden müssen:
Kurzfristige Umkehrungen sind nicht zwingend gültig. Bei anhaltenden Trends kann es sein, dass die Kurzfristige Umkehrung fehlschlägt und zu einem falschen Einstieg führt.
RVI-Indikatoren können Fehlsignale auslösen. RVI-Indikatoren können auch aufgrund von besonderen Umständen ausfallen.
Ein falscher Stop-Loss-Ansatz kann den Verlust vergrößern. Es ist notwendig, einen vernünftigen Stop-Loss-Ansatz einzurichten.
Der Standard für gleichfarbige K-Linien in Folge ist zu starr. Eine Optimierung auf die Anzahl von X% gleichfarbiger K-Linien innerhalb von N-Wurzeln kann in Betracht gezogen werden.
Es ist wichtig, auf die Größe der Hand zu achten. Eine feste Hand kann die Gesamtrisiko-Grenze nicht kontrollieren, und ein großer Händler kann seine Position sprengen.
Die Strategie kann in folgenden Bereichen weiter optimiert werden:
Optimierung der Logik der gleichfarbigen Bestimmung von K-Linien, mit statistischen Methoden anstelle von festplatzierten Stammwurzeln.
Optimierung der RVI-Parameter und Suche nach der optimalen Parameterkombination.
Die mobile Stop-Loss-Strategie wird in Abhängigkeit von Marktschwankungen erweitert.
Das Modul zur Positionsverwaltung wurde hinzugefügt, um die Anzahl der Transaktionen dynamisch an die Kapitalnutzung anzupassen.
Mehr Filterbedingungen, um die Systemstabilität zu verbessern, mit einer Kombination aus Indikatoren wie Kanäle, Trends etc.
Parameteroptimierung für verschiedene Sorten zur Verbesserung der Anpassungsfähigkeit.
Einführung von maschinellem Lernen zum Trainieren historischer Daten und dynamische Optimierung von Systemparametern.
Die Strategie insgesamt ist eine typische kurzfristige Reversal-Trading-Strategie, die auf kurzfristigen K-Linie-Ausnahmen mit RVI-Indikatoren basiert. Sie hat einige Vorteile, aber auch mögliche Risiken. Durch die ständige Optimierung der Parameter und die Einrichtung eines strengeren Systems kann die Stabilität und Profitabilität der Strategie weiter verbessert werden.
/*backtest
start: 2022-10-07 00:00:00
end: 2023-10-07 00:00:00
period: 3d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
//This is part of a series of strategies developed automatically by a online software. I cannot share the site url, which is not related to me in any way, because it is against the TV reules.
//
//This strategy was optimized for GBPUSD, timeframe 1D, fixed lots 0.1, initial balance 1000€
//LOGIC:
//- LONG ENTRY when previous candle is bear
//- LONG EXIT: RVI > signal line
//- SHORT ENTRY when previous candle is bull
//- SHORT EXIT: RVI < signal line
//
//NOTE: I considered the open of actual candle instead of close otherwise there will be a back shift of 1 candle in pine script
//
//Take profit = no
//Stop loss = no
// strategy("Expert studio strategy 1 - GBPUSD", overlay=false, precision=6, initial_capital=1000,calc_on_every_tick=true, pyramiding=0, default_qty_type=strategy.fixed, default_qty_value=10000, currency=currency.EUR)
//INPUTS
src = input(close, "source")
min_body_height = input(42, "Minimum body height", type=input.float)
//bars_back=input(2, "Consecutive bars of same color")
rvi_period = input(55, "RVI period")
//CALCULATIONS_____________________________
//candle color
body_height = abs(open - close) / syminfo.mintick
body_color = open > close ? color.red : color.green
//da migliorare for i=0 to bars_back-1
//RVI -------- thanks to hecate
p = rvi_period
CO = close - open
HL = high - low
value1 = (CO + 2 * CO[1] + 2 * CO[2] + CO[3]) / 6
value2 = (HL + 2 * HL[1] + 2 * HL[2] + HL[3]) / 6
num = sum(value1, p)
denom = sum(value2, p)
RVI = denom != 0 ? num / denom : 0
RVIsig = (RVI + 2 * RVI[1] + 2 * RVI[2] + RVI[3]) / 6
plot(RVI, color=color.green, style=plot.style_line, linewidth=1)
plot(RVIsig, color=color.red, style=plot.style_line, linewidth=1)
//----------------------------------
longCondition = body_height[1] >= min_body_height and body_color[1] == color.red and
body_height[0] >= min_body_height and body_color[0] == color.red and
RVIsig > RVI
exitLong = RVI > RVIsig
shortCondition = body_height[1] >= min_body_height and body_color[1] == color.green and
body_height[0] >= min_body_height and body_color[0] == color.green and
RVIsig < RVI
exitShort = RVI < RVIsig
if longCondition and strategy.opentrades == 0
strategy.entry("Long", strategy.long)
strategy.close("Long", when=exitLong)
if shortCondition and strategy.opentrades == 0
strategy.entry("Short", strategy.short)
strategy.close("Short", when=exitShort)
// === Backtesting Dates === thanks to Trost
testPeriodSwitch = input(false, "Custom Backtesting Dates")
testStartYear = input(2011, "Backtest Start Year")
testStartMonth = input(10, "Backtest Start Month")
testStartDay = input(7, "Backtest Start Day")
testStartHour = input(0, "Backtest Start Hour")
testPeriodStart = timestamp(testStartYear, testStartMonth, testStartDay, testStartHour, 0)
testStopYear = input(2018, "Backtest Stop Year")
testStopMonth = input(12, "Backtest Stop Month")
testStopDay = input(31, "Backtest Stop Day")
testStopHour = input(23, "Backtest Stop Hour")
testPeriodStop = timestamp(testStopYear, testStopMonth, testStopDay, testStopHour, 0)
testPeriod() =>
time >= testPeriodStart and time <= testPeriodStop ? true : false
testPeriod_1 = testPeriod()
isPeriod = testPeriodSwitch == true ? testPeriod_1 : true
// === /END
if not isPeriod
strategy.cancel_all()
strategy.close_all()