
یہ حکمت عملی ایک اعلی کارکردگی کی مقدار میں تجارت کی حکمت عملی ہے جو مقدار کے ماڈل پر مبنی ہے۔ حکمت عملی نے ماڈیلیئس حجم ماڈل کو بنیادی ماڈل کے طور پر استعمال کیا ہے اور اس کی بنیاد پر اس میں توسیع اور اصلاح کی گئی ہے۔ یہ حکمت عملی مارکیٹ میں مقدار میں تجارت کے مواقع کو پکڑ سکتی ہے اور مستحکم منافع حاصل کرسکتی ہے۔
اس حکمت عملی کا مرکز ماڈیلیئس حجم ماڈل ہے۔ یہ ماڈل مارکیٹ میں مقدار کے ساتھ تجارت کے مواقع کی نشاندہی کرنے کے لئے قیمتوں اور حجم میں تبدیلیوں کا استعمال کرتا ہے۔ خاص طور پر ، حکمت عملی قریبی قیمت ، اوپن قیمت ، اعلی قیمت ، کم قیمت کے ساتھ مل کر کام کرتی ہے ، جو موجودہ K لائن کی سمت کا حساب لگانے کے لئے ایک خاص اصول کے مطابق ہے۔ جب K لائن کی سمت میں تبدیلی آتی ہے تو ، تجارت کے حجم کے سائز کے مطابق تجارت کے مواقع کی مقدار کا فیصلہ کیا جاتا ہے۔ اس کے علاوہ ، حکمت عملی میں SAR اشارے اور مساوی لائن اشارے کو بھی شامل کیا گیا ہے تاکہ موقع اور موقع کے فیصلے میں مدد مل سکے۔
بنیادی تجارتی منطق یہ ہے کہ جب اشارے منفی سے مثبت کی طرف بڑھتا ہے تو زیادہ کام کیا جاتا ہے۔ جب اشارے مثبت سے منفی کی طرف بڑھتا ہے تو ، اس سے زیادہ کام نہیں کیا جاتا ہے۔ اس کے علاوہ ، حکمت عملی نے خطرے کو کنٹرول کرنے کے لئے اسٹاپ نقصان ، اسٹاپ اسٹاپ اور ٹریکنگ اسٹاپ کو بھی ترتیب دیا ہے۔
اس حکمت عملی کا سب سے بڑا فائدہ یہ ہے کہ یہ ماڈیلیئس حجم ماڈل کا استعمال کرتا ہے تاکہ تجارت کے مواقع کو مؤثر طریقے سے شناخت کیا جاسکے۔ روایتی تکنیکی اشارے کے مقابلے میں ، یہ ماڈل تجارت کے حجم میں ہونے والی تبدیلیوں پر زیادہ توجہ دیتا ہے ، جو موجودہ اعلی تعدد کی تجارت میں بہت عملی ہے۔ اس کے علاوہ ، حکمت عملی کے داخلے کے قواعد زیادہ سخت ہیں ، جس سے تجارت کے مواقع کو ضائع ہونے سے بچنے کے ساتھ ساتھ بے ترتیب ہونے کے امکانات کو بھی کم سے کم کیا جاسکتا ہے۔
اس حکمت عملی کا بنیادی خطرہ یہ ہے کہ موڈیلیئس حجم ماڈل خود ہی شور کو مکمل طور پر ختم نہیں کرسکتا ہے۔ جب مارکیٹ میں غیر معمولی اتار چڑھاؤ ہوتا ہے تو ، اس سے تجارتی سگنل میں غلطی پیدا ہوسکتی ہے۔ اس کے علاوہ ، حکمت عملی میں پیرامیٹرز کی ترتیب بھی حتمی نتائج پر اثر انداز ہوتی ہے۔
خطرے کو کنٹرول کرنے کے لئے ، پیرامیٹرز کو مناسب طریقے سے ایڈجسٹ کیا جاسکتا ہے ، اور دوسرے اشارے کے ساتھ مل کر معاون فیصلے کیا جاسکتا ہے۔ اس کے علاوہ ، معقول طور پر اسٹاپ نقصان ، اسٹاپ پوزیشن کی ضرورت ہے۔
اس حکمت عملی میں کچھ اصلاحات کی گنجائش بھی ہے۔ مثال کے طور پر ، پیرامیٹرز کی ترتیبات کو متحرک طور پر بہتر بنانے کے لئے مشین لرننگ الگورتھم کے ساتھ مل کر غور کیا جاسکتا ہے۔ یا فیصلہ سازی کی درستگی کو بہتر بنانے کے لئے جذبات کے تجزیہ جیسے اشارے کے ساتھ مل کر۔ اس کے علاوہ ، مختلف نسلوں کے مابین وابستگی کا مطالعہ کیا جاسکتا ہے ، کثیر نسلوں کے بیعانہ ماڈل کی تشکیل۔
مجموعی طور پر ، اس حکمت عملی نے ماڈیلیئس حجم کے مقداری ماڈل کے فوائد کو استعمال کرتے ہوئے ایک قابل عمل اور مضبوط مقداری تجارت کی حکمت عملی تیار کی ہے۔ پیرامیٹرز کو ایڈجسٹ کرنے ، ماڈل کو بڑھانے ، مشین لرننگ وغیرہ کے ذریعہ اس کو بہتر بنانے کے لئے بہتر استحکام حاصل کیا جاسکتا ہے۔
/*backtest
start: 2022-12-15 00:00:00
end: 2023-12-21 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy(title="strategy modelius volume model ", shorttitle="mvm",overlay=true, calc_on_order_fills=true, default_qty_type=strategy.percent_of_equity, default_qty_value=50, overlay=false)
method = input(defval="ATR", options=["ATR", "Traditional", "Part of Price"], title="Renko Assignment Method")
methodvalue = input(defval=14.0, type=float, minval=0, title="Value")
pricesource = input(defval="Close", options=["Close", "Open / Close", "High / Low"], title="Price Source")
useClose = pricesource == "Close"
useOpenClose = pricesource == "Open / Close" or useClose
useTrueRange = input(defval="Auto", options=["Always", "Auto", "Never"], title="Use True Range instead of Volume")
isOscillating=input(defval=true, type=bool, title="Oscillating")
normalize=input(defval=false, type=bool, title="Normalize")
vol = useTrueRange == "Always" or (useTrueRange == "Auto" and na(volume))? tr : volume
op = useClose ? close : open
hi = useOpenClose ? close >= op ? close : op : high
lo = useOpenClose ? close <= op ? close : op : low
if method == "ATR"
methodvalue := atr(round(methodvalue))
if method == "Part of Price"
methodvalue := close/methodvalue
currclose = na
prevclose = nz(currclose[1])
prevhigh = prevclose + methodvalue
prevlow = prevclose - methodvalue
currclose := hi > prevhigh ? hi : lo < prevlow ? lo : prevclose
direction = na
direction := currclose > prevclose ? 1 : currclose < prevclose ? -1 : nz(direction[1])
directionHasChanged = change(direction) != 0
directionIsUp = direction > 0
directionIsDown = direction < 0
barcount = 1
barcount := not directionHasChanged and normalize ? barcount[1] + barcount : barcount
vol := not directionHasChanged ? vol[1] + vol : vol
res = barcount > 1 ? vol/barcount : vol
x=isOscillating and directionIsDown ? -res : res
TP = input(0) * 10
SL = input(0) * 10
TS = input(1) * 10
TO = input(3) * 10
CQ = 100
TPP = (TP > 0) ? TP : na
SLP = (SL > 0) ? SL : na
TSP = (TS > 0) ? TS : na
TOP = (TO > 0) ? TO : na
longCondition = crossover(x,0)
if (longCondition)
strategy.entry("Long", strategy.long)
shortCondition = crossunder(x,0)
if (shortCondition)
strategy.entry("Short", strategy.short)
strategy.exit("Close Short", "Short", qty_percent=CQ, profit=TPP, loss=SLP, trail_points=TSP, trail_offset=TOP)
strategy.exit("Close Long", "Long", qty_percent=CQ, profit=TPP, loss=SLP, trail_points=TSP, trail_offset=TOP)