Quantitative Handelsstrategie basierend auf K-Linien-Schlusskurs-Long-Short-Vergleich und EMA-Filterung


Erstellungsdatum: 2023-12-27 14:38:28 zuletzt geändert: 2023-12-27 14:38:28
Kopie: 1 Klicks: 755
1
konzentrieren Sie sich auf
1623
Anhänger

Quantitative Handelsstrategie basierend auf K-Linien-Schlusskurs-Long-Short-Vergleich und EMA-Filterung

1. Überblick über die Strategie

Die Strategie nennt sich Quantitative Trading Strategy, die auf einem K-Line-Closing-Price-Off-Hold-Vergleich mit einem EMA-Filter basiert. Die Strategie bewertet die Anzahl der K-Line-Off-Hold- und K-Line-Off-Hold-Hold-Hold-Hold-Hold-Hold-Hold-Hold-Hold-Hold-Hold-Hold-Hold-Hold-Hold-Hold-Hold-Hold-Hold-Hold-Hold-Hold-Hold-Hold-Hold-Hold-Hold-Hold-Hold-Hold-Hold-Hold-Hold-Hold-Hold-Hold-Hold-Hold-Hold-Hold-Hold-Hold-Hold-Hold-Hold-Hold-Hold-Hold-Hold-Hold-Hold-Hold-Hold-Hold-Hold-Hold-Hold-Hold-Hold-Hold-

2. Strategieprinzipien

Die Kernlogik der Strategie besteht darin, die Anzahl der K-Linien zu ermitteln, die in den letzten Lookback-Zyklen aufgestiegen sind. Aufgestiegene K-Linien werden als Mehrköpfe beurteilt, wenn die Anzahl der aufgestiegenen K-Linien höher ist, und die Anzahl der absteigenden K-Linien wird als Hohlmarkt beurteilt.

Die Logik des Urteils lautet:

Mehrköpfige Signal-Triggerbedingungen: inSession ist “true” (im Handelsprozess) und upCloseCount > downCloseCount (mehr K-Linien im Auf- und Abkauf) und close > ema (der Abkaufpreis ist höher als der EMA) und currentSignal ist nicht “long” (aktuell keine Position)

Triggerbedingungen: inSession ist true und downCloseCount > upCloseCount ((niedrigere Schließung mit mehr K-Linien) und close < ema ((Schließung unterhalb der EMA) und currentSignal ist nicht “short” ((derzeit keine Positionen))

Drei: Analyse der strategischen Stärken

  1. Durch statistische Vergleiche von K-Linien-Abschlusspreisen über einen bestimmten historischen Zeitraum können Preistrends und Marktpsychologien beurteilt werden, die einen bestimmten Trendfolgen-Effekt haben.
  2. Filterung der Preisentwicklung in Kombination mit EMA-Indikatoren, um Fehlhandlungen in turbulenten Zeiten zu vermeiden
  3. Einrichtung von spezifischen Handelszeiten, um den Handel in lauten Umgebungen außerhalb der Haupthandelszeiten zu vermeiden
  4. Die Balance zwischen Trend und Frequenz

4. Strategische Risikoanalyse

  1. In einer horizontalen Bilanzierung ist ein überflüssiger Vergleich des Schlusskurses leicht irreführbar und führt zu unnötigen Verlusten.
  2. Die falsche Einstellung der EMA-Parameter kann auch zu schlechten Filtereffekten führen
  3. Unzureichend eingestellte Handelszeiten führen zu verpassten oder fehlerhaften Handelsplätzen
  4. Die Situation in Gap, die durch die Katastrophe verursacht wurde, konnte nicht effektiv verfolgt werden.

Gegenmaßnahmen:

  1. Optimierung der EMA-Parameter auf der Suche nach dem optimalen Gleichgewicht
  2. Optimierung der Transaktionszeiten
  3. Einzelverluste in Kombination mit Stop-Loss-Strategie

Fünftens: Strategische Optimierung

  1. Optimierung der Handelszeiten, um die besten Handelszeiten zu finden
  2. Parameteroptimierung für EMA-Zyklen und Gleitlängen
  3. Erhöhung der ATR-basierten Stop-Loss-Mechanismen
  4. Ein zusätzliches Modul zur Erkennung von Notfällen, um die Gefahr von Gaps zu vermeiden
  5. Erwägen Sie Kombinationen mit anderen Kennzahlen, um bessere Filterbedingungen zu finden
  6. Verschiedene Sorten werden unterschiedlich getestet und die Parameter entsprechend angepasst.

VI. Fazit

Diese Strategie identifiziert Trendsignale in bestimmten Handelszeiten durch die Erfassung der Anzahl von mehrköpfigen und leeren K-Linien, die den K-Line-Abschlusspreis in einem bestimmten historischen Zeitraum bilden, in Verbindung mit der Filterwirkung der EMA-Indikatoren. Es besteht jedoch ein gewisses Risiko für Fehltrades, das durch Parameteroptimierung, Stop-Loss-Strategie, Filtersignale usw. verbessert werden muss.

Strategiequellcode
/*backtest
start: 2023-11-26 00:00:00
end: 2023-12-26 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Up vs Down Close Candles Strategy with EMA and Session Time Frames", shorttitle="UvD Strat EMA Session", overlay=true)

// User input to define the lookback period, EMA period, and session strings for time frames
int lookback = input(20, title="Lookback Period")
int emaPeriod = input(50, title="EMA Period")
string session1 = input("0900-1200", title="Time Frame 1 Session")
string session2 = input("1300-1600", title="Time Frame 2 Session")

// Calculate the EMA
float ema = ta.ema(close, emaPeriod)

// State variable to track the current signal
var string currentSignal = na

// Counting up-close and down-close candles within the lookback period
int upCloseCount = 0
int downCloseCount = 0

if barstate.isnew
    upCloseCount := 0
    downCloseCount := 0
    for i = 0 to lookback - 1
        if close[i] > close[i + 1]
            upCloseCount += 1
        else if close[i] < close[i + 1]
            downCloseCount += 1

// Define the long (buy) and short (sell) conditions with EMA filter and session time frame
bool inSession = time(timeframe.period, session1) or time(timeframe.period, session2)
bool longCondition = inSession and upCloseCount > downCloseCount and close > ema and currentSignal != "long"
bool shortCondition = inSession and downCloseCount > upCloseCount and close < ema and currentSignal != "short"

// Enter or exit the market based on conditions
if longCondition
    currentSignal := "long"
    strategy.entry("Buy", strategy.long)

if shortCondition
    currentSignal := "short"
    strategy.entry("Sell", strategy.short)

// Exit logic for long and short positions
if currentSignal == "long" and strategy.position_size <= 0
    strategy.close("Sell")

if currentSignal == "short" and strategy.position_size >= 0
    strategy.close("Buy")

plot(ema, color=color.blue, title="EMA")