Strategie zur Trendverfolgung mit gleitendem Durchschnitt und mehreren Differenzen


Erstellungsdatum: 2024-01-04 17:43:17 zuletzt geändert: 2024-01-04 17:43:17
Kopie: 0 Klicks: 630
1
konzentrieren Sie sich auf
1619
Anhänger

Strategie zur Trendverfolgung mit gleitendem Durchschnitt und mehreren Differenzen

Überblick

Die Strategie basiert auf einer mehrfachen Zeitrahmendifferenz der Mittellinie, verfolgt die mittleren langen Trends, verwendet die Differenz-Positionsfolge-Methode und erzielt ein Indexwachstum des Kapitals. Der größte Vorteil der Strategie besteht darin, die mittleren langen Trends zu erfassen und in batchweise zu folgen, um so überschüssige Gewinne zu erzielen.

Strategieprinzip

  1. Mehrfache Zeitrahmen auf Basis der 9-Tage-Durchschnittslinie, der 100-Tage-Durchschnittslinie und der 200-Tage-Durchschnittslinie.
  2. Ein Kaufsignal wird erzeugt, wenn die kurzzeitige Durchschnittslinie die langzeitige Durchschnittslinie von unten nach oben durchbricht.
  3. Bei der Eröffnung einer neuen Position wird die Anzahl der Positionen nachgeprüft, ob sie voll sind.
  4. Jede Position hat einen festen Stop-Loss-Punkt von 3% und eine Risikokontrolle.

Das ist die grundlegende Transaktionslogik der Strategie.

Strategische Vorteile

  1. Es ist wichtig, dass wir die langfristigen Trends effektiv erfassen können, um den Indexwachstum der Märkte zu maximieren.
  2. Durch die Verwendung von mehrfachen Zeitspannen für die Graddifferenzierung kann der Lärm der Kurzstreckenmarktgeräusche effektiv vermieden werden.
  3. Setzen Sie einen festen Stop-Loss-Punkt, um das Risiko für jede Position effektiv zu kontrollieren.
  4. Das Modell der Rangschwankungen-Folge, die Lager in Schüben zu bauen, um Trendchancen zu nutzen und überschüssige Gewinne zu erzielen.

Strategische Risiken und Lösungen

  1. Es besteht die Gefahr der Kündigung. Wenn die Situation sich verändert und es nicht möglich ist, den Verlust rechtzeitig zu stoppen, kann es zu erheblichen Verlusten kommen. Die Lösung besteht darin, den Durchschnittszyklus zu verkürzen und den Verlust zu beschleunigen.
  2. Positionsrisiken bestehen. Es besteht die Gefahr, dass zusätzliche Sicherheiten oder ein Ausbruch der Position eingelegt werden, wenn ein Unfall zu Verlusten führt, die über die erträgliche Grenze hinausgehen. Die Lösung besteht darin, die anfängliche Positionsquote angemessen zu reduzieren.
  3. Es besteht die Gefahr, dass die Verluste zu groß sind. Wenn die Marktlage stark sinkt und die Differenz sich nach oben dreht, kann der Verlust bis zu 700% betragen. Die Lösung besteht darin, die feste Stop-Loss-Rate zu erhöhen und die Stop-Loss-Geschwindigkeit zu beschleunigen.

Richtung der Strategieoptimierung

  1. Es ist möglich, eine lineare Kombination verschiedener Parameter zu testen, um nach besseren Parametern zu suchen.
  2. Die Anzahl der Positionen, die optimiert werden können. Versuchen Sie, verschiedene Positionen zu testen, um die optimale Lösung zu finden.
  3. Die Einstellungen der festen Stop-Loss-Stopps können getestet werden. Die Stop-Stopp-Range kann entsprechend vergrößert werden, um eine höhere Rendite zu erzielen.

Zusammenfassen

Die Strategie ist insgesamt sehr geeignet, um die langen Trends in der Marktlage zu erfassen. Durch die Verwendung von Stufenfolgeverfolgung kann ein überschüssiger Gewinn erzielt werden, der sehr hoch im Verhältnis zu den Risiken und den Erträgen ist. Gleichzeitig besteht ein bestimmtes Betriebsrisiko, das durch Anpassung der Parameter und andere Methoden kontrolliert werden muss.

Strategiequellcode
/*backtest
start: 2023-12-27 00:00:00
end: 2024-01-03 00:00:00
period: 1m
basePeriod: 1m
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/
    // © Coinrule
    
//@version=3
strategy(shorttitle='Pyramiding Entry On Early Trends',title='Pyramiding Entry On Early Trends (by Coinrule)', overlay=false, pyramiding= 7, initial_capital = 1000, default_qty_type = strategy.percent_of_equity, default_qty_value = 20, commission_type=strategy.commission.percent, commission_value=0.1)
    
    
//Backtest dates
fromMonth = input(defval = 1,  title = "From Month")     
fromDay   = input(defval = 10,    title = "From Day")       
fromYear  = input(defval = 2020, title = "From Year")       
thruMonth = input(defval = 1,    title = "Thru Month")     
thruDay   = input(defval = 1,    title = "Thru Day")     
thruYear  = input(defval = 2112, title = "Thru Year")       
    
showDate  = input(defval = true, title = "Show Date Range")
    
start     = timestamp(fromYear, fromMonth, fromDay, 00, 00)        // backtest start window
finish    = timestamp(thruYear, thruMonth, thruDay, 23, 59)        // backtest finish window
window()  => true       // create function "within window of time"
    
    
//MA inputs and calculations
inSignal=input(9, title='MAfast')
inlong1=input(100, title='MAslow')
inlong2=input(200, title='MAlong')
    
MAfast= sma(close, inSignal)
MAslow= sma(close, inlong1)
MAlong= sma(close, inlong2)
    
    
Bullish = crossover(close, MAfast) 
    
longsignal = (Bullish and MAfast > MAslow and MAslow < MAlong and window())
    
//set take profit
    
ProfitTarget_Percent = input(3)
Profit_Ticks = (close * (ProfitTarget_Percent / 100)) / syminfo.mintick
    
//set take profit
    
LossTarget_Percent = input(3)
Loss_Ticks = (close * (LossTarget_Percent / 100)) / syminfo.mintick
    
    
//Order Placing
    
strategy.entry("Entry 1", strategy.long, when = (strategy.opentrades == 0) and longsignal)
    
strategy.entry("Entry 2", strategy.long, when = (strategy.opentrades == 1) and longsignal)
        
strategy.entry("Entry 3", strategy.long, when = (strategy.opentrades == 2) and longsignal)
    
strategy.entry("Entry 4", strategy.long, when = (strategy.opentrades == 3) and longsignal)
    
strategy.entry("Entry 5", strategy.long, when = (strategy.opentrades == 4) and longsignal)
        
strategy.entry("Entry 6", strategy.long, when = (strategy.opentrades == 5) and longsignal)
        
strategy.entry("Entry 7", strategy.long, when = (strategy.opentrades == 6) and longsignal)
    
    
    
if (strategy.position_size > 0)
    strategy.exit(id="Exit 1", from_entry = "Entry 1", profit = Profit_Ticks, loss = Loss_Ticks)
    strategy.exit(id="Exit 2", from_entry = "Entry 2", profit = Profit_Ticks, loss = Loss_Ticks)
    strategy.exit(id="Exit 3", from_entry = "Entry 3", profit = Profit_Ticks, loss = Loss_Ticks)
    strategy.exit(id="Exit 4", from_entry = "Entry 4", profit = Profit_Ticks, loss = Loss_Ticks)
    strategy.exit(id="Exit 5", from_entry = "Entry 5", profit = Profit_Ticks, loss = Loss_Ticks)
    strategy.exit(id="Exit 6", from_entry = "Entry 6", profit = Profit_Ticks, loss = Loss_Ticks)
    strategy.exit(id="Exit 7", from_entry = "Entry 7", profit = Profit_Ticks, loss = Loss_Ticks)