Die Ressourcen sind geladen. Beförderung...

Multi-Level Batch Take Profit BTC Robot Handelsstrategie

Schriftsteller:ChaoZhang, Datum: 2023-10-18 11:12:39
Tags:

img

Übersicht

Dies ist eine Multi-Level Batch Take Profit BTC Roboter Trading Strategie. Es tritt in Long Positionen ein, indem es den niedrigsten Punkt findet und mehrere Take Profit-Punkte für Batch-Ausgänge setzt. Es setzt auch einen Stop-Loss-Punkt für die Risikokontrolle. Diese Strategie ist geeignet, wenn man auf BTC bullisch ist.

Strategie Logik

  1. Finden Sie Eingangssignale: Erstellen Sie Kaufsignale, wenn der CC-Indikator unter 0 fällt.

  2. Stop-Loss setzen: Stop-Loss-Prozentsatz durch Eingabe setzen, zum Preisniveau für den Stop-Loss konvertieren.

  3. Setzen Sie mehrere Gewinnspielpunkte: 4 Ausgangspunkte, setzen Sie Prozentsatz des Gewinnspiels für jeden Punkt durch die Eingabe, umwandeln Sie in Preisniveaus.

  4. Risikokontrolle: Festlegen der maximalen Positionsgröße, Festlegen des Exit-Prozentsatzes für jeden Exit-Punkt durch Eingabe für die Risikodispersion.

Analyse der Vorteile

Die Vorteile dieser Strategie sind:

  1. Zuverlässiges Eintrittssignal, indem man am niedrigsten Punkt kauft und Höchstwerte vermeidet.

  2. Mehrstufige Gewinnaufnahmen verriegeln teilweise Gewinne, während einige Gewinne laufen.

  3. Stop-Loss kontrolliert das Risiko und begrenzt die Verluste auf einen bestimmten Bereich.

  4. Die Ausgabe von Chargen zerstreut die Risiken und vermeidet vollständige Verluste auf einmal.

  5. Der Abzug kann bis zu einem gewissen Grad kontrolliert werden.

Risikoanalyse

Die Risiken dieser Strategie sind:

  1. Der CC-Indikator kann den Tiefpunkt nicht vollständig gewährleisten, kann Kaufmöglichkeiten verpassen.

  2. Eine unsachgemäße Einstellung des Stop-Loss kann zu unnötigen Stop-Loss führen.

  3. Unzulässige Ausläufe von Chargen können auch zu Gewinnverlusten führen.

  4. Profit machen ist schwieriger in unterschiedlichen Märkten.

  5. Es kann schwierig sein, Verluste bei starken Umkehrungen zu stoppen.

Optimierungsrichtlinien

Potenzielle Optimierungen:

  1. Optimieren Sie Eingangssignale mit mehr Indikatoren oder maschinellem Lernen für ein besseres Timing.

  2. Optimieren Sie die Stop-Loss-Strategie, um sie elastischer gegen Marktbewegungen zu machen.

  3. Optimierung der Ausgänge für eine bessere Anpassung an die unterschiedlichen Märkte und Trends.

  4. Fügen Sie Trailing Stops hinzu, um flexiblere Gewinnsätze zu erzielen.

  5. Verschiedene Assets für die besten Parametermengen testen.

Schlussfolgerung

Zusammenfassend ist dies eine BTC-Handelsstrategie, die auf dem Kauf an den niedrigsten Punkten mit Multi-Level Take Profits und Stop Loss basiert. Sie hat bestimmte Vorteile und auch Bereiche, die verbessert werden können. Weitere Optimierungen der Drawdown-Kontrolle und des Take Profits könnten die Strategie besser leisten. Insgesamt bietet sie einen tragfähigen Ansatz für den BTC-algorithmischen Handel.


/*backtest
start: 2023-09-17 00:00:00
end: 2023-10-17 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
args: [["v_input_1",2]]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © RafaelZioni


// © theCrypster 2020

//@version=4
// strategy(title = "BTC bot", overlay = true, pyramiding=1,initial_capital = 10000, default_qty_type= strategy.percent_of_equity, default_qty_value = 100, calc_on_order_fills=false, slippage=0,commission_type=strategy.commission.percent,commission_value=0.075)
strat_dir_input = input(title="Strategy Direction", defval="long", options=["long", "short", "all"])
strat_dir_value = strat_dir_input == "long" ? strategy.direction.long : strat_dir_input == "short" ? strategy.direction.short : strategy.direction.all
strategy.risk.allow_entry_in(strat_dir_value)
//INPUTS
higherTF = input("W", type=input.resolution)
pc = security(syminfo.tickerid, higherTF, close[1], lookahead=true)
ph = security(syminfo.tickerid, higherTF, high[1], lookahead=true)
pl = security(syminfo.tickerid, higherTF, low[1], lookahead=true)

PP = 0.0,R1 = 0.0, R2 = 0.0, R3 = 0.0,S1 = 0.0, S2 = 0.0, S3 = 0.0

PP := (ph + pl + pc) / 3
R1 := PP     + (PP   - pl)
S1 := PP     - (ph - PP)
R2 := PP     + (ph - pl)
S2 := PP     - (ph - pl)
factor=input(2)
R3 := ph  + factor * (PP   - pl) 
S3 := pl   - 2 * (ph - PP) 

// 
length=input(21)
//
p = close
vrsi = rsi(p, length)
pp=ema(vrsi,length)
d=(vrsi-pp)*5
cc=(vrsi+d+pp)/2
//
low1=crossover(cc,0)

sell=crossover(close[1],R3) 
//
l = low1
s=sell
if l 
    strategy.entry("buy", strategy.long)
if s 
    strategy.entry("sell", strategy.short)
per(pcnt) =>
    strategy.position_size != 0 ? round(pcnt / 100 * strategy.position_avg_price / syminfo.mintick) : float(na)
stoploss=input(title=" stop loss", defval=15, minval=0.01)
los = per(stoploss)
q1=input(title=" qty_percent1", defval=25, minval=1)
q2=input(title=" qty_percent2", defval=25, minval=1)
q3=input(title=" qty_percent3", defval=25, minval=1)
tp1=input(title=" Take profit1", defval=3, minval=0.01)
tp2=input(title=" Take profit2", defval=5, minval=0.01)
tp3=input(title=" Take profit3", defval=7, minval=0.01)
tp4=input(title=" Take profit4", defval=10, minval=0.01)
strategy.exit("x1", qty_percent = q1, profit = per(tp1), loss = los)
strategy.exit("x2", qty_percent = q2, profit = per(tp2), loss = los)
strategy.exit("x3", qty_percent = q3, profit = per(tp3), loss = los)
strategy.exit("x4", profit = per(tp4), loss = los)


Mehr