
Die Strategie nutzt die Silos-Indikatoren, um automatisch Stop-Loss- und Stop-Stop-Preise zu setzen, um einen mobilen Stop-Loss-Limit-Handel zu ermöglichen. Sie ermöglicht es, mehr Gewinn in trendigen Situationen zu erzielen und gleichzeitig Verluste in schwankenden Situationen zu reduzieren.
Die Strategie setzt die Preise hauptsächlich auf Basis von Schnittstellen. Schnittstellen können die potenziellen Unterstützungs- und Widerstandswerte des Marktes widerspiegeln. Die Strategie nutzt die verschiedenen Ebenen der Schnittstellen als Stop-Loss- und Stop-Stop-Preise.
Die Strategie verfolgt die Höhen und Tiefen und berechnet eine 10-Prozent-Preis-Bereich. Sie wählt dann einen Prozent-Preis als Einstiegsstrategie entsprechend der Konfiguration. Wenn der Preis den Prozent-Preis überschreitet, wird die Konfiguration als Leverage-Prozent ausgeführt.
Nach der Bestellung wird die Strategie weiterhin den aktuellen Kurs der Schlange verfolgen. Wenn eine niedrigere Schlange auftritt, wird die Strategie den ursprünglichen Auftrag widerrufen, eine neue Bestellung aufgeben und einen mobilen Stop-Loss erzielen.
Der größte Vorteil dieser Strategie besteht darin, dass die Stop-Loss- und Stop-Stop-Preise dynamisch angepasst werden können. Sie sind speziell für Trendbewegungen konzipiert und haben folgende Eigenschaften:
Es ist möglich, mehr Geld in Trends zu verdienen. Es ist mit einem Stopp-System ausgestattet, das auf dem durchschnittlichen Einstiegspreis basiert, um maximal an Trends teilzunehmen und höhere Erträge zu erzielen.
Verluste können bei einem Aufprall reduziert werden. Wenn der Preis wieder einen niedrigeren Kurs erreicht, werden die Verluste zeitnah gestoppt, um zu vermeiden, dass sie in einem Aufprall eingeklemmt werden.
Unterstützt die Verlagerung. Die Verlagerungsschaltung wird eingerichtet, um die Position zu erhöhen, wenn der Preis auf eine bestimmte Größe fällt, was die durchschnittlichen Kosten für die Verlagerung verringert.
Einfache Bedienung: Die gesamte Transaktion erfolgt automatisch, ohne manuelle Handhabung.
Die Strategie birgt auch einige Risiken, die sich auf folgende Punkte konzentrieren:
Die Preise können mehrmals nach oben oder unten gedreht werden, um die Stop-Loss-Stop-Stufe auszulösen, was die Handelsfrequenz und die Aufwandsgebühren erhöht.
Keine Stop-Loss-Einstellung. In der Suche nach mehr Gewinn ist keine Stop-Loss-Einstellung für die Strategie vorhanden. Wenn es zu einer wesentlichen Umkehrung kommt, können große Verluste entstehen.
Es gibt keine Beschränkung auf Anzahl und Höhe der Einlagen. Mehrfache Einlagen können zu weiteren Verlusten führen.
Entsprechende Lösungen:
Die Strategie bietet auch viel Optimierungsmöglichkeiten, insbesondere in folgenden Bereichen:
Die Einreise kann mit einer Kombination von anderen Indikatoren bestätigt werden. Die Bestätigung von Indikatoren wie EMA, MACD und anderen kann in die Einreisebedingungen aufgenommen werden, um zu verhindern, dass sie in Erschütterungssituationen eingeschlossen werden.
Ein Stop-Loss-Mechanismus. Die Einrichtung eines festen Stop-Losses oder der Verfolgung von Stop-Losses verhindert in extremen Situationen große Verluste.
Optimierung der Lagerhaltung Logik. Die Preisspanne und Häufigkeit der Lagerhaltung kann je nach Marktsituation optimiert werden. Übermäßige Lagerhaltung wird verhindert.
In Kombination mit maschinellen Lernalgorithmen. Die Verwendung von Algorithmen wie LSTM zur Vorhersage von möglichen Kursbewegungen und Unterstützungsresistenzen. Unterstützung bei der Bestimmung einer besseren Einstiegs- und Ausstiegslogik.
Die Strategie als Ganzes eignet sich für die Beobachtung von Trends. Sie kann durch die dynamische Anpassung des Stop-Loss-Preises zusätzliche Gewinne erzielen. Es besteht jedoch ein gewisses Risiko, das in Kombination mit anderen Mechanismen optimiert und verbessert werden muss, um sich an komplexe Marktumgebungen anzupassen.
/*backtest
start: 2024-01-06 00:00:00
end: 2024-02-05 00:00:00
period: 1h
basePeriod: 15m
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/
// © CryptoRox
//@version=4
//Paste the line below in your alerts to run the built-in commands.
//{{strategy.order.alert_message}}
strategy(title="Fibs limit only", shorttitle="Strategy", overlay=true, precision=8, pyramiding=1000, commission_type=strategy.commission.percent, commission_value=0.04)
//Settings
testing = input(false, "Live")
//Use epochconverter or something similar to get the current timestamp.
starttime = input(1600976975, "Start Timestamp") * 1000
//Wait XX seconds from that timestamp before the strategy starts looking for an entry.
seconds = input(60, "Start Delay") * 1000
testPeriod = true
leverage = input(1, "Leverage")
tp = input(1.0, "Take Profit %") / leverage
dca = input(-1.0, "DCA when < %") / leverage *-1
fibEntry = input("1", "Entry Level", options=["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"])
//Strategy Calls
equity = strategy.equity
avg = strategy.position_avg_price
symbol = syminfo.tickerid
openTrades = strategy.opentrades
closedTrades = strategy.closedtrades
size = strategy.position_size
//Fibs
lentt = input(60, "Pivot Length")
h = highest(lentt)
h1 = dev(h, lentt) ? na : h
hpivot = fixnan(h1)
l = lowest(lentt)
l1 = dev(l, lentt) ? na : l
lpivot = fixnan(l1)
z = 400
p_offset= 2
transp = 60
a=(lowest(z)+highest(z))/2
b=lowest(z)
c=highest(z)
fib0 = (((hpivot - lpivot)) + lpivot)
fib1 = (((hpivot - lpivot)*.21) + lpivot)
fib2 = (((hpivot - lpivot)*.3) + lpivot)
fib3 = (((hpivot - lpivot)*.5) + lpivot)
fib4 = (((hpivot - lpivot)*.62) + lpivot)
fib5 = (((hpivot - lpivot)*.7) + lpivot)
fib6 = (((hpivot - lpivot)* 1.00) + lpivot)
fib7 = (((hpivot - lpivot)* 1.27) + lpivot)
fib8 = (((hpivot - lpivot)* 2) + lpivot)
fib9 = (((hpivot - lpivot)* -.27) + lpivot)
fib10 = (((hpivot - lpivot)* -1) + lpivot)
notna = nz(fib10[60])
entry = 0.0
if fibEntry == "1"
entry := fib10
if fibEntry == "2"
entry := fib9
if fibEntry == "3"
entry := fib0
if fibEntry == "4"
entry := fib1
if fibEntry == "5"
entry := fib2
if fibEntry == "6"
entry := fib3
if fibEntry == "7"
entry := fib4
if fibEntry == "8"
entry := fib5
if fibEntry == "9"
entry := fib6
if fibEntry == "10"
entry := fib7
profit = avg+avg*(tp/100)
pause = 0
pause := nz(pause[1])
paused = time < pause
fill = 0.0
fill := nz(fill[1])
count = 0.0
count := nz(fill[1])
filled = count > 0 ? entry > fill-fill/100*dca : 0
signal = testPeriod and notna and not paused and not filled ? 1 : 0
neworder = crossover(signal, signal[1])
moveorder = entry != entry[1] and signal and not neworder ? true : false
cancelorder = crossunder(signal, signal[1]) and not paused
filledorder = crossunder(low[1], entry[1]) and signal[1]
last_profit = 0.0
last_profit := nz(last_profit[1])
if neworder and signal
strategy.order("New", 1, 0.0001, alert_message='New Order|e=binancefuturestestnet s=btcusdt b=long q=0.0011 fp=' + tostring(entry))
if moveorder
strategy.order("Move", 1, 0.0001, alert_message='Move Order|e=binancefuturestestnet s=btcusdt b=long c=order|e=binancefuturestestnet s=btcusdt b=long q=0.0011 fp=' + tostring(entry))
if filledorder and size < 1
fill := entry
count := count+1
pause := time + 60000
p = close+close*(tp/100)
strategy.entry("Filled", 1, 1, alert_message='Long Filled|e=binancefuturestestnet s=btcusdt b=short c=order|delay=1|e=binancefuturestestnet s=btcusdt b=long c=position q=100% ro=1 fp=' + tostring(p))
if filledorder and size >= 1
fill := entry
count := count+1
pause := time + 60000
strategy.entry("Filled", 1, 1, alert_message='Long Filled|e=binancefuturestestnet s=btcusdt b=short c=order|delay=1|e=binancefuturestestnet s=btcusdt b=long c=position q=100% ro=1 fp=' + tostring(profit))
if cancelorder and not filledorder
pause := time + 60000
strategy.order("Cancel", 1, 0.0001, alert_message='Cancel Order|e=binancefuturestestnet s=btcusdt b=long c=order')
if filledorder
last_profit := profit
closeit = crossover(high, profit) and size >= 1
if closeit
strategy.entry("Close ALL", 0, 0, alert_message='Profit')
count := 0
fill := 0.0
last_profit := 0.0
//Plots
bottom = signal ? color.green : filled ? color.red : color.white
plot(entry, "Entry", bottom)