مارجن کال رسک مینجمنٹ کی حکمت عملی کے ساتھ لیورجڈ پوزیشن سائزنگ

مصنف:چاؤ ژانگ، تاریخ: 2023-12-26 16:21:58
ٹیگز:

img

جائزہ

یہ حکمت عملی مارکیٹ کے اہم اتار چڑھاؤ کے دوران پوزیشنوں کو بند کرنے کے لئے اعلی فائدہ اٹھانے اور مارجن کال کی شرائط مقرر کرکے خطرے کا انتظام کرتی ہے۔

حکمت عملی منطق

  1. ہائی لیورج مقرر کریں، مثال کے طور پر 4x
  2. مارجن کال کی سطح کی وضاحت کریں، مثال کے طور پر $25,000
  3. جب ایکویٹی مارجن کال کی سطح سے نیچے آجائے تو نئی تجارتیں کھولنا بند کردیں
  4. تمام پوزیشنیں بند کریں جب مارجن کال ٹرگر ہو جائے کیونکہ ایکویٹی میں کمی جاری رہے

اس طرح، حکمت عملی مارجن کال کے خطرات کو روکنے کے لئے تیزی سے مارکیٹ کی نقل و حرکت کے دوران وقت میں نقصانات کو کم کر سکتی ہے.

فوائد کا تجزیہ

  1. ذاتی خطرہ رواداری کی بنیاد پر لچکدار فائدہ اٹھانے کی تخصیص
  2. مارجن کال میکانزم اکاؤنٹ بلوپس کو روکتا ہے
  3. خطرے کو کم کرنے کے لئے اعلی فائدہ اٹھانے کے ساتھ بروقت سٹاپ نقصان

خطرے کا تجزیہ

  1. لیورجائز منافع اور خطرات دونوں کو بڑھا دیتا ہے
  2. مارجن کال کی سطح کو اسٹاپ نقصان کے ساتھ سیدھ میں لانا ضروری ہے
  3. اسٹاپ نقصان سے متعلق خطرات

خطرات کو لیول ایڈجسٹ کرکے، مارجن کال اور اسٹاپ نقصان کو سیدھا کرکے، اسٹاپ نقصان کو بہتر بنانے وغیرہ سے کم کیا جاسکتا ہے۔

اصلاح کی ہدایات

  1. مخالف رجحان کی تجارت سے بچنے کے لئے رجحان فلٹر شامل کریں
  2. سلائڈنگ کو روکنے کے لئے سٹاپ نقصان کو بہتر بنائیں
  3. مخصوص سیشنوں میں تجارت سے بچنے کے لئے ٹریڈنگ گھنٹے فلٹرز مقرر کریں
  4. متحرک طور پر پیرامیٹرز کو ایڈجسٹ کرنے کے لئے مشین سیکھنے کے ماڈلز کو شامل کریں

خلاصہ

یہ حکمت عملی اکاؤنٹ کے دھماکوں کو روکنے کے لئے بیعانہ اور مارجن کال کی ترتیبات کے ساتھ خطرہ کا انتظام کرتی ہے۔ تاہم ، اعلی بیعانہ بھی خطرات کو بڑھاتا ہے۔ رجحان کی توثیق ، اسٹاپ نقصان کی اصلاح اور تجارتی گھنٹوں کے کنٹرول جیسی اضافی کوششیں خطرات کو مزید کم کرنے میں مدد کرسکتی ہیں۔ مشین لرننگ جیسی پیچیدہ تکنیکوں کو پیرامیٹرز کو متحرک طور پر بہتر بنانے اور منافع بخش اور رسک مینجمنٹ کے مابین توازن قائم کرنے کے لئے بھی فائدہ اٹھایا جاسکتا ہے۔


/*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)


مزید