
Die Strategie nutzt das Prinzip der Linear-Crossing, kombiniert mit dem RSI, um die Richtung des Trends zu bestimmen und Kauf- und Verkaufsaktionen durchzuführen.
Die Strategie verwendet drei EMA-Mittellinien mit unterschiedlichen Perioden: die Schnelle, die Mittellinie und die Langsame Linie. Wenn die Schnelle die Mittellinie überschreitet, wird dies als Kaufsignal bewertet. Wenn die Schnelle die Mittellinie unterschreitet, wird dies als Verkaufssignal bewertet.
Die Strategie nutzt gleichzeitig den RSI-Indikator, um Überkauf-Überverkauf zu beurteilen. Der RSI zeigt die relative Stärke eines Vermögenswerts anhand des Verhältnisses zwischen dem durchschnittlichen Anstieg und dem durchschnittlichen Rückgang innerhalb eines Zyklus. Wenn der RSI die festgelegte Überkauflinie überschreitet, wird er als überkauft angesehen.
Die Kaufbedingungen für diese Strategie sind:
Die Verkaufsbedingungen sind:
Diese Strategie verwendet eine Kombination aus Trendhandel und Umkehrhandel, um die Richtung des großen Trends in Kombination mit dem RSI zu bestimmen und kurzfristige Überkauf-Überverkaufsmöglichkeiten zu erkennen.
Die Strategie kombiniert die Querschnitts- und RSI-Indikatoren, um Trends und Oversells zu beurteilen, und filtert einige Noise-Trades, die durch falsche Durchbrüche verursacht werden. Die Verwendung von drei Querschnittslinien ermöglicht eine klarere Beurteilung des Trends.
Die Einstellung des RSI-Indikators ermöglicht es der Strategie auch, die günstigen Ein- und Ausstiegsmomente in überkauften und überverkauften Bereichen zu ergreifen.
Die Strategie berücksichtigt auch die Transaktionskosten und verhindert, dass man eingeschlagen wird, indem man nur dann eintritt, wenn der Preis die drei mittleren Linien überschreitet.
Es besteht das Risiko, dass die Strategie nach Überschneidung eingesetzt wird. Veränderungen der Marktumgebung in der Realität können dazu führen, dass die Parameter nicht mehr an die neuen Marktbedingungen angepasst werden.
Die Strategie kann bei einem Sturm leicht zu falschen Signalen führen, was zu Verlusten führen kann.
Die RSI-Parameter müssen je nach Markt angepasst werden. Fehlende Parameter können zu verpassten Chancen oder falschen Signalen führen.
Es kann in Erwägung gezogen werden, die Signale auf einem Chart mit einer längeren Zeitspanne erneut zu überprüfen, um von kurzfristigen Marktgeräuschen gestört zu werden.
Sie können sich vor dem Markteintritt auf einen Durchbruch oder einen Rücktritt in die Gleichung vorbereiten, um das Signal weiter zu überprüfen.
Die Signalkombination von mehreren Indikatoren kann mit anderen Indikatoren wie MACD, Brin-Band usw. kombiniert werden, um die Entry-Hitrate zu erhöhen.
Die Optimierungsparameter können mit Hilfe von Machine-Learning-Algorithmen optimiert werden, um die Strategien anpassungsfähiger zu machen.
Eine Stop-Loss-Strategie kann in Betracht gezogen werden, um bei unsicheren Trends zu stoppen.
Die Strategie integriert die Gleichgewichtskreuzung und den RSI-Indikator, um kurzfristige Trendumkehrmöglichkeiten zu erkennen, während Trends beurteilt werden. Sie nutzt die Vorteile des Trendhandels und des Umkehrhandels effektiv und kann kurzfristige Gelegenheiten erfassen, während sie in der langfristigen Richtung gehalten wird. Die Strategie hat einen gewissen Optimierungsraum, der die Strategie stabiler und zuverlässiger machen kann, indem sie Signale, Optimierungsparameter und Stop-Loss-Elemente weiter verifiziert.
/*backtest
start: 2023-09-24 00:00:00
end: 2023-10-24 00:00:00
period: 1h
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/
// © chadsadachai
//@version=5
strategy("EMA Cross V1", overlay= true)
//rsi
length = input.int(title = "Rsi Lenght" , defval=26 , minval=1, maxval=50)
overS = input.int(title = "Rsi OVS line" , defval=30 , minval=1, maxval=40)
overB = input.int(title = "Rsi OVB line" , defval=70 , minval=1, maxval=100)
mLine = input.int(title = "Rsi Medium line" , defval=42 , minval=1, maxval=60)
price = close
vrsi = ta.rsi(price, length)
co = vrsi >= mLine and vrsi < overB
cu = ta.crossunder(vrsi, overB)
//ema
F = input.int(title = "EMA Fast" , defval=17 , minval=1, maxval=50)
M = input.int(title = "EMA Medium" , defval=35, minval=1, maxval=100)
S = input.int(title = "EMA Slow" , defval=142, minval=1, maxval=200)
emaF = ta.ema(price , F)
emaM = ta.ema(price , M)
emaS = ta.ema(price , S)
//plot
plot(emaF , color = color.green , linewidth=1)
plot(emaM , color = color.yellow , linewidth=1)
plot(emaS , color = color.red , linewidth=1)
//Time Stamp
start = timestamp(input.int(title = "Start Year" , defval=2011 , minval=2011, maxval=2025), input.int(title = "Start Month" , defval=1 , minval=1, maxval=12), input.int(title = "Start Day" , defval=1 , minval=1, maxval=31), 0, 0)
end = timestamp(input.int(title = "End Year" , defval=2025 , minval=2011, maxval=2025), input.int(title = "End Month" , defval=1 , minval=1, maxval=12), input.int(title = "End Day" , defval=1 , minval=1, maxval=31), 0, 0)
// years = input.int(title = "Year" , defval=2018 , minval=2011, maxval=2025)
// months = input.int(title = "Month" , defval=1 , minval=1, maxval=12)
// days = input.int(title = "Day" , defval=1 , minval=1, maxval=31)
//longCondition Default
// longCondition1 = EMA_Fast >= EMA_Slow and EMA_Fast >= EMA_Medium//ta.crossover(EMA_Fast, EMA_Slow) EMA_Fast > EMA_Slow and EMA_Medium > EMA_Slow
// longCondition3 = price >= EMA_Medium and price > EMA_Slow
// longCondition2 = vrsi >= overSold and vrsi <= overBought
//longCondition & shortCondition ETHUSD
// 1.price > emaF > emaM > emaS
// 2.rsi overcross overS
longC1 = price > emaF and price > emaM and price > emaS
// longC1 = ta.crossover(emaF, emaM)
longC2 = if longC1
co
// shortC1 = EMA_Fast < EMA_Medium //and EMA_Fast < EMA_Slow and EMA_Medium < EMA_Slow //and cu
// shortC2 = overBought > vrsi //and vrsi < overBought //overSold < vrsi and vrsi < mediumLine
// exitLong Condition
// 1.price < emaF < emaM < emaS
// 2.rsi overcross mediumLine
exitLong1 = ta.crossunder(emaF, emaM) //or emaF < emaM//and price < emaM and price < emaF
exitLong2 = ta.crossunder(vrsi,mLine)
//exitLong3 = price < emaM
//strategy.entry
if time >=start and time <=end
strategy.entry("Buy", strategy.long , when = longC1 and longC2)
// if(exitLong1 or exitLong2)
strategy.close("Buy" , when = exitLong1 or exitLong2)
// exitShort1 = EMA_Fast > EMA_Medium
// //exitShort2 = ta.crossover(vrsi , mediumLine)
// exitShort2 = ta.crossunder (vrsi,mediumLine)
// strategy.close("Short" , when = exitShort1 or exitShort2)
// //shortCondition = cu
// //if (shortCondition1 and shortCondition2)
// //strategy.entry("My Short Entry Id", strategy.short)