
یہ حکمت عملی قیمتوں میں فی صد تبدیلیوں کا استعمال خرید لائن اور روکنے کی لائن قائم کرنے کے لئے کرتی ہے ، خرید لائن کو توڑنے کی قیمت کے مطابق پوزیشن بناتی ہے ، اور روکنے کی لائن کے نیچے روکتی ہے۔ اس کی بنیادی خصوصیت یہ ہے کہ صرف ایک یونٹ کا خطرہ ہے ، یعنی جب پوزیشن پہلے سے طے شدہ منافع کے ہدف تک پہنچ جاتی ہے تو ہی پوزیشن میں اضافہ ہوتا ہے۔
اس حکمت عملی میں پہلے ایک بیس قیمت طے کی جاتی ہے ، جس میں اس قیمت کا 10٪ ایک قیمت کا فاصلہ ہوتا ہے ، جس کا اوپری کنارہ خرید لائن ہے ، اور نچلے کنارے اسٹاپ لائن ہے۔ جب قیمت خریدنے کی لائن کو توڑتی ہے تو ، ایک مقررہ مقدار میں خریدیں۔ جب قیمت اسٹاپ لائن سے نیچے آجاتی ہے تو ، بیس پوزیشن بند ہوجاتی ہے۔ جب منافع ہوتا ہے تو ، خریدنے کی لائن اور اسٹاپ لائن فیصد کے مطابق ایڈجسٹ ہوجاتی ہے ، منافع بخش فاصلے کو بڑھا دیتی ہے۔ اس طرح رجحان کو ٹریک کیا جاسکتا ہے۔
اس حکمت عملی کا ایک اور اہم نکتہ یہ ہے کہ صرف ایک یونٹ کا خطرہ مول لیا جائے گا۔ یعنی ، نئی پوزیشنوں کو صرف اس وقت ہی پوزیشن میں رکھا جائے گا جب موجودہ پوزیشن منافع کے ہدف تک پہنچ جائے گی۔ نئی پوزیشنیں بھی نئی خرید لائنوں اور اسٹاپ نقصان کی لائنوں کے مطابق ترتیب دی جائیں گی۔ اس طرح خطرے کو محدود کیا جاسکتا ہے۔
اس حکمت عملی میں اسٹاپ نقصانات کو ٹریک کرنے اور اسٹاک مینجمنٹ کے فوائد شامل ہیں ، جو خطرے کو مؤثر طریقے سے کنٹرول کرنے اور منافع کمانے میں مدد فراہم کرتے ہیں۔
اس حکمت عملی کے کچھ خطرات بھی ہیں:
ان خطرات سے پیرامیٹرز کو ایڈجسٹ کرکے بچا جاسکتا ہے ، جیسے فی صد کے فاصلے کا سائز ایڈجسٹ کرنا ، ہراساں کرنے کے حالات کو ایڈجسٹ کرنا وغیرہ۔
اس حکمت عملی میں مزید اصلاحات کی گنجائش ہے۔
یہ ایک ایسی حکمت عملی ہے جس میں فی صد کی حد کا استعمال کرتے ہوئے تجارت کی جاتی ہے۔ یہ آسان ، عملی ہے ، اور خطرے کو مؤثر طریقے سے کنٹرول کرتی ہے۔ پیرامیٹرز کو ایڈجسٹ کرنے اور ماڈل کو بہتر بنانے کے ذریعہ ، یہ حکمت عملی ایک قابل اعتماد رجحانات کا سراغ لگانے والا نظام بن سکتی ہے ، جو سرمایہ کاروں کے لئے مستحکم اضافی منافع پیدا کرتی ہے۔
/*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)