Stop-Loss-Timing-Kaufstrategie basierend auf Zeit und ATR


Erstellungsdatum: 2024-02-28 17:36:50 zuletzt geändert: 2024-02-28 17:36:50
Kopie: 0 Klicks: 630
1
konzentrieren Sie sich auf
1617
Anhänger

Stop-Loss-Timing-Kaufstrategie basierend auf Zeit und ATR

Überblick

Die Kernidee der Strategie besteht darin, die Kaufzeit und den Stop-Loss-Punkt in Kombination mit der Zeit und dem ATR-Indikator festzulegen. Die Strategie sendet an einem bestimmten Zeitpunkt ein Kaufsignal aus, wobei der aktuelle Schlusskurs als Kaufpreis verwendet wird, der dann mit dem Kaufpreis und dem ATR-Wert als Stop-Loss-Punkt kombiniert wird. Auf diese Weise können einige unangemessene Kaufzeiten herausgefiltert werden, während ATR zur Risikokontrolle verwendet wird.

Strategieprinzip

Die Strategie besteht hauptsächlich aus folgenden Teilen:

  1. Die Eingabeparameter umfassen die Kaufzeit, TimeTrade, und die ATR-Parameter.

  2. Berechnung des ATR-Wertes: Berechnung des ATR-Wertes nach dem ParameteratrLength.

  3. Definition von Kaufbedingungen: Erzeugt ein Kaufsignal, wenn die Kombination von Stunden und Minuten dem TimeTrade entspricht.

  4. Ausgabe von Kaufbefehlen: Wenn die Kaufbedingungen erfüllt sind, wird der Kaufpreis buyprice eingetragen.

  5. Setzen Sie einen Stop-Loss-Punkt: Der Stop-Loss-Punkt wird mit dem ATR-Wert für den Kaufpreis erhöht. Der Stop-Loss-Exit wird durchgeführt, wenn der Preis den Stop-Loss-Punkt überschreitet.

  6. Zeichnung: Zeichnen Sie eine horizontale Stop-Loss-Linie.

Analyse der Stärken

Der größte Vorteil dieser Strategie besteht darin, dass die Zeit und der ATR-Indikator die Kaufzeit und den Stop-Loss doppelt bestätigen. Dies verhindert, dass der Markt blind gefolgt wird, und das Risiko wird effektiv kontrolliert. Zweitens ist der Stop-Loss, der mit dem ATR-Setup eingestellt ist, dynamisch und kann einen angemessenen Stop-Loss-Bereich entsprechend der Marktvolatilität festlegen.

Risikoanalyse

Die Risiken dieser Strategie sind vor allem folgende:

  1. Die Kaufzeit ist falsch eingestellt, was dazu führen kann, dass man die besten Kaufzeiten verpasst oder in einem unerwünschten Markt kauft.

  2. Die ATR-Parameter sind falsch eingestellt, und ein zu großer oder zu kleiner Stop-Loss kann die Strategie beeinträchtigen.

  3. Es ist unmöglich, die langen Trends effektiv zu verfolgen, da es eher für die Kurzlinien geeignet ist.

  4. Es wurden keine grundlegenden Analysefaktoren berücksichtigt.

Optimierungsrichtung

Die Strategie kann in folgenden Bereichen weiter optimiert werden:

  1. In Kombination mit einem Multifaktormodell wurde eine wissenschaftlichere Kaufzeit ermittelt.

  2. Optimierung der ATR-Parameter-Einstellungen in Kombination mit einem Schwankungsratenmodell.

  3. Ein zusätzlicher Trend-Tracking-Mechanismus, der sich auf eine längere Haltedauer anpasst.

  4. Das ist eine sehr wichtige Frage, die in die Fundamentalanalyse einfließt, um zu beurteilen, ob es sinnvoll ist, zu kaufen.

Zusammenfassen

Diese Strategie ist insgesamt eine einfache und intuitive Hochfrequenz-Intraday-Handelsstrategie. Die Kernidee besteht darin, die Zeit und die doppelte Bestätigung der ATR-Indikatoren zu nutzen, um die Kaufzeit und die Stop-Loss-Punkte zu sperren. Die Vorteile sind, dass das Risiko kontrolliert und relativ einfach zu realisieren ist.

Strategiequellcode
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Time-based Strategy with ATR Take Profit", overlay=true)

// Initialize take profit levels
var float takeProfitLevel = na
var float takeProfitLevelForSell = na
var float buyprice = na
var float sellprice = na



// Input for the time when the trade should be executed
tradeTime = input(0700, "Trade Execution Time (HHMM)", "Specify the time in HHMM format", group="Time Settings")

// Calculate ATR for the last 5 minutes
atrLength = input(14, "ATR Length", "Specify ATR length", group="ATR Settings")
atrValue = request.security(syminfo.tickerid, "5", ta.atr(atrLength))

// Define conditions for buy and sell
buyCondition = hour * 100 + minute == tradeTime // and strategy.position_size == 0
sellCondition = hour * 100 + minute == tradeTime // and strategy.position_size > 0
// Execute Buy and Sell orders


if (buyCondition)
    strategy.entry("Buy", strategy.long)
    buyprice := close
    takeProfitLevel := buyprice + atrValue
strategy.exit("Take Profit BUY", from_entry="Buy", limit =takeProfitLevel) 
    

  

// if (sellCondition)
//     strategy.entry("Sell", strategy.short)
//     sellprice := close
//     takeProfitLevelForSell := sellprice -atrValue
// strategy.exit("Take Profit Sell", from_entry="Sell", limit=takeProfitLevelForSell)


// Plot horizontal lines for take profit levels


plot(takeProfitLevel, color=color.green, title="Take Profit Level (Buy)")
plot(takeProfitLevelForSell, color=color.red, title="Take Profit Level (Sell)")