متحرک فیصد باکس ٹریکنگ کی حکمت عملی


تخلیق کی تاریخ: 2023-11-23 10:32:39 آخر میں ترمیم کریں: 2023-11-23 10:32:39
کاپی: 1 کلکس کی تعداد: 605
1
پر توجہ دیں
1617
پیروکار

متحرک فیصد باکس ٹریکنگ کی حکمت عملی

جائزہ

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

حکمت عملی کا اصول

اس حکمت عملی میں پہلے ایک بیس قیمت طے کی جاتی ہے ، جس میں اس قیمت کا 10٪ ایک قیمت کا فاصلہ ہوتا ہے ، جس کا اوپری کنارہ خرید لائن ہے ، اور نچلے کنارے اسٹاپ لائن ہے۔ جب قیمت خریدنے کی لائن کو توڑتی ہے تو ، ایک مقررہ مقدار میں خریدیں۔ جب قیمت اسٹاپ لائن سے نیچے آجاتی ہے تو ، بیس پوزیشن بند ہوجاتی ہے۔ جب منافع ہوتا ہے تو ، خریدنے کی لائن اور اسٹاپ لائن فیصد کے مطابق ایڈجسٹ ہوجاتی ہے ، منافع بخش فاصلے کو بڑھا دیتی ہے۔ اس طرح رجحان کو ٹریک کیا جاسکتا ہے۔

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

طاقت کا تجزیہ

اس حکمت عملی میں اسٹاپ نقصانات کو ٹریک کرنے اور اسٹاک مینجمنٹ کے فوائد شامل ہیں ، جو خطرے کو مؤثر طریقے سے کنٹرول کرنے اور منافع کمانے میں مدد فراہم کرتے ہیں۔

  1. خریدنے اور روکنے کی لائنوں کا استعمال کرتے ہوئے فی صد کے فاصلے کا استعمال کرتے ہوئے، خود کار طریقے سے رجحانات کو چلانے کے لئے.
  2. خطرے کو ایک ہندسے تک محدود کریں ، نقصانات کو محدود کریں
  3. صرف منافع کے بعد ہی سرمایہ کاری کریں، نقصانات سے بچنے کے لئے
  4. منافع کو روکنے کے لئے منافع کو روکنے کے لئے.

خطرے کا تجزیہ

اس حکمت عملی کے کچھ خطرات بھی ہیں:

  1. فیصد کا فاصلہ بہت بڑا ہے ، خریدنے کی لائن اور روکنے کی لائن بہت دور ہے ، خطرہ بڑھتا ہے
  2. بہت چھوٹا فی صد فرق ، خریدنے کی لائن اور روکنے کی لائن بہت قریب ، منافع کی گنجائش محدود
  3. اسٹاپ فوائد کی غلط ترتیب سے نقصانات کا وقت سے پہلے خاتمہ ہوسکتا ہے
  4. ‘انڈین حکام کے مطابق اس سے نقصان میں اضافہ ہو سکتا ہے’

ان خطرات سے پیرامیٹرز کو ایڈجسٹ کرکے بچا جاسکتا ہے ، جیسے فی صد کے فاصلے کا سائز ایڈجسٹ کرنا ، ہراساں کرنے کے حالات کو ایڈجسٹ کرنا وغیرہ۔

اصلاح کی سمت

اس حکمت عملی میں مزید اصلاحات کی گنجائش ہے۔

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

خلاصہ کریں۔

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

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2022-11-16 00:00:00
end: 2023-11-22 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © HermanBrummer 4 April 2021

strategy ("The Box Percent Strat", shorttitle="The Box", overlay = true)

///     Designed for LONG only on Daily, 2D or 3D Charts
///     Uses fixed investment risk amount, meaning you're willing to lose that amount per trade
///     Limit buy to not overpay

RiskPerTrade            = input(10000, "Risk losing this much per trade", tooltip="This calculates how much you will lose based on difference between the entry price and stop loss price")
TradeAboveMAFilterPer   = input(50, "The System won't trade if price is below this MA")

UpBoxSize               = (input(10, "Box size in %") * 0.01)+1 // 1.1 == 10% up
DnBoxSize               = 1-(input(10, "Box size in %") * 0.01) // 0.9 == 10% dn


var FirstBar            = close > 0 ? close : na
var FirstTop            = FirstBar * UpBoxSize
var FirstBot            = FirstBar * DnBoxSize


var top                 = sma(FirstTop, 1)
var bot                 = sma(FirstBot, 1)

///     The Box Calcs
if  high[2] > top
    top                 := top * UpBoxSize
    bot                 := bot * UpBoxSize
if  low[1]  < bot
    top                 := top * DnBoxSize
    bot                 := bot * DnBoxSize

 
plot(bot,   "Bot",      #ff0000) // Green
plot(top,   "Top",      #00ff00) // Red

mid                     = ((top-bot)/2)+bot 
plot(mid,   "Mid", color.gray)

TradeAboveMAFilter      = sma(close, TradeAboveMAFilterPer)
plot(TradeAboveMAFilter, "Trade AboveMAF Filter", color.yellow, 3, style=plot.style_circles)

// col = high[1] < top and high >= top ? color.white : na
// bgcolor(col)


///     Shares
RiskRange                   = close * abs(DnBoxSize - 1) // 0.9 - 1 == 1.10 // 10% abs so you don't get a neg number NB NB
Shares                      = RiskPerTrade / RiskRange 
//plot(close-RiskRange, "RiskRange", color.fuchsia)

Enter   =   high >= top
             and close[1] > TradeAboveMAFilter
             and strategy.opentrades[0] == strategy.opentrades[1]
             and strategy.opentrades[1] == strategy.opentrades[2] 
             and strategy.opentrades[2] == strategy.opentrades[3]
             and strategy.opentrades[3] == strategy.opentrades[4] 
             and strategy.opentrades[4] == strategy.opentrades[5]
             and strategy.opentrades[5] == strategy.opentrades[6]
             // won't enter if new positon was taken in the last 6 bars
             // need better code for this.

///     Buy & Sell
//  (new highs)    and  (Close above moving average filter) and (No new trades were taken receently)
if  Enter //(high >= top)  and  (close[1] > TradeAboveMAFilter) and strategy.opentrades[0] == strategy.opentrades[1] 
    strategy.order("En", strategy.long, qty=Shares, limit=top)//, stop=top)
    
//barcolor(strategy.position_size != 0 ? #00ff00 : color.gray)


// ///     If ONE Position THEN this Stop Because: 
// if  strategy.position_size == 1
//     strategy.exit("Ex", "En", stop=bot)
///     If it has more than one trad OPEN
if  strategy.position_size > 0
    strategy.exit("Ex", "En", stop=bot[2] )   // puts stop on old bot

//plot(strategy.position_avg_price, "Avg Price", color.yellow)