Die Strategie ist eine Strategie, die auf der Grundlage von mehreren Linien-Begrenzungs-Beschränkungen handelt. Sie setzt verschiedene Mengen an Auf- und Abzugspreisen, je nachdem, ob der Preis die unterschiedlichen Linien-Begrenzungen überschreitet. Sie bildet eine mehrere Positionen in Form einer Pyramide.
Die Strategie nutzt die Mean Line-Indikatoren, um die Richtung der Tendenz zu bestimmen. Insbesondere die Anzahl der Aufträge, die auf eine Maximallimit-Beschränkung gesetzt wurden, basiert darauf, ob der Preis die Meanline der oberen 3 Linien überschritten hat. Die Anzahl der Aufträge, die auf eine Defizit-Beschränkung gesetzt wurden, basiert darauf, ob der Preis die Meanline der unteren 3 Linien überschritten hat.
Je stärker der Preistrend ist, desto mehr synchronisierte Limit-Orders werden gesetzt. Wenn der Preis ein Umkehrsignal erhält, wird eine Umkehrposition eröffnet. Die mittlere Achse wird verwendet, um den Durchbruch der Position zu beurteilen und ein Gleichstellungssignal auszusenden.
Die Strategie besteht aus einer Kombination aus Pyramidenöffnungen und Durchbruchsschließungen. Die Strategie zielt darauf ab, mehrere Einheiten zu eröffnen, um die Kosten zu senken. Die mittlere Achse ist die Stop-Loss-Linie, um das Risiko zu kontrollieren.
Diese Strategie hat folgende Vorteile:
Das ist eine sehr einfache und intuitive Methode.
Bei einer Pyramiden-Position kann man zu Beginn des Trends bessere Kosten erzielen.
Durchschnittliche Schadenshemmung, so dass die Schadenshemmung rechtzeitig erfolgt und das Risiko kontrolliert wird.
Der Preis ist der Preis, der für die Vermögenswerte gilt.
Anpassbare Parameter für verschiedene Sorten.
Die Struktur ist klar, leicht zu verstehen und zu erweitern.
Die Strategie birgt auch folgende Risiken:
Die Verzögerung bei der Ermittlung der Durchschnittsgrenze kann zu Fehleinschätzungen führen.
Ein Scheitern des Ticketpreises kann zu einem verpassten Einstieg führen.
Durchschnittsschaden kann zu groß sein, um den Durchbruch zu verhindern Urteilen.
Eine falsche Einstellung der Parameter kann zu einer übergroßen Position der Pyramide führen.
Unzureichende Rücklaufzeiten können zu einer Überpassung der Kurve führen.
Die Gebühren werden nicht berücksichtigt.
Die Risikolösungen sind wie folgt:
In Kombination mit anderen Indikatoren werden die Parameter bestätigt und optimiert.
Setzen Sie eine Gültigkeitsdauer und ändern Sie die Preise für die Angebotsbeschränkung.
Setzen Sie die Stopps auf der Mittellachse oder fügen Sie die Logik der Durchbruchentscheidung hinzu.
Optimierung der Parameter zur Bewertung der Gewinn- und Verlustquote.
Erweiterung des Zeitrahmens, Mehrmarkt-Rückmeldung.
Hinzu kommen die Gebühren und die Gleitpunktlogik.
Diese Strategie kann optimiert werden durch:
Optimierung der Parameter für weitere Sorten.
Hinzufügen von Filterbestätigungen für andere Kennzahlen wie MACD, KDJ usw.
Auf der mittleren Achse wird die Logik des Stopps hinzugefügt.
Dynamische Anpassung der Eröffnungsquote und der Stop-Loss-Position.
Optimierung der Angebotsschranken und Verbesserung der Kosten.
Mehr Kostenmanagement und Vermeidung von Überforderung.
Test der Parameter-Effekte verschiedener Sorten und Erstellung von Parameter-Pools.
Die Strategie eröffnet Positionen, um optimale Kosten zu erzielen, indem sie eine Pyramide von Limit-Beschlüssen aufstellt. Die mittelschweren Stop-Loss-Linien werden verwendet, um das Risiko zu kontrollieren. Die Strategie ist einfach und klar aufgebaut, leicht zu verstehen und zu erweitern.
/*backtest
start: 2022-09-15 00:00:00
end: 2023-09-21 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//Noro
//2019
//@version=4
strategy(title = "Robot WhiteBox MultiMA", shorttitle = "Robot WhiteBox MultiMA", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 3)
//Settings
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot")
len = input(3, minval = 1, title = "MA Length")
s = input(defval = "7. OHLC4", options = ["1. Open", "2. High", "3. Low", "4. Close", "5. HL2", "6. HLC3", "7. OHLC4", "8. OC2", "9. PCMA"], title = "Data")
short3 = input(true, title = "short 3")
short2 = input(true, title = "short 2")
short1 = input(true, title = "short 1")
long1 = input(true, title = "long 1")
long2 = input(true, title = "long 2")
long3 = input(true, title = "long 3")
shortlevel3 = input(15.0, title = "Short line 3")
shortlevel2 = input(10.0, title = "Short line 2")
shortlevel1 = input(5.0, title = "Short line 1")
longlevel1 = input(-5.0, title = "Long line 1")
longlevel2 = input(-10.0, title = "Long line 2")
longlevel3 = input(-15.0, title = "Long line 3")
needoffset = input(true, title = "Offset")
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")
//Variables
size = strategy.position_size
mult = 1 / syminfo.mintick
needtime = time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)
//MA
oc2 = (open + close) / 2
pcma = (highest(high, len) + lowest(low, len)) / 2
src = s == "1. Open" ? open : s == "2. High" ? high : s == "3. Low" ? low : s == "4. Close" ? close : s == "5. HL2" ? hl2 : s == "6. HLC3" ? hlc3 : s == "7. OHLC4" ? ohlc4 : s == "8. OC2" ? oc2: close
sma = sma(src, len)
ma = s == "9. PCMA" ? round(pcma * mult) / mult : round(sma * mult) / mult
//Levels
longline1 = long1 ? round(ma * ((100 + longlevel1) / 100) * mult) / mult : close
longline2 = long2 ? round(ma * ((100 + longlevel2) / 100) * mult) / mult : close
longline3 = long3 ? round(ma * ((100 + longlevel3) / 100) * mult) / mult : close
shortline1 = short1 ? round(ma * ((100 + shortlevel1) / 100) * mult) / mult : close
shortline2 = short2 ? round(ma * ((100 + shortlevel2) / 100) * mult) / mult : close
shortline3 = short3 ? round(ma * ((100 + shortlevel3) / 100) * mult) / mult : close
//Lines
colorlong1 = long1 ? color.lime : na
colorlong2 = long2 ? color.lime : na
colorlong3 = long3 ? color.lime : na
colorshort1 = short1 ? color.red : na
colorshort2 = short2 ? color.red : na
colorshort3 = short3 ? color.red : na
offset = needoffset ? 1 : 0
plot(shortline3, offset = offset, color = colorshort3, title = "Short line 3")
plot(shortline2, offset = offset, color = colorshort2, title = "Short line 2")
plot(shortline1, offset = offset, color = colorshort1, title = "Short line 1")
plot(ma, offset = offset, color = color.blue, title = "MA line")
plot(longline1, offset = offset, color = colorlong1, title = "Long line 1")
plot(longline2, offset = offset, color = colorlong2, title = "Long line 2")
plot(longline3, offset = offset, color = colorlong3, title = "Long line 3")
//Trading
lot = 0.0
lot := size == 0 ? strategy.equity / close * capital / 100 : lot[1]
lots = 0.0
if ma > 0
lots := round(size / lot)
strategy.entry("L1", strategy.long, lot, limit = longline1, when = (lots == 0 and long1 and needtime))
lots := round(size / lot)
strategy.entry("L2", strategy.long, lot, limit = longline2, when = (lots <= 1 and long2 and needtime))
lots := round(size / lot)
strategy.entry("L3", strategy.long, lot, limit = longline3, when = (lots <= 2 and long3 and needtime))
lots := round(size / lot)
strategy.entry("S1", strategy.short, lot, limit = shortline1, when = (lots == 0 and short1 and needtime))
lots := round(size / lot)
strategy.entry("S2", strategy.short, lot, limit = shortline2, when = (lots >= -1 and short2 and needtime))
lots := round(size / lot)
strategy.entry("S3", strategy.short, lot, limit = shortline3, when = (lots >= -2 and short3 and needtime))
if size > 0
strategy.entry("TPL", strategy.short, 0, limit = ma)
if size < 0
strategy.entry("TPS", strategy.long, 0, limit = ma)
if time > timestamp(toyear, tomonth, today, 23, 59)
strategy.close_all()