Positionsmanagement-Strategie mit hohem Leverage zur Vermeidung von Margin Calls


Erstellungsdatum: 2023-12-26 16:21:58 zuletzt geändert: 2023-12-26 16:21:58
Kopie: 1 Klicks: 693
1
konzentrieren Sie sich auf
1621
Anhänger

Positionsmanagement-Strategie mit hohem Leverage zur Vermeidung von Margin Calls

Überblick

Die Strategie ermöglicht das Risikomanagement, um zusätzliche Sicherheiten zu vermeiden, indem sie hohe Leverage und zusätzliche Sicherheitenbedingungen festlegt und bei starken Marktschwankungen die Positionen zeitnah platziert.

Strategieprinzip

  1. Setzen Sie einen hohen Hebel, z. B. einen vierfachen Hebelanteil
  2. Setzen Sie eine zusätzliche Gewährleistungslinie, z. B. $25,000
  3. Strategie zum Stilllegen von Positionen, wenn der Zinssatz unter der zusätzlichen Sicherungslinie liegt
  4. Strategie, alle Positionen zu liquidieren, wenn ein weiterer Rückgang der Beteiligung ein zusätzliches Garantiegeldsignal auslöst

Durch die oben genannten Einstellungen kann der Verlust bei starken Marktschwankungen, die zu einem schnellen Rückgang der Ansprüche führen, rechtzeitig gestoppt werden, um das Risiko einer zusätzlichen Garantie zu verhindern.

Analyse der Stärken

  1. Ein flexibel anpassbares Leverage-Ratio, um das Risiko eines Einzelschadens zu kontrollieren
  2. Zusätzliche Sicherheiten verhindern, dass ein Konto überschwemmt wird
  3. Verlust bei hoher Hebelwirkung und Vermeidung von Risiken

Risikoanalyse

  1. Hohe Leverage erhöht Gewinne und erhöht Risiken
  2. Es ist notwendig, eine zusätzliche Garantie zu setzen, die mit der Stop-Loss-Linie übereinstimmt.
  3. Stop-Loss-Strategien müssen optimiert werden

Risiken können durch geeignete Anpassungen des Leverage-Ratios verringert werden, indem zusätzliche Gewährleistungslinien mit Stop-Lines abgestimmt werden und Stop-Loss-Strategien optimiert werden.

Optimierungsrichtung

  1. Der Trendindikator ist ein wichtiger Indikator, um Rückschlüsse zu vermeiden.
  2. Optimierung der Stop-Loss-Methode und Vermeidung von Stop-Loss-Stoppungen
  3. Einrichtung von No-Trading-Bereichen, um Lagerhaltung zu vermeiden
  4. Dynamische Anpassung der Parameter in Kombination mit Machine Learning-Algorithmen

Zusammenfassen

Die Strategie ermöglicht die Risikomanagement durch hohe Leverage und zusätzliche Sicherheiten, die die Konto-Belagerung verhindern. Hohe Leverage erhöht jedoch auch das Risiko, das durch Trendurteilen, Stop-Loss-Optimierung und Handelszeitkontrolle weiter reduziert werden muss. Es können auch komplexere Techniken wie Maschinelles Lernen verwendet werden, um die Parameter dynamisch zu optimieren und die optimale Balance zwischen Ertrag und Risiko zu finden.

Strategiequellcode
/*backtest
start: 2023-11-25 00:00:00
end: 2023-12-25 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/
//@version=4
//@author=Daveatt

// Breakout on 2H high/low break Strategy

SystemName = "Leverage Strategy"
TradeId = "🙏"

InitCapital             = 100000
InitPosition            = 1
UseMarginCall           = input(true, title="Use Margin Call?")
MarginValue             = input(25000, title="Margin Value", type=input.float)
// use 1 for no leverage
// use 0.1 for be underleveraged and bet 1/10th of a pip value
// use any value > 1 for full-degen mode
UseLeverage             = input(true, title="Use Leverage")
LeverageValue           = input(4, title="Leverage mult (1 for no leverage)", minval=0.1, type=input.float)
// Risk Management
UseRiskManagement       = input(true, title="Use Risk Management?")
// ticks = 1/10th of a pip value
StopLoss                = input(5, title="Stop Loss in ticks value", type=input.float)
TakeProfit              = input(500, title="Take Profit in ticks value", type=input.float)

InitCommission = 0.075
InitPyramidMax = 1
CalcOnorderFills = false
CalcOnTick = true
DefaultQtyType = strategy.cash
DefaultQtyValue = strategy.cash
Currency = currency.USD
Precision = 2
Overlay=false
MaxBarsBack=3000

strategy
 (
 title=SystemName, 
 shorttitle=SystemName, 
 overlay=Overlay 
 )

//////////////////////////// UTILITIES ///////////////////////////

f_print(_txt, _condition) =>

    var _lbl = label(na)
    label.delete(_lbl)

    if _condition
        // saving the candle where we got rekt :(
        _index = barssince(_condition)
        _lbl := label.new(bar_index - _index, highest(100), _txt, xloc.bar_index, yloc.price, size = size.normal, style=label.style_labeldown)

//////////////////////////// STRATEGY LOGIC ///////////////////////////

// Date filterigng
_Date       = input(true, title="[LABEL] DATE")
FromYear = input(2019, "From Year", minval=1900),   FromMonth = input(12, "From Month", minval=1, maxval=12),    FromDay = input(1, "From Day", minval=1, maxval=31)
ToYear = input(2019, "To Year", minval=1900),       ToMonth = input(12, "To Month", minval=1, maxval=12),        ToDay = input(9, "To Day", minval=1, maxval=31)
FromDate = timestamp(FromYear, FromMonth, FromDay, 00, 00)     
ToDate = timestamp(ToYear, ToMonth, ToDay, 23, 59)
TradeDateIsAllowed = true

// non-repainting security version
four_hours_H     = security(syminfo.tickerid, '240', high[1], lookahead=true)
four_hours_L     = security(syminfo.tickerid, '240', low[1], lookahead=true)
buy_trigger     = crossover(close, four_hours_H)
sell_trigger    = crossunder(close, four_hours_L)

// trend states
since_buy  = barssince(buy_trigger)
since_sell = barssince(sell_trigger)
buy_trend  = since_sell > since_buy
sell_trend = since_sell < since_buy 

change_trend = (buy_trend and sell_trend[1]) or (sell_trend and buy_trend[1])

// plot(four_hours_H, title="4H High",  linewidth=2, color=#3c91c2, style=plot.style_linebr, transp=0,
//  show_last=1, trackprice=true)
// plot(four_hours_L, title="4H Low",  linewidth=2, color=#3c91c2, style=plot.style_linebr, transp=0,
//  show_last=1, trackprice=true)

plot(strategy.equity, color=color.blue, linewidth=3, title="Strategy Equity")

// get the entry price
entry_price = valuewhen(buy_trigger or sell_trigger, close, 0)

// SL and TP

SL_price    = buy_trend ? entry_price - StopLoss    : entry_price + StopLoss
is_SL_hit   = buy_trend ? crossunder(low, SL_price) : crossover(high, SL_price) 

TP_price    = buy_trend ? entry_price + TakeProfit  : entry_price - TakeProfit
is_TP_hit   = buy_trend ? crossover(high, TP_price) : crossunder(low, TP_price)

//  Account Margin Management:
f_account_margin_call_cross(_amount)=>
    _return = crossunder(strategy.equity, _amount)

f_account_margin_call(_amount)=>
    _return = strategy.equity <= _amount

is_margin_call_cross    = f_account_margin_call_cross(MarginValue)
is_margin_call          = f_account_margin_call(MarginValue)

plot(strategy.equity, title='strategy.equity', transp=0, linewidth=4)
//plot(barssince(is_margin_call ), title='barssince(is_margin_call)', transp=100)

can_trade = iff(UseMarginCall, not is_margin_call, true)
trade_size  = InitPosition * (not UseLeverage ? 1 : LeverageValue)

// We can take the trade if not liquidated/margined called/rekt

buy_final   = can_trade and buy_trigger and TradeDateIsAllowed
sell_final  = can_trade and sell_trigger and TradeDateIsAllowed

close_long  = buy_trend  and 
 (UseRiskManagement and (is_SL_hit or is_TP_hit)) or sell_trigger

close_short = sell_trend and 
 (UseRiskManagement and (is_SL_hit or is_TP_hit)) or buy_trigger

strategy.entry(TradeId + ' B', long=true, qty=trade_size, when=buy_final)
strategy.entry(TradeId + ' S', long=false, qty=trade_size, when=sell_final)
strategy.close(TradeId + ' B', when=close_long)
strategy.close(TradeId + ' S', when=close_short)

// FULL DEGEN MODE ACTIVATED
// Margin called - Broker closing your account
strategy.close_all(when=is_margin_call)

if UseMarginCall and is_margin_call_cross
    f_print("☠️REKT☠️", is_margin_call_cross)