
Die Kernidee dieser Strategie ist die Kombination von KST und EMA, um Trends zu beurteilen und zu verfolgen. Kaufen Sie, wenn der KST-Indikator Goldfork auftritt und unter 0 liegt, und verkaufen Sie, wenn der Todesfork auftritt und über 0 liegt.
Berechnung des KST-Wertes: Berechnung des ROC-Wertes für die 10, 15, 20 und 30 Tage, Gewichtung und Summierung der Werte, um den KST-Wert durch einen 9-Tage-SMA zu erhalten.
Berechnung der EMA-Durchschnittslinie: Berechnung der EMA-Durchschnittslinie mit einer Länge von 50.
Erzeugt ein Kaufsignal: Wenn die Schnelllinie des KST-Indikators die langsame Linie ((Goldfork) durchbricht und unter 0 liegt, während der Schlusskurs über der EMA-Mittellinie liegt, erzeugt es ein Kaufsignal.
Ausverkaufssignal: Ausverkaufssignal wird erzeugt, wenn die Schnelllinie des KST-Indikators die Schnelllinie überschreitet und über 0 liegt und der Schlusskurs unterhalb der EMA-Mittellinie liegt.
Mobile Stop-Set: Tracking-Stop-Satz ist 1% des Kontowertes, um einen automatischen Stop-Loss zu erzielen.
Der KST-Indikator kann Trendänderungen erkennen, die EMA-Gleichlinie kann die Richtung des Trends bestätigen, und die Kombination der beiden kann den ENTRY-Zeitpunkt genau bestimmen.
Die KST-Index-Richtung wird mit der schnellen Kreuzung der Null-Achse bestimmt, um unnötige Transaktionen zu vermeiden.
Die EMA-Gleichlinie dient als Stützungswiderstand und filtert weitere Falschsignale, die nur bei einem Durchbruch der EMA eingegeben werden.
Automatische Stop-Loss-Verfolgung, um Risiken zu kontrollieren und Profit zu erzielen.
Die Strategie hat weniger Parameter und ist einfacher zu implementieren und zu optimieren.
Der KST-Indikator hat eine Verzögerung bei der Beurteilung von Trendänderungen und kann einige Gelegenheiten verpassen. Es kann die Berechnungszeit verkürzt oder die Gewichtungsmethode optimiert werden.
Die EMA ist nachlässig und kann an Trendwendepunkten ausfallen. Andere Indikatoren oder mehrere EMA-Kombinationen können ausprobiert werden.
Eine zu lockere Stop-Loss-Einstellung vergrößert die Verluste; eine zu enge Stop-Loss-Einstellung wird von starken Schwankungen über Nacht beeinträchtigt. Es muss sorgfältig getestet werden, um die Balance zu finden.
Strategie-Signale sind häufig und die Transaktionskosten können hoch sein. Die Eintrittsbedingungen können entsprechend gelockert werden, um die Anzahl der Transaktionen zu reduzieren.
Optimieren Sie die Berechnungszyklusparameter für die KST-Indikatoren, um eine Kombination von Parametern zu finden, die für bestimmte Sorten empfindlicher sind.
Versuchen Sie, verschiedene Gleichgewichtsindikatoren oder -kombinationen wie MA, WMA und andere zu testen, um zu sehen, welche mit KST besser funktionieren.
Versuchen Sie, die Stop-Loss-Werte an die Volatilität oder die ATR-Dynamik anzupassen.
Es werden zusätzliche Filterbedingungen, wie z.B. ein Anstieg des Umsatzes, eingefügt, um eine Absicherung zu vermeiden.
Erwägen Sie die Kombination mit anderen Indikatoren wie RSI, MACD usw., um die Strategie umfassender zu gestalten.
Testen Sie die Wirkung der Parameter für verschiedene Sorten und entwickeln Sie Optimierungsprogramme für verschiedene Sorten.
Die Strategie ist klar, zuverlässig und einfach zu implementieren. Die KST-Indikatoren beurteilen Trendwechsel, die EMA filtert weiter, verhindert Verlust, kann automatisch den mittleren Trend verfolgen. Die Parameter sind vernünftig ausgewählt und haben viel Optimierungsraum.
/*backtest
start: 2022-10-31 00:00:00
end: 2023-11-06 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy(title="Know Sure Thing and EMA Strategy by JLX", shorttitle="KST EMA JLX", format=format.price, precision=4, initial_capital = 1000, default_qty_type=strategy.percent_of_equity, default_qty_value = 100)
roclen1 = input(10, minval=1, title = "ROC Length #1")
roclen2 = input(15, minval=1, title = "ROC Length #2")
roclen3 = input(20, minval=1, title = "ROC Length #3")
roclen4 = input(30, minval=1, title = "ROC Length #4")
smalen1 = input(10, minval=1, title = "SMA Length #1")
smalen2 = input(10, minval=1, title = "SMA Length #2")
smalen3 = input(10, minval=1, title = "SMA Length #3")
smalen4 = input(15, minval=1, title = "SMA Length #4")
siglen = input(9, minval=1, title = "Signal Line Length")
smaroc(roclen, smalen) => sma(roc(close, roclen), smalen)
kst = smaroc(roclen1, smalen1) + 2 * smaroc(roclen2, smalen2) + 3 * smaroc(roclen3, smalen3) + 4 * smaroc(roclen4, smalen4)
sig = sma(kst, siglen)
plot(kst, color=color.green, title="KST")
plot(sig, color=color.red, title="Signal")
hline(0, title="Zero")
len = input(50, minval=1, title="Length EMA")
src = input(close, title="Source EMA")
offset = input(title="Offset", type=input.integer, defval=0, minval=-500, maxval=500)
fastEMA = ema(src, len)
delta = kst - sig
buySignal = crossover(delta, 0) and kst < 0 and close > fastEMA
sellSignal = crossunder(delta, 0) and kst > 0 and close < fastEMA
longTrailPerc = input(title="Trail Long Loss (%)", type=input.float, minval=0.0, step=0.1, defval=1) * 0.01
shortTrailPerc = input(title="Trail Short Loss (%)",type=input.float, minval=0.0, step=0.1, defval=1) * 0.01
// STEP 2:
// Determine trail stop loss prices
longStopPrice = 0.0, shortStopPrice = 0.0
longStopPrice := if (strategy.position_size > 0)
stopValue = close * (1 - longTrailPerc)
max(stopValue, longStopPrice[1])
else
0
shortStopPrice := if (strategy.position_size < 0)
stopValue = close * (1 + shortTrailPerc)
min(stopValue, shortStopPrice[1])
else
999999
// Submit entry orders
if (buySignal)
strategy.entry(id="EL", long=true)
if (sellSignal)
strategy.entry(id="ES", long=false)
// STEP 3:
// Submit exit orders for trail stop loss price
if (strategy.position_size > 0)
strategy.exit(id="XL TRL STP", stop=longStopPrice)
if (strategy.position_size < 0)
strategy.exit(id="XS TRL STP", stop=shortStopPrice)
alertcondition(crossover(delta, 0) and kst < 0 and close > fastEMA,'Long alert', 'You should buy')
alertcondition(crossunder(delta, 0) and kst > 0 and close < fastEMA, 'Short alert', 'You should sell')