Momentum-Following-Handelsstrategie


Erstellungsdatum: 2023-12-20 16:06:26 zuletzt geändert: 2023-12-20 16:06:26
Kopie: 0 Klicks: 651
1
konzentrieren Sie sich auf
1621
Anhänger

Momentum-Following-Handelsstrategie

Strategieübersicht

Die Dynamik-Tracking-Handelsstrategie ist eine automatisierte Handelsstrategie, die die Trends der Marktdynamik als Hauptlinie verfolgt und mehrere technische Indikatoren als unterstützende Beurteilung kombiniert. Die Strategie analysiert die K-Linie-Informationen, um die Richtung und Stärke der aktuellen Marktmacht zu beurteilen, und sendet dann ein Handelssignal in Kombination mit technischen Indikatoren wie dem Quantitätsindikator und dem Moving Average aus, um eine Trendverfolgung zu erreichen.

Insgesamt ist die Strategie für den Handel mit mittleren und langen Linien geeignet, um Markttrends effektiv zu erfassen, die Handelsfrequenz zu verringern und höhere Einmalgewinne zu erzielen. Außerdem kann die Strategie auch für den Kurzlinienhandel genutzt werden, wenn die Parameter optimiert sind.

Strategieprinzip

Überlegenheit

Der Kern der Strategie besteht darin, die Richtung der Marktmeister zu bestimmen. Die Strategie überwacht die Volatilität des Marktes in Echtzeit durch die Berechnung der ATR-Indikatoren. Wenn die Volatilität zunimmt, werden die Meisterschaften angesammelt oder verteilt, und die Strategie wird vorübergehend aus dem Markt aussteigen, um die Zeit zu vermeiden, in der die Meisterschaft operiert.

Wenn die Schwankung nachlässt, wird die Strategie wieder eingesetzt, um die Richtung der Mainstream-Strategie zu beurteilen. Die Entscheidung erfolgt durch die Berechnung der Unterstützungsposition des Marktdrucks, um zu sehen, ob es Anzeichen für einen Durchbruch gibt. Wenn es einen eindeutigen Durchbruch gibt, wird bestätigt, dass die Mainstream-Strategie die Richtung gewählt hat.

Hilfsentscheidung

Nach der Feststellung der Hauptströmungsrichtung wird die Strategie auch mehrere unterstützende technische Indikatoren für die erneute Verifizierung einführen, um Fehleinschätzungen zu vermeiden. Insbesondere werden Indikatoren wie MACD, KDJ und andere berechnet, um zu beurteilen, ob sie mit der Hauptströmungsrichtung übereinstimmen.

Die Strategie eröffnet nur dann eine Position, wenn sowohl die Haupt- als auch die Nebenindikatoren ein Gleichgewichtssignal senden. Dies kontrolliert effektiv die Handelsfrequenz und wird nur bei hoher Wahrscheinlichkeit eingegeben.

Verlustbewältigung

Nach dem Aufbau der Position wird die Dynamik-Tracking-Strategie die Preisentwicklung in Echtzeit verfolgen und die Ausweitung des ATR-Wertes als Stop-Signal verwenden. Dies bedeutet, dass der Markt wieder in die Phase der Mainstream-Betriebsphase eintritt und sofort in Cash aussteigen muss, um nicht eingeschränkt zu werden.

Wenn der Preis über eine bestimmte Grenze hinausgeht, wird die Rückführung auch gestoppt. Dies ist eine normale technische Rückführung, die mit der Risikokontrolle sofort gestoppt werden muss.

Strategische Vorteile

Systematisch

Der größte Vorteil der Dynamik-Tracking-Strategie liegt in der hohen Systematisierung und Regulierung. Die Transaktionslogik ist klar, es gibt klare Prinzipien und Regeln für jeden Ein- und Ausstieg, es gibt keine willkürlichen Transaktionen.

Dies macht die Strategie sehr reproduzierbar und ermöglicht den Benutzern die Konfiguration von langfristigen Anwendungen ohne menschliche Intervention.

Risikokontrolle im Einsatz

Die Strategie beinhaltet mehrstufige Risikokontrollmechanismen, wie z. B. Überprüfungen, Zusatzverifizierungen und die Festlegung von Stop-Lines, um unsystematische Risiken wirksam zu kontrollieren.

Die Strategie besteht darin, nur bei hoher Wahrscheinlichkeit Positionen zu eröffnen und eine wissenschaftliche Stop-Loss-Position einzurichten, um Verluste so weit wie möglich zu vermeiden. Dies garantiert eine stabile Zunahme des Kapitals.

Erträge sind eher nachhaltig

Im Gegensatz zu den Short-Line-Strategien ist die Haltedauer der Dynamic-Tracking-Strategien länger und die Gewinnspanne ist höher. Dies macht die Gesamterträge der Strategie stabiler und nachhaltiger.

Außerdem kann die Strategie die Volatilität von Trends, die besonders bei großen Trends zu beobachten sind, ausreichend erfassen.

Gefahrenwarnung

Parameter sind schwierig zu optimieren

Die Dynamik-Tracking-Strategie beinhaltet mehrere Parameter, wie ATR-Parameter, Durchbruch-Parameter, Stop-Loss-Parameter usw. Es gibt eine gewisse Korrelation zwischen diesen Parametern, die wiederholt getestet werden müssen, um die optimale Kombination von Parametern zu finden.

Wenn die Parameter nicht korrekt konfiguriert sind, kann dies zu einer zu hohen Handelsfrequenz oder zu geringen Risikokontrolle führen. Dies erfordert eine gewisse Erfahrung in der Strategieoptimierung des Benutzers.

Ein Durchbruch ist leicht zu erwischen.

Die Strategie entscheidet über die Dominanz und die Kennzeichen, die auf den Preisbruch angewiesen sind, um sie zu bestätigen. Bei einem Durchbruch kann es jedoch zu einem Falschbruch kommen, was zu einer höheren Wahrscheinlichkeit einer Verschuldung führt.

Wenn ein entscheidender Durchbruch fehlschlägt, kann dies zu größeren Verlusten führen. Das ist die innere Schwäche der Strategie.

Optimierung

Einführung von maschinellem Lernen

Durch die automatische Erkennung der Korrelation zwischen den Parametern durch Machine Learning-Algorithmen kann die optimale Kombination von Parametern gefunden werden. Dies ist viel effizienter als ein manuelles Testen.

Konkret kann der EnvironmentError-Algorithmus verwendet werden, um die Erträge der Strategie zu maximieren, die auf fortlaufenden Parametern basieren, die auf Reinforcement-Lernen basieren.

Filter hinzufügen

Auf der Grundlage der vorhandenen Indikatoren können weitere Hilfsfilter eingeführt werden, z. B. Handelsvolumen-Indikatoren, Kapitalfluss-Indikatoren usw. Die Überprüfung von Durchbruchsignalen wird dreimal oder viermal durchgeführt und ist zuverlässiger.

Zu viele Filter können jedoch zu verpassten Chancen führen, und es ist notwendig, die Filterintensität auszugleichen. Außerdem müssen die Filter selbst eine Korrelation vermeiden.

Strategische Zusammenführung

Durch die Kombination von Dynamic Tracking und anderen Strategien können die Vorzüge der verschiedenen Strategien genutzt werden, um die Positionierung zu erreichen und die Gesamtstabilität zu verbessern.

So kann beispielsweise die Integration einer kurzfristigen Umkehrstrategie, die nach einem Durchbruch einen Umkehrhandel eröffnet, mehr Gewinne sichern.

Zusammenfassen

Die Dynamic Tracking Trading Strategy ist insgesamt eine empfehlenswerte systematische Trend-Tracking-Strategie. Sie bietet eine klare Handelslogik, eine risikobeherrschende Position und eine stabile und effiziente Rendite für die Benutzer.

Aber auch die Strategie selbst hat einige inhärente Mängel, die die Fähigkeit des Benutzers erfordern, die Parameter zu optimieren und die Strategie zu integrieren, um die Strategie optimal zu nutzen. Insgesamt ist die Dynamic Tracking Strategie ein quantitatives Produkt, das für Strategieliebhaber mit einer gewissen Quantifizierungsbasis geeignet ist.

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

//Created by frasmac2k Strategy credit to Alex Morris

//@version=5
strategy("Mechanical", shorttitle="MECH", overlay=true)

// Get the current date and time
currentYear = year
currentMonth = month
currentDay = dayofmonth

// Create a timestamp for the present date and time
currentTimestamp = timestamp(currentYear, currentMonth, currentDay)

// Define time interval for backtesting
dStart = input(timestamp('2023-07-01'), title='Set Start date', tooltip='Select a start date to run the script from')

// Define direction of strategy
direction = input.string('Forward',title='Direction', tooltip='Forward will go LONG on a Green anchor candle. Inverse will go short on a Green anchor candle and vice versa for Red candle', options=['Forward', 'Inverse'])

// Define the anchor hour as user input with a range of 0 to 23
anchorHour = input.int(11, title="Anchor Hour", tooltip='Set the hour to trade', minval=0, maxval=23)

// Define the take profit and stop loss in pips
takeProfitPips = input.int(10, title='Define TP Pips', tooltip='How many pips do you want to set TP. Choose a sensible value related to the instrument', minval=5)
stopLossPips = input.int(10,'Define SL Pips', tooltip='How many pips do you want to set SL. Choose a sensible value related to the instrument', minval=5)

// Define Tick size
tick10p = input.int(100, title='tick size', tooltip='Choose how many ticks equal 10 pips. This can vary by broker so measure 10 pips on the chart and select how many ticks that equates to. Forex is typically 100. Some instruments such as indices can be 1000', options=[100,1000])

// Declare TP/SL variables
var float takeProfit = na
var float stopLoss = na

// Calculate take profit and stop loss levels in ticks
if tick10p == 100
    takeProfit := takeProfitPips * 10
    stopLoss := stopLossPips * 10
if tick10p == 1000
    takeProfit := takeProfitPips * 100
    stopLoss := stopLossPips * 100

// Declare offset time
var int offset = na

if currentTimestamp > timestamp('2023-10-29')
    offset := 4
else
    offset := 5

//adjust for exchange time
anchorHour := anchorHour - offset

// Define the anchor hour as user input with a range of 0 to 23
tradeHour = anchorHour

// Define logical check for strategy date range
isStratTime = true

// Calculate the time condition for placing the order at the user-defined hour (start of the next hour)
isTradeTime = true

// Logic condition for forwards or inverse
isForward = direction == 'Forward'
isInverse = direction == 'Inverse'

// Declare entry condition variables
var bool longCondition = na
var bool shortCondition = na

// Declare and initialize variables for anchorCandle open and close prices
var float anchorOpen = na
var float anchorClose = na
var float tradeOpen = na
var float tradeClose = na

// Set logic by direction

if isForward
    // Strategy logic
    if isTradeTime and isStratTime
        //Obtain candle open/close
        anchorOpen := open
        anchorClose := close
        // Define entry conditions
        longCondition := anchorClose > anchorOpen
        shortCondition := anchorClose < anchorOpen
        
        // Entry logic
        if longCondition
            strategy.entry("Long", strategy.long)
            strategy.exit("Exit Long", from_entry="Long", profit=takeProfit, loss=stopLoss, comment_profit='TP', comment_loss='SL')
        if shortCondition
            strategy.entry("Short", strategy.short)
            strategy.exit("Exit Short", from_entry="Short", profit=takeProfit, loss=stopLoss, comment_profit='TP', comment_loss='SL')

if isInverse
    // Strategy logic
    if isTradeTime and isStratTime
        //Obtain candle open/close
        anchorOpen := open
        anchorClose := close
        // Define entry conditions
        shortCondition := anchorClose > anchorOpen
        longCondition := anchorClose < anchorOpen
        
        // Entry logic
        if longCondition
            strategy.entry("Long", strategy.long)
            strategy.exit("Exit Long", from_entry="Long", profit=takeProfit, loss=stopLoss, comment_profit='TP', comment_loss='SL')
        if shortCondition
            strategy.entry("Short", strategy.short)
            strategy.exit("Exit Short", from_entry="Short", profit=takeProfit, loss=stopLoss, comment_profit='TP', comment_loss='SL')

// Define the time range for the background shade
startHour = anchorHour
startMinute = 0
endHour = anchorHour
endMinute = 0

// Check if the current time is within the specified range
isInTimeRange = (hour == startHour and minute >= startMinute) or (hour == endHour and minute <= endMinute) or (hour > startHour and hour < endHour)

// Define the background color for the shade
backgroundColor = color.new(color.red, 90)

// Apply the background shade
bgcolor(isInTimeRange ? backgroundColor : na)