
Die Strategie verwendet die Technischen Indikatoren STC, Moving Average MA und Average True Volatility ATR, um einen stabileren Trend-Tracking-Handel zu erzielen, in Verbindung mit mehreren Technischen Indikatoren.
Der STC-Indikator beurteilt eine Trendumkehr. Der Indikator nutzt die Schnelllinie, um die Linie zu verlangsamen, und führt dann eine zweite Gleitbehandlung durch, um ein einheitliches Trendsignal zu bilden. Wenn der Indikator die 0-Achse überquert, ist dies ein Kaufsignal, wenn er die 0-Achse überquert, ist dies ein Verkaufsignal.
Moving Average MA beurteilt die Richtung der Tendenz. Wenn der Aktienpreis einen MA überschreitet, wird dies als ein Signal für mehrere Einheiten betrachtet. Wenn der Preis einen MA überschreitet, wird dies als ein Signal für eine leere Einheit betrachtet.
Der ATR-Indikator setzt die Stop-Loss-Marke. Der ATR kann die Stop-Loss-Marke an die Marktfluktuation anpassen. Der ATR wird als Handelssignal verwendet, der ATR steigt in der Mehrkopfphase und der ATR sinkt in der Leerkopfphase.
Die Strategie wählt die Gelegenheit aus, die STC-Urteil als Hauptkauf- und Verkaufspunkt umzukehren, die MA als Hilfsurteiltrend und die ATR als Stop-Loss-Stop. Wenn die STC ein Kaufsignal ausgibt, wird ein Überkauf geöffnet, wenn die MA auch aufwärts ist und die ATR steigt.
Die Strategie verwendet mehrere Indikatoren, um Trends und Wendepunkte zu bestimmen und die Genauigkeit der Handelssignale zu verbessern.
Der STC-Indikator erfasst die Umkehrsignale und verhindert, dass der Handel eingestellt wird. Der MA-Indikator filtert die instabilen Umkehrsignale und stellt sicher, dass er mit den Hauptrends verfolgt wird.
Der ATR-Indikator kann Stop-Loss-Positionen anhand der Marktfluktuation einrichten, um große Verluste zu vermeiden. Und der ATR kann als Signal verwendet werden, um Trends zu beurteilen.
Eine Kombination aus mehreren Indikatoren erzeugt eine starke Trendverfolgungskapazität, die historische Rückmeldung hat eine gute stabile Profitabilität.
Der STC-Indikator hat einen Zeitverzögerungsschub und verpasst möglicherweise den optimalen Zeitpunkt für eine Preisumkehr.
Der MA-Indikator neigt dazu, nachzulassen, wenn die Preise stark schwanken, was zu falschen Signalen führen kann.
ATR-Stopps können in Sekunden ausgeschaltet werden, wobei ATR-Multiplikatoren entsprechend gelockert oder in großen Trends vorübergehend geschlossen werden sollten.
Die Kombination von mehreren Indikatoren erhöht zwar die Gewinnrate, erhöht aber auch die Chancen, einen Stop-Loss auszulösen. Die Parameter sollten entsprechend angepasst werden, um unnötige Stop-Losses zu reduzieren.
Anpassung der STC-Parameter auf eine Kombination von Parametern, die schneller reagieren
Optimierung der MA-Periodenparameter, um Trends besser zu verfolgen
Einfluss von Parametern auf die Strategie, um verschiedene ATR-Multiplizierte zu testen
Versuchen Sie, andere Indikatoren als STC zu ersetzen, um bessere Übereinstimmungen zu finden
Mehrere Algorithmen für die automatische Optimierung mehrerer Parameter
Erhöhung der Beurteilung von Grand Cycle Trends und Unterscheidung der verschiedenen Phasen des Grand Cycle
STC MA ATR Strategie integriert die Anwendung von drei Indikatoren zu fangen Trend-Wendepunkte, um eine stabile Trend-Tracking-Geschäft. Die Kombination von Indikatoren Filter Falschsignale, Stop-Loss-Stop-Risiken, mit einer starken Anpassung und Stabilität. Durch die Optimierung der Parameter und Algorithmen Einführung, kann die Leistung der Strategie weiter zu verbessern.
/*backtest
start: 2023-09-16 00:00:00
end: 2023-10-16 00:00:00
period: 4h
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/
// © Romedius
//@version=5
strategy("My Strategy", overlay=true, margin_long=100, margin_short=100)
// STC
EEEEEE=input(12,"Length",group="STC")
BBBB=input(26,"FastLength",group="STC")
BBBBB=input(50,"SlowLength",group="STC")
AAAA(BBB, BBBB, BBBBB) =>
fastMA = ta.ema(BBB, BBBB)
slowMA = ta.ema(BBB, BBBBB)
AAAA = fastMA - slowMA
AAAA
AAAAA(EEEEEE, BBBB, BBBBB) =>
//AAA=input(0.5)
var AAA = 0.5
var CCCCC = 0.0
var DDD = 0.0
var DDDDDD = 0.0
var EEEEE = 0.0
BBBBBB = AAAA(close,BBBB,BBBBB)
CCC = ta.lowest(BBBBBB, EEEEEE)
CCCC = ta.highest(BBBBBB, EEEEEE) - CCC
CCCCC := (CCCC > 0 ? ((BBBBBB - CCC) / CCCC) * 100 : nz(CCCCC[1]))
DDD := (na(DDD[1]) ? CCCCC : DDD[1] + (AAA * (CCCCC - DDD[1])))
DDDD = ta.lowest(DDD, EEEEEE)
DDDDD = ta.highest(DDD, EEEEEE) - DDDD
DDDDDD := (DDDDD > 0 ? ((DDD - DDDD) / DDDDD) * 100 : nz(DDDDDD[1]))
EEEEE := (na(EEEEE[1]) ? DDDDDD : EEEEE[1] + (AAA * (DDDDDD - EEEEE[1])))
EEEEE
mAAAAA = AAAAA(EEEEEE,BBBB,BBBBB)
stc = mAAAAA > mAAAAA[1] ? true : false
stc_sig = stc == true and stc[1] == false ? 1 : stc == false and stc[1] == true ? -1 : 0
stc_long = stc_sig == 1
stc_short = stc_sig == -1
// STC end
// ATR stops
nATRPeriod = input(5,group="ATR Stops")
nATRMultip = input(3.5,group="ATR Stops")
xATR = ta.atr(nATRPeriod)
nLoss = nATRMultip * xATR
xATRTrailingStop = 0.0
xATRTrailingStop := close > nz(xATRTrailingStop[1], 0) and close[1] > nz(xATRTrailingStop[1], 0) ? math.max(nz(xATRTrailingStop[1]), close - nLoss) : close < nz(xATRTrailingStop[1], 0) and close[1] < nz(xATRTrailingStop[1], 0) ? math.min(nz(xATRTrailingStop[1]), close + nLoss) : close > nz(xATRTrailingStop[1], 0) ? close - nLoss : close + nLoss
pos = 0
pos := close[1] < nz(xATRTrailingStop[1], 0) and close > nz(xATRTrailingStop[1], 0) ? 1 : close[1] > nz(xATRTrailingStop[1], 0) and close < nz(xATRTrailingStop[1], 0) ? -1 : nz(pos[1], 0)
atr_sig = pos == -1 ? false : true
// ATR stops end
// ma
ma_len = input(200, title="MA Length", group="Moving Average")
ma = ta.sma(close, 200)
ma_sig = close < ma ? false : true
// ma end
// strategy entries
tp_mult = input(2, title="Take Profit ATR Multiplier", group="Strategy")
sl_mult = input(1, title="Stop Loss ATR Multiplier", group="Strategy")
early_stop = input(true, title="Close position when ATR changes color")
atr_stop = if close < xATRTrailingStop
close - (close - xATRTrailingStop) * sl_mult
else
close + (xATRTrailingStop - close) * sl_mult
longCondition = atr_sig == true and stc_sig == 1 and ma_sig == true
shortCondition = atr_sig == false and stc_sig == -1 and ma_sig == false
if (longCondition)
strategy.entry("Long", strategy.long)
strategy.exit("Exit Long", "Long", limit=close + xATR * tp_mult, stop=atr_stop)
else if atr_sig == false and early_stop
strategy.close("Long")
if (shortCondition)
strategy.entry("Short", strategy.short)
strategy.exit("Exit Short", "Short", limit=close - xATR * tp_mult, stop=atr_stop)
else if atr_sig == true and early_stop
strategy.close("Short")
// plot stuff
atr_color = pos == -1 ? color.red: pos == 1 ? color.green : color.blue
plot(atr_stop, title="ATR Stop", color=atr_color)
ma_color = ma_sig ? color.green : color.red
plot(ma, title="Moving Average", color=ma_color)
stc_color = stc_long ? color.green : color.red
plotshape(stc_long, style=shape.triangleup, color=stc_color, title="STC Long Signal", size=size.tiny)
plotshape(stc_short, style=shape.triangledown, color=stc_color, title="STC Short Signal", size=size.tiny)
// plot stuff end