
Die Strategie nutzt die drei wichtigsten Mainstream-Indikatoren, den Moving Average EMA, den relativ starken RSI und den Commodity Channel Indicator CCI, um die Preisentwicklung durch die EMA-Mittellinie zu erkennen, und verwendet dann die RSI- und CCI-Indikatoren, die gekauft und verkauft wurden, um ein Handelssignal zu erzeugen.
Die EMA-Durchschnittslinie mit 4 Perioden und 8 Perioden, um die Preisentwicklung zu beurteilen, 4 Perioden schnell zu beurteilen, 8 Perioden langsam zu bestimmen;
Wenn der EMA-Durchschnittswert nach oben zurückkehrt, d.h. die 4-Periodenzone durch die 8-Periodenzone führt, wird der RSI-Indikator höher als 65 ((relative Überkaufzone) und der CCI-Indikator höher als 0 ((d.h. kein Überkauf-Überverkauf), und die Zufriedenheit erzeugt ein Mehrwertsignal;
Wenn die EMA nach unten zurückkehrt, d.h. die 4-Perioden-Linie unterhalb der 8-Perioden-Linie durchschreitet, und die RSI-Anzeige unter 35 ((relative Überverkaufszone) und die CCI-Anzeige unter 0 ((d.h. keine Überkauf-Überverkauf) unterstützt wird, erzeugt die Zufriedenheit ein Short-Signal;
Nach der Signalbildung werden die Stop-Loss- und Stop-Stop-Preise entsprechend der eingegebenen Stop-Loss- und Stop-Stop-Distanz festgelegt.
Insgesamt ist die Strategie, die die kurz- und mittelfristige Preisentwicklung und die kurzfristigen Indikatoren berücksichtigt, relativ stabil, während die Stop-Loss-Stopp-Einstellung den maximalen Verlust eines einzelnen Handels wirksam kontrolliert.
Mehrindikator-Komplex-Beschlüsse, um eine einzelne Indikator-Trading-Strategie zu vermeiden, bei der die Wahrscheinlichkeit einer Fehleinschätzung hoch ist;
Die EMA beurteilt die Hauptrends mit einer durchschnittlichen Linie, um nicht von kurzfristigen Schwankungen beeinflusst zu werden. Die RSI und der CCI verhindern Überkauf-Überverkaufszonen und erhöhen die Gewinnrate.
Automatische Einstellungen von Stop-Loss- und Stop-Stop-Kontrollen für das Risiko eines einzelnen Handels, um die Vergrößerung von Verlusten durch Extremsituationen zu verhindern.
Die Strategie ist eine technische Handelsstrategie, unbeeinflusst von den Fundamentaldaten, die für jeden Marktzyklus verwendet werden kann, und ist einfach zu platzieren.
Technische Indikatoren können bei plötzlichen großen Gewinnspannen/guten Nachrichten an Bedeutung verlieren.
Die Stop-Loss-Grenze sollte entsprechend gelockert werden, wenn die Aktienkurse stark schwanken und die Stop-Loss-Grenze möglicherweise durchbrochen wird.
Diese Strategie gehört zu den Kurz-Frequenz-Handelsstrategien, bei denen die Handelskosten einen gewissen Einfluss auf die Gewinne haben, und eignet sich für eine Hochfrequenz-Strategie mit einem Kostenvorteil.
Die Zugabe von Machine-Learning-Algorithmen zur automatischen Anpassung der Parameter an die Fundamentaldaten der Aktien;
Erweiterung der Anpassungs- und Anpassungsschutzmechanismen anstelle von festen Schutzdistanzen.
Die Trading-Strategie umfasst mehrere Indikatoren, die bei vernünftiger Einstellung der Parameter einen relativ stabilen mittelfristigen Handelsgewinn erzielen können. Sie gehört zu den technischen Strategien, die leicht auf dem Markt zu finden sind. Gleichzeitig sollte jedoch darauf geachtet werden, dass Risikoschutzmaßnahmen wie plötzliche wichtige Basisinformationen und angemessene Lockerung der Stop-Loss-Distanz vermieden werden.
/*backtest
start: 2023-11-19 00:00:00
end: 2023-11-26 00:00:00
period: 45m
basePeriod: 5m
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/
// © SoftKill21
//@version=4
strategy(title="Moving Average Exponential", shorttitle="EMA", overlay=true)
len4 = input(4, minval=1, title="Length_MA4")
src4 = input(close, title="Source")
offset4 = input(title="Offset", type=input.integer, defval=0, minval=-500, maxval=500)
out4 = ema(src4, len4)
plot(out4, title="EMA", color=color.blue, offset=offset4)
len8 = input(8, minval=1, title="Length_MA8")
src8 = input(close, title="Source")
offset8 = input(title="Offset", type=input.integer, defval=0, minval=-500, maxval=500)
out8 = ema(src8, len8)
plot(out8, title="EMA", color=color.blue, offset=offset8)
//rsioma
src = close, len = input(14, minval=1, title="Length")
up = rma(max(change(ema(src, len)), 0), len)
down = rma(-min(change(ema(src, len)), 0), len)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
//plot(rsi, color=color.blue)
//band1 = hline(80)
//band0 = hline(20)
//fill(band1, band0, color=color.purple, transp=90)
//hline(50, color=color.gray, linestyle=plot.style_line)
sig = ema(rsi, 21)
//plot(sig, color=color.purple)
//woodie
cciTurboLength = input(title="CCI Turbo Length", type=input.integer, defval=6, minval=3, maxval=14)
cci14Length = input(title="CCI 14 Length", type=input.integer, defval=14, minval=7, maxval=20)
source = close
cciTurbo = cci(source, cciTurboLength)
cci14 = cci(source, cci14Length)
last5IsDown = cci14[5] < 0 and cci14[4] < 0 and cci14[3] < 0 and cci14[2] < 0 and cci14[1] < 0
last5IsUp = cci14[5] > 0 and cci14[4] > 0 and cci14[3] > 0 and cci14[2] > 0 and cci14[1] > 0
histogramColor = last5IsUp ? color.green : last5IsDown ? color.red : cci14 < 0 ? color.green : color.red
// Exit Condition
// Exit Condition
a = input(12)*10
b = input(15)*10
c = a*syminfo.mintick
d = b*syminfo.mintick
longCondition = crossover(out4, out8) and (rsi >= 65 and cci14>=0)
shortCondition = crossunder(out4, out8) and (rsi <=35 and cci14<=0)
long_stop_level = float(na)
long_profit_level1 = float(na)
long_profit_level2 = float(na)
long_even_level = float(na)
short_stop_level = float(na)
short_profit_level1 = float(na)
short_profit_level2 = float(na)
short_even_level = float(na)
long_stop_level := longCondition ? close - c : long_stop_level [1]
long_profit_level1 := longCondition ? close + d : long_profit_level1 [1]
//long_profit_level2 := longCondition ? close + d : long_profit_level2 [1]
//long_even_level := longCondition ? close + 0 : long_even_level [1]
short_stop_level := shortCondition ? close + c : short_stop_level [1]
short_profit_level1 := shortCondition ? close - d : short_profit_level1 [1]
//short_profit_level2 := shortCondition ? close - d : short_profit_level2 [1]
//short_even_level := shortCondition ? close + 0 : short_even_level [1]
//ha
// === Input ===
//ma1_len = input(1, title="MA 01")
//ma2_len = input(40, title="MA 02")
// === MA 01 Filter ===
//o=ema(open,ma1_len)
//cc=ema(close,ma1_len)
//h=ema(high,ma1_len)
//l=ema(low,ma1_len)
// === HA calculator ===
//ha_t = heikinashi(syminfo.tickerid)
//ha_o = security(ha_t, timeframe.period, o)
//ha_c = security(ha_t, timeframe.period, cc)
//ha_h = security(ha_t, timeframe.period, h)
//ha_l = security(ha_t, timeframe.period, l)
// === MA 02 Filter ===
//o2=ema(ha_o, ma2_len)
//c2=ema(ha_c, ma2_len)
//h2=ema(ha_h, ma2_len)
//l2=ema(ha_l, ma2_len)
// === Color def ===
//ha_col=o2>c2 ? color.red : color.lime
// === PLOTITING===
//plotcandle(o2, h2, l2, c2, title="HA Smoothed", color=ha_col)
tp=input(120)
sl=input(96)
strategy.entry("long", strategy.long, when = longCondition)
//strategy.close("long", when = o2>c2 , comment="ha_long")
strategy.entry("short", strategy.short , when =shortCondition )
//strategy.close("short", when = o2<=c2 , comment = "ha_short" )
//strategy.close("long",when=long_profit_level1 or long_stop_level , comment="tp/sl")
//strategy.close("short",when=short_profit_level1 or short_stop_level , comment="tp/sl")
strategy.exit("x_long","long",profit = tp, loss = sl) //when = o2>c2)
strategy.exit("x_short","short",profit = tp, loss = sl) //when = o2<c2)