
Die Strategie ist eine auf den ATR-Indikatoren basierende Trend-Breaking-Strategie. Ihre Hauptidee besteht darin, einen Trend-Breaking-Operation durchzuführen, wenn der Preis eine bestimmte Vielzahl von ATR übersteigt. Die Strategie enthält gleichzeitig eine Trendbestätigung und die Funktion, den Handel mit einem begrenzten Datumsbereich zu nutzen.
Die Strategie verwendet die ATR-Anzeige, um die Preisschwankungen zu ermitteln. Die ATR ist die durchschnittliche reale Wellenlänge, die die durchschnittliche Preisschwankung in einem bestimmten Zeitrahmen misst. Die Strategie setzt die Length-Parameter für die Berechnung der ATR-Zyklen ein, die numATRs-Parameter für die ATR-Mehrzahl der Durchbrüche.
Wenn die Preise steigen, brechen sie die oberen numATRs multipliziert mit ATR durch. Wenn die Preise sinken, brechen sie die unteren numATRs multipliziert mit ATR durch.
Darüber hinaus enthält die Strategie BOOL-Variablen, die eine Long-Position benötigen und eine Short-Position benötigen. Sie können nur mehr oder nur weniger handeln. Die Strategie setzt auch einen Datumsbereich ein, der nur zwischen den angegebenen Daten gehandelt wird, um eine Zeitbereichsbeschränkung zu erreichen.
Die Strategie nutzt die Variable “size” um die Positionen zu beurteilen und berechnet die Anzahl der einzelnen Hände nach der Situation der Positionen. Die Anzahl der Hände wird nach dem Prozentsatz der Rechte und Zinsen des Kontos berechnet.
Die Gesamtkonzeption dieser Strategie ist klar und verständlich. Die Verwendung von ATR-Indikatoren zur automatischen Anpassung an die Marktvolatilität ist eine allgemeine Trendverfolgungsstrategie. Durch die Optimierung der Parameter und die Kombination anderer Strategien kann die Strategieleistung und Stabilität weiter verbessert werden.
/*backtest
start: 2023-09-30 00:00:00
end: 2023-10-30 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//Noro
//2018
//@version=3
strategy(title = "Noro's Volty Strategy v1.0", shorttitle = "Volty 1.0", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 100)
//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(false, defval = false, title = "Short")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot, %")
length = input(5)
numATRs = input(0.75)
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")
//Indicator
atrs = sma(tr, length) * numATRs
//Trading
size = strategy.position_size
lot = 0.0
lot := size == 0 ? strategy.equity / close * capital / 100 : lot[1]
if (not na(close[length])) and needlong
strategy.entry("L", strategy.long, lot, stop = close + atrs, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
if (not na(close[length])) and needlong == false
strategy.entry("L", strategy.long, 0, stop = close + atrs, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
if (not na(close[length])) and needshort
strategy.entry("S", strategy.short, lot, stop = close - atrs, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
if (not na(close[length])) and needshort == false
strategy.entry("S", strategy.short, 0, stop = close - atrs, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))