
Diese Strategie kombiniert Moving Averages und Random Indicators, um ein automatisiertes Aktienhandelssystem zu realisieren. Es verwendet zwei Moving Averages unterschiedlicher Länge sowie Random Indicators, um Trend- und Überkauf-Überverkaufssignale zu erfassen und Kauf- und Verkaufsaktionen basierend auf der Richtung des Trends und dem Indikatorsignal des Überkauf-Überverkaufsbereichs durchzuführen.
Es werden zwei bewegliche Durchschnitte verwendet: die Schnelllinie (die 5-Tage-Linie) und die langsame Linie (die 20-Tage-Linie). Wenn die Schnelllinie die langsame Linie durchläuft, ist dies ein Kaufsignal, und wenn sie die langsame Linie durchläuft, ist dies ein Verkaufssignal. Die Rolle des beweglichen Durchschnitts ist es, die Preisentwicklung und -richtung zu bestimmen.
Die Parameter für den Zufallsindikator sind so eingestellt: K-Linie-Periode 14, K-Linie-Gleichungs-Periode 3, D-Linie-Gleichungs-Periode 3. K-Linie unter 20 ist eine Überverkaufszone, über 80 ist eine Überkaufszone. Die Funktion des Zufallsindikators ist es, zu bestimmen, ob Sie sich in einer Überkauf-Überverkaufszone befinden.
Kaufbedingungen: Schnell- und Langzeit-Linien <20 (Überverkaufsregion) Verkaufsbedingungen: Schnell unter der Linie durch die langsame Linie und K-Linie> 80 (Überkaufszone)
Kaufen Sie mehr, wenn die Kaufbedingungen erfüllt sind; verkaufen Sie weniger, wenn die Verkaufsbedingungen erfüllt sind.
Ein Stop-Loss von 1% nach dem Kauf; ein Stop-Loss von 1% nach dem Verkauf.
Diese Strategie kombiniert Trends und Indikatoren, um die mittleren und langen Trendlinien der Preise effektiv zu erfassen, und verwendet gleichzeitig zufällige Indikatoren, um den Zeitpunkt des Kaufs und Verkaufs zu kontrollieren. Sie vermeidet willkürliche Kauf- und Verkaufsaktionen, wenn keine klare Richtung vorhanden ist. Die Strategie-Parameter sind flexibel und können für verschiedene Marktbedingungen optimiert werden.
Wenn Sie mit einer starken Situation konfrontiert werden, die durch die Überschreitung der Nachrichten ausgelöst wird, kann dies zu größeren Verlusten führen. Sie können eine Stop-Loss-Linie einrichten, um das Risiko zu kontrollieren.
In einem Markt mit einer anhaltenden horizontalen Korrektur können kleine Verluste in Folge entstehen. Die Moving Average-Parameter können entsprechend angepasst werden, um die Verluste zu verringern.
Es ist wichtig, dass man die Aktienmärkte in den Schlüsselmomenten vermeidet, da die Preise leicht umgedreht werden können, was zu Fehlgeschäften führt.
Verschiedene Parameterkombinationen können getestet werden, um die beste Parameterkombination zu finden.
In Kombination mit anderen Analyse-Tools, z. B. Umsatz, Schwankungen usw., können Filterbedingungen gesetzt werden, um die Strategie-Rentabilität zu erhöhen.
So können Aktienwahlmechanismen, Performance-Aktien oder gewichtete Indizes untersucht werden, um das Risiko für einzelne Aktien zu verringern.
Die Strategie funktioniert insgesamt gut, und nach der Einstellung der Stop-Loss-Beschränkung sind die Gesamtergebnisse gut. Die Wirksamkeit kann durch die Anpassung der Parameter und die Optimierung der Aktienpool-Selektion weiter verbessert werden. Insgesamt handelt es sich um eine quantitative Handelsstrategie, die stabil und leicht umzusetzen ist.
/*backtest
start: 2024-01-25 00:00:00
end: 2024-02-01 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("Moving Average and Stochastic Strategy 80% ", overlay=true)
// Moving Average Settings
maShortLength = input(5, title="Short MA Length")
maLongLength = input(20, title="Long MA Length")
// Stochastic Settings
stochLength = input(14, title="Stochastic Length")
smoothK = input(3, title="Stochastic %K")
smoothD = input(3, title="Stochastic %D")
stochOverbought = 80
stochOversold = 20
// Profit Target Settings
profitTarget = input(1, title="Profit Target (%)") // 1% profit target
// Calculate Moving Averages
maShort = sma(close, maShortLength)
maLong = sma(close, maLongLength)
// Calculate Stochastic
k = sma(stoch(close, high, low, stochLength), smoothK)
d = sma(k, smoothD)
// Entry Conditions
longConditionMA = crossover(maShort, maLong) and k < stochOversold
shortConditionMA = crossunder(maShort, maLong) and k > stochOverbought
// Opposite Conditions
oppositeLongConditionMA = crossunder(maShort, maLong) and k < stochOversold
oppositeShortConditionMA = crossover(maShort, maLong) and k > stochOverbought
// Strategy Logic
if (longConditionMA)
strategy.entry("Buy", strategy.long)
strategy.exit("Exit Buy", "Buy", profit=close * (50 + profitTarget / 100))
if (shortConditionMA)
strategy.entry("Sell", strategy.short)
strategy.exit("Exit Sell", "Sell", profit=close * (20 - profitTarget / 100))
// Opposite Strategy Logic
if (oppositeLongConditionMA)
strategy.entry("Sell", strategy.short)
strategy.exit("Exit Sell", "Sell", profit=close * (50 - profitTarget / 100))
if (oppositeShortConditionMA)
strategy.entry("Buy", strategy.long)
strategy.exit("Exit Buy", "Buy", profit=close * (20 + profitTarget / 100))
// Plot Moving Averages
plot(maShort, color=color.blue, title="Short MA")
plot(maLong, color=color.red, title="Long MA")
// Plot Stochastic
hline(stochOverbought, "Overbought", color=color.red)
hline(stochOversold, "Oversold", color=color.green)
plot(k, color=color.black, title="Stochastic %K")