Strategie für den Handel mit Festnetzen

Schriftsteller:ChaoZhang, Datum: 2023-11-16 17:09:45
Tags:

img

Übersicht

Diese Strategie setzt den Startpreis und den Prozentsatz zwischen jeder Netzschicht fest und berechnet dann 10 feste Kauf- und Verkaufspreise, die auf dem Prozentsatz basieren, um die Netzhandelsstrategie Low-Buy-High-Sell umzusetzen.

Strategie Logik

Die Strategie legt zunächst den Startpreis und die Netzabstandsquote fest.Dann berechnet sie 10 Ebenen der Kauf- und Verkaufspreise auf der Grundlage des Startpreises und des Prozentsatzes.

Kaufpreisformel:

b1=Preis-(Preis*p1)

b2=Spreis-(Spreis*p2)

b3=Preis-(Preis*p3)

Hierbei handelt es sich bei p1~p10 um Prozentsätze, die Schicht für Schicht auf der Grundlage von Gitterprozentsatz berechnet werden.

Verkaufspreisformel:

s1=b1+(Preis*p1)

s2=b2+(Preis*p1)

s3=b3+(Preis*p1)

Die Kaufbedingung wird ausgelöst, wenn der Schlusskurs unter dem Kaufpreis liegt:

wenn (nahe

Strategie.Eintrag (b1), Strategie.lang, wenn= (b1),

Ähnlich wird die Verkaufsbedingung ausgelöst, wenn der Schlusskurs höher ist als der Verkaufskurs:

wenn (nahe>s1)

strategy.exit("b1", wenn=(nahe>s1))

Damit wird die Stromnetzhandelsstrategie "Low Buy-High Sell" umgesetzt.

Vorteile

Die Festnetzstrategie hat folgende Vorteile:

  1. Erreicht Auto Low-Buy-High-Sell, ohne den Markt zu zeitlich abzusichern, senkt die Handelsschwierigkeit.

  2. Die richtige Abstandsregelung kontrolliert das Risiko und verhindert Verfolgungen.

  3. Gewinnbringend, egal ob der Markt steigt oder fällt.

  4. Flexibilität bei der Anpassung der Netzparameter an unterschiedliche Marktbedingungen.

  5. Skalierung der Positionsgröße durch Hinzufügen von Rasterlagen.

  6. Die Einbeziehung von Stop-Loss verhindert bei extremen Marktereignissen große Verluste.

Risiken

Die Strategie birgt auch einige Risiken:

  1. Handelsgebühren verbrauchen den Gewinn während des Marktes.

  2. Unzulässige Startpreise und Netzeinstellungen führen zu Verlusten.

  3. Preisunterschiede können bei extremen Ereignissen zu Verlusten führen.

  4. Bei mechanischem Handel besteht ein Auftragseingangsrisiko.

  5. Konzentrierte Ereignisse können Verluste verstärken.

Lösungen:

  1. Optimieren Sie die Netzparameter, um Gewinn > Gebühren zu gewährleisten.

  2. Backtest zur Ermittlung des optimalen Startpreises und der Grid-Distanz.

  3. Hinzufügen von Stop-Loss zur Risikokontrolle.

  4. Entspannen Sie den Bestellpreis, um Einfügung zu vermeiden.

  5. Setzen Sie die Risikokontrolle auf maximale Verluste.

Verbesserungen

Die Strategie kann wie folgt verbessert werden:

  1. Dynamische Anpassung der Netzentfernung basierend auf der Volatilität.

  2. Berechnen Sie den Preisbereich bis zum dynamisch eingestellten Startpreis.

  3. Fügen Sie ML-Modell hinzu, um den Preis vorherzusagen und das Raster anzupassen.

  4. Optimieren Sie den Stop-Loss anhand historischer Stop-Loss-Punkte.

  5. Einbeziehung der Positionsgröße auf der Grundlage des Gewinns.

  6. Optimierung des Positionsmanagements zur Maximierung der Kapitalverwertung.

  7. Verbesserung der Ausführung unter Verwendung von TWAP zur Verringerung der Auswirkungenkosten.

Schlussfolgerung

Die Strategie implementiert den Fixed-Grid-Handel, indem Kauf- und Verkaufspreise basierend auf Startpreis und Gitterprozentsatz festgelegt werden, um automatisch Low-Buy-High-Sell zu erzielen. Es ist wichtig, Risiken durch Optimierung von Parametern, dynamischen Anpassungen und Stop-Loss für Gewinnverriegelung und Verlustkontrolle zu managen. Die Einbeziehung fortschrittlicher ML- und Geldmanagementtechniken kann die Strategieprofitabilität und Gewinnrate weiter verbessern.


/*backtest
start: 2022-11-09 00:00:00
end: 2023-11-15 00:00:00
period: 1d
basePeriod: 1h
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/
// © Lionkind

//@version=5
strategy("Grid HW", overlay = true, margin_long = 1, margin_short = 1)

// Fix 35k price as starting point and 1% as a distance

sprice=input(40500,"Starting price")
gridpercent=input(1,"Percent")

// calculate the % of the 10 layers 

p1=((gridpercent*1)/100)
p2=((gridpercent*2)/100)
p3=((gridpercent*3)/100)
p4=((gridpercent*4)/100)
p5=((gridpercent*5)/100)
p6=((gridpercent*6)/100)
p7=((gridpercent*7)/100)
p8=((gridpercent*8)/100)
p9=((gridpercent*9)/100)
p10=((gridpercent*10)/100)

//set buy prices 

b1=sprice-(sprice*p1)
b2=sprice-(sprice*p2)
b3=sprice-(sprice*p3)
b4=sprice-(sprice*p4)
b5=sprice-(sprice*p5)
b6=sprice-(sprice*p6)
b7=sprice-(sprice*p7)
b8=sprice-(sprice*p8)
b9=sprice-(sprice*p9)
b10=sprice-(sprice*p10)

//set sell prices

s1=b1+(sprice*p1)
s2=b2+(sprice*p1)
s3=b3+(sprice*p1)
s4=b4+(sprice*p1)
s5=b5+(sprice*p1)
s6=b6+(sprice*p1)
s7=b7+(sprice*p1)
s8=b8+(sprice*p1)
s9=b9+(sprice*p1)
s10=b10+(sprice*p1)

//Long conditions

lc1=close<b1
lc2=close<b2
lc3=close<b3
lc4=close<b4
lc5=close<b5
lc6=close<b6
lc7=close<b7
lc8=close<b8
lc9=close<b9
lc10=close<b10

//exit conditions
ec1=close>s1
ec2=close>s2
ec3=close>s3
ec4=close>s4
ec5=close>s5
ec6=close>s6
ec7=close>s7
ec8=close>s8
ec9=close>s9
ec10=close>s10

//long orders
if (lc1)
    strategy.entry("b1", strategy.long, when=(lc1))
    
if (lc2)
    strategy.entry("b2", strategy.long, when=(lc2))
    
if (lc3)
    strategy.entry("b3", strategy.long, when=(lc3))    
if (lc4)
    strategy.entry("b4", strategy.long, when=(lc4))    
if (lc5)
    strategy.entry("b5", strategy.long, when=(lc5))
if (lc6)
    strategy.entry("b6", strategy.long, when=(lc6))
if (lc7)
    strategy.entry("b7", strategy.long, when=(lc7))    
if (lc8)
    strategy.entry("b8", strategy.long, when=(lc8))    
if (lc9)
    strategy.entry("b9", strategy.long, when=(lc9))    
if (lc10)
    strategy.entry("b10", strategy.long, when=(lc10))
    
//exit orders   
if (ec1)
    strategy.exit("b1", when=(ec1), limit=1)
if (ec2)
    strategy.exit("b2", when=(ec2), limit=1)
if (ec3)
    strategy.exit("b3", when=(ec3), limit=1)
if (ec4)
    strategy.exit("b4", when=(ec4), limit=1)
if (ec5)
    strategy.exit("b5", when=(ec5), limit=1)
if (ec6)
    strategy.exit("b6", when=(ec6), limit=1)
if (ec7)
    strategy.exit("b7", when=(ec7), limit=1)
if (ec8)
    strategy.exit("b8", when=(ec8), limit=1)
if (ec9)
    strategy.exit("b9", when=(ec9), limit=1)
if (ec10)
    strategy.exit("b10", when=(ec10), limit=1)
    

plot(b1,color=color.green)
plot(s1, color=color.red)
plot(b2, color=color.purple)

Mehr