
یہ ایک اعلی درجے کی متحرک گرڈ ٹرینڈ ٹریکنگ کوانٹیمیٹڈ ٹریڈنگ حکمت عملی ہے۔ اس حکمت عملی کا بنیادی خیال پہلے سے طے شدہ قیمتوں کی حدود کے اندر متعدد گرڈ لائنوں کو تقسیم کرنا ہے اور جب قیمت گرڈ لائن کو چھوتی ہے تو خود بخود پوزیشن خریدنے یا بیچنے کے لئے خود کار طریقے سے پوزیشن بناتی ہے ، تاکہ ہنگامہ خیز حالات میں منافع حاصل کیا جاسکے۔ اس حکمت عملی میں گرڈ لائن کی پوزیشن کو متحرک طور پر ایڈجسٹ کرنے کی بھی خصوصیت ہے ، جس سے گرڈ کی ترتیب کو حالیہ قیمتوں کی نقل و حرکت کے مطابق خود بخود بہتر بنایا جاسکتا ہے۔
اس حکمت عملی کے بنیادی اصول درج ذیل ہیں:
سب سے پہلے ، صارف کی ترتیبات کے مطابق ، گرڈ کے اوپری اور نچلے سرحدوں اور گرڈ لائنوں کی تعداد کا تعین کریں۔ سرحدیں مقررہ اقدار ہوسکتی ہیں ، یا حالیہ اعلی یا کم یا متحرک اوسط کی بنیاد پر خود بخود حساب کی جاسکتی ہیں۔
مقررہ حدود کے اندر ، قیمتوں کی حد کو کئی گرڈوں میں تقسیم کریں۔ ہر گرڈ لائن ایک خرید یا فروخت کی قیمت کے مساوی ہے۔
ہر بار جب قیمت گرڈ لائن کو چھوتی ہے تو ، حکمت عملی چیک کرتی ہے کہ آیا اس گرڈ لائن کے مساوی پوزیشن پہلے ہی موجود ہے۔ اگر کوئی پوزیشن نہیں ہے تو ، پوزیشن خرید لی جائے گی ، اور اگر کوئی ہے تو ، پوزیشن فروخت کی جائے گی۔
اس حکمت عملی کے ذریعے ، قیمتوں میں اتار چڑھاؤ کے دوران منافع کو برقرار رکھا جاسکتا ہے ، نسبتا high اعلی قیمتوں پر بیچنے اور کم قیمتوں پر خریدنے کے ذریعہ۔
اس کے علاوہ ، اگر صارف نے خود کار طریقے سے بارڈر ایڈجسٹمنٹ کو فعال کیا ہے تو ، گرڈ لائن کا مقام گرڈ کی ترتیب کو بہتر بنانے کے ل recent حالیہ قیمتوں کے اعلی یا کم پوائنٹس یا سیٹ کی جانے والی متحرک اوسط کے مطابق خود بخود ایڈجسٹ ہوگا۔
مندرجہ بالا اصولوں کے ذریعہ ، یہ حکمت عملی قیمتوں میں اتار چڑھاؤ کی صورتحال میں خود کار طریقے سے کم خرید و فروخت کرنے کے قابل بناتی ہے ، اور رجحانات کے مطابق فائدہ اٹھانے کے لئے ایڈجسٹ کرتی ہے ، جس سے مجموعی طور پر منافع میں اضافہ ہوتا ہے۔
متحرک گرڈ حکمت عملی کے درج ذیل فوائد ہیں:
لچکدار۔ مختلف مارکیٹوں اور اقسام کو پیرامیٹرز کے ذریعہ ایڈجسٹ کیا جاسکتا ہے ، اور زلزلے کی صورتحال میں اچھی طرح سے لچکدار ہے۔
اعلی درجے کی آٹومیشن۔ چونکہ حکمت عملی سخت ریاضیاتی منطق پر مبنی ہے ، لہذا پوزیشنوں کو مکمل طور پر خود کار طریقے سے تجارت کی جاسکتی ہے ، جس سے ذہنی جذبات کی مداخلت کو کم کیا جاسکتا ہے۔
خطرے کا انتظام۔ گرڈ کی تعداد ، گرڈ کی حدود وغیرہ جیسے پیرامیٹرز کو ترتیب دے کر ، ہر تجارت کے خطرے کے سوراخ کو مؤثر طریقے سے کنٹرول کیا جاسکتا ہے ، جس سے مجموعی خطرے کو قابل قبول حد تک برقرار رکھا جاسکتا ہے۔
رجحانات کے مطابق ڈھالنے کی اہلیت۔ حکمت عملی میں گرڈ کی حدود کو متحرک طور پر ایڈجسٹ کرنے کی خصوصیت شامل کی گئی ہے ، جس سے گرڈ کو قیمتوں کے رجحانات کی پیروی کرنے اور ان کو بہتر بنانے کے قابل بنایا جاسکتا ہے ، جس سے رجحانات کے تحت منافع بخش صلاحیت میں اضافہ ہوتا ہے۔
جیت کی شرح مستحکم ہے۔ چونکہ گرڈ ٹریڈنگ بنیادی طور پر قیمت کے اتار چڑھاؤ میں بار بار اونچی اور نیچے کی طرف جاتا ہے ، لہذا اس حکمت عملی کو طویل عرصے تک جیت کی اعلی شرح حاصل ہوتی ہے جب تک کہ قیمت میں اتار چڑھاؤ برقرار رہے۔
اگرچہ اس حکمت عملی کے فوائد واضح ہیں ، اس کے ساتھ ساتھ اس میں کچھ خطرات بھی ہیں:
رجحان کا خطرہ۔ اگر قیمتوں میں ایک مضبوط یکطرفہ رجحان ہوتا ہے تو گرڈ کی حدود کو توڑ دیتا ہے ، اس حکمت عملی کے لئے منافع کی گنجائش محدود ہوجائے گی اور اس میں بڑے پیمانے پر واپسی کا سامنا کرنا پڑ سکتا ہے۔
پیرامیٹرز کو بہتر بنانے میں دشواری ہے۔ اس حکمت عملی میں متعدد پیرامیٹرز ہیں ، بشمول گرڈ کی تعداد ، ابتدائی سرحد ، متحرک سرحد پیرامیٹرز وغیرہ۔ مختلف پیرامیٹرز کے مجموعے سے حکمت عملی کی کارکردگی پر بہت زیادہ اثر پڑتا ہے ، اور عملی اصلاح میں دشواری کم نہیں ہوتی ہے۔
بار بار تجارت کرنا۔ نیٹ ورک حکمت عملی بنیادی طور پر ایک اعلی تعدد حکمت عملی ہے ، جس میں بہت زیادہ بار بار پوزیشنیں لگائی جاتی ہیں ، جس کا مطلب ہے کہ تجارت کی زیادہ لاگت اور ممکنہ پھیلنے کا خطرہ۔
اسٹریٹجی کا رجحانات پر بہت زیادہ انحصار ہے۔ اسٹریٹجی کا رجحانات پر بہت زیادہ انحصار ہے۔ اگر قیمت تیزی سے ایک طرفہ رجحانات میں داخل ہوجاتی ہے تو ، اسٹریٹجی کو بڑے پیمانے پر واپسی کا سامنا کرنا پڑ سکتا ہے۔
ان خطرات کے خلاف ، مندرجہ ذیل پہلوؤں سے بہتری لائی جاسکتی ہے: حکمت عملی کے آغاز کے فلٹرنگ شرائط کے طور پر رجحان کا فیصلہ کرنے والے اشارے کو شامل کرنا ، پیرامیٹرز تلاش کرنے کی جگہ اور طریقہ کار کو بہتر بنانا ، فنڈ مینجمنٹ اور پوزیشن کنٹرول منطق متعارف کرانا ، رجحان کو توڑنے کے ل pla pla ہموار پوزیشن منطق وغیرہ کو بڑھانا۔ ان اصلاحات کے ذریعہ ، اس حکمت عملی کی استحکام اور منافع بخش صلاحیت کو مزید بہتر بنایا جاسکتا ہے۔
مندرجہ بالا تجزیہ کی بنیاد پر ، اس حکمت عملی کو بہتر بنانے کے لئے مندرجہ ذیل نکات پر توجہ دی گئی ہے:
رجحان فلٹرنگ شرائط متعارف کرایا گیا ہے۔ حکمت عملی کے آغاز سے پہلے رجحان فیصلہ کرنے والے اشارے شامل کریں ، جیسے کہ حرکت پذیر اوسط ، ADX وغیرہ۔ حکمت عملی کو صرف ہلچل کے حالات میں شروع کریں ، اور رجحان کے حالات میں انتظار کریں ، اس طرح رجحان کے حالات میں واپسی کے خطرے سے مؤثر طریقے سے بچا جاسکتا ہے۔
اصلاح شدہ پیرامیٹرز کی تلاش۔ جینیاتی الگورتھم ، ذرہ گروپ الگورتھم وغیرہ جیسے ذہین الگورتھم کو اپنانے کے لئے گرڈ پیرامیٹرز کو بہتر بنائیں ، تاکہ خود بخود بہترین پیرامیٹرز کا مجموعہ تلاش کیا جاسکے ، اصلاح کی کارکردگی اور معیار کو بہتر بنایا جاسکے۔
زیادہ سے زیادہ خطرے سے متعلق منطق کو بڑھانا۔ حکمت عملی میں مزید خطرے سے متعلق منطق شامل کریں ، جیسے کہ قیمت کے اتار چڑھاؤ کی رفتار کے مطابق گرڈ کی چوڑائی کو ایڈجسٹ کرنا ، زیادہ سے زیادہ واپسی کی حد کو طے کرنا ، اور اسی طرح ، تاکہ خطرے کو بہتر طور پر کنٹرول کیا جاسکے۔
ٹرینڈ اسٹاپ متعارف کروائیں۔ ٹرینڈ اسٹاپ لائن کو توڑنے کے لئے ٹرینڈ اسٹاپ لائن کی ترتیب دیں ، جیسے کہ گرڈ کی حدود کا ایک خاص تناسب ، جب قیمت اسٹاپ لائن کو توڑ دیتی ہے تو پوری طرح سے فلیٹ ہوجاتی ہے ، تاکہ رجحان کے حالات میں زبردست واپسی سے بچا جاسکے۔
ٹرانزیکشن پر عملدرآمد کو بہتر بنائیں۔ ٹرانزیکشن پر عملدرآمد کے پہلوؤں کو بہتر بنائیں ، جیسے کہ اعلی درجے کی شرائط کی فہرست اور آرڈر الگورتھم کو اپنانا ، ٹرانزیکشن کی تعدد اور لاگت کو کم سے کم کرنا ، اور عملدرآمد کی کارکردگی کو بہتر بنانا۔
مندرجہ بالا اصلاحات کی طرف سے، اس حکمت عملی کی لچک، استحکام اور منافع بخش صلاحیت کو بہتر بنایا جا سکتا ہے، جس سے یہ حقیقی ضروریات کے قریب ہوتا ہے.
مجموعی طور پر ، متحرک گرڈ ٹرینڈ ٹریکنگ حکمت عملی ایک درمیانے اور اعلی تعدد کی تجارت کی حکمت عملی ہے جو گرڈ ٹریڈنگ کے اصول پر مبنی ہے ، اور متحرک ایڈجسٹمنٹ اور رجحان موافقت کے طریقہ کار کو بھی شامل کرتی ہے۔ اس کے فوائد میں لچکدار ، اعلی آٹومیشن ، خطرے پر قابو پانے ، رجحان موافقت ، جیت کی مستقل مزاجی ، وغیرہ شامل ہیں۔ لیکن اس کے ساتھ ہی رجحان کا خطرہ ، پیرامیٹرز کو بہتر بنانے میں دشواری ، بار بار تجارت ، رویے پر انحصار وغیرہ جیسے مضبوط خطرات بھی ہیں۔ ان مسائل کے حل کے لئے ، حکمت عملی کی مجموعی کارکردگی کو بہتر بنانے کے لئے ، رجحان فلٹرنگ ، پیرامیٹرز کو بہتر بنانا ، خطرے کو کنٹرول کرنا ، رجحان کو روکنا ، تجارت کو بہتر بنانا وغیرہ۔
گرڈ ٹریڈنگ کا نظریہ خود ایک نسبتا mature اور عملی مقدار کا طریقہ ہے ، اس حکمت عملی میں متحرک اصلاح اور رجحان کے مطابق ڈھالنے کے طریقہ کار کے اضافے کے ذریعہ ، کلاسیکی گرڈ ٹریڈنگ کے فوائد کو بڑھایا اور تیار کیا گیا ہے۔ یہ سرمایہ کاروں کے لئے ایک نئی قسم کی مقدار کی تجارت کا نظریہ اور امکانات فراہم کرتا ہے۔ مزید اصلاح اور بہتری کے بعد ، اس حکمت عملی کو ایک بہترین اعلی اور درمیانے درجے کی فریکوئینسی کی مقدار میں تجارت کا آلہ بننے کا امکان ہے۔
/*backtest
start: 2024-03-01 00:00:00
end: 2024-03-21 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("(IK) Grid Script", overlay=true, pyramiding=14, close_entries_rule="ANY", default_qty_type=strategy.cash, initial_capital=100.0, currency="USD", commission_type=strategy.commission.percent, commission_value=0.1)
i_autoBounds = input(group="Grid Bounds", title="Use Auto Bounds?", defval=true, type=input.bool) // calculate upper and lower bound of the grid automatically? This will theorhetically be less profitable, but will certainly require less attention
i_boundSrc = input(group="Grid Bounds", title="(Auto) Bound Source", defval="Hi & Low", options=["Hi & Low", "Average"]) // should bounds of the auto grid be calculated from recent High & Low, or from a Simple Moving Average
i_boundLookback = input(group="Grid Bounds", title="(Auto) Bound Lookback", defval=250, type=input.integer, maxval=500, minval=0) // when calculating auto grid bounds, how far back should we look for a High & Low, or what should the length be of our sma
i_boundDev = input(group="Grid Bounds", title="(Auto) Bound Deviation", defval=0.10, type=input.float, maxval=1, minval=-1) // if sourcing auto bounds from High & Low, this percentage will (positive) widen or (negative) narrow the bound limits. If sourcing from Average, this is the deviation (up and down) from the sma, and CANNOT be negative.
i_upperBound = input(group="Grid Bounds", title="(Manual) Upper Boundry", defval=0.285, type=input.float) // for manual grid bounds only. The upperbound price of your grid
i_lowerBound = input(group="Grid Bounds", title="(Manual) Lower Boundry", defval=0.225, type=input.float) // for manual grid bounds only. The lowerbound price of your grid.
i_gridQty = input(group="Grid Lines", title="Grid Line Quantity", defval=8, maxval=15, minval=3, type=input.integer) // how many grid lines are in your grid
f_getGridBounds(_bs, _bl, _bd, _up) =>
if _bs == "Hi & Low"
_up ? highest(close, _bl) * (1 + _bd) : lowest(close, _bl) * (1 - _bd)
else
avg = sma(close, _bl)
_up ? avg * (1 + _bd) : avg * (1 - _bd)
f_buildGrid(_lb, _gw, _gq) =>
gridArr = array.new_float(0)
for i=0 to _gq-1
array.push(gridArr, _lb+(_gw*i))
gridArr
f_getNearGridLines(_gridArr, _price) =>
arr = array.new_int(3)
for i = 0 to array.size(_gridArr)-1
if array.get(_gridArr, i) > _price
array.set(arr, 0, i == array.size(_gridArr)-1 ? i : i+1)
array.set(arr, 1, i == 0 ? i : i-1)
break
arr
var upperBound = i_autoBounds ? f_getGridBounds(i_boundSrc, i_boundLookback, i_boundDev, true) : i_upperBound // upperbound of our grid
var lowerBound = i_autoBounds ? f_getGridBounds(i_boundSrc, i_boundLookback, i_boundDev, false) : i_lowerBound // lowerbound of our grid
var gridWidth = (upperBound - lowerBound)/(i_gridQty-1) // space between lines in our grid
var gridLineArr = f_buildGrid(lowerBound, gridWidth, i_gridQty) // an array of prices that correspond to our grid lines
var orderArr = array.new_bool(i_gridQty, false) // a boolean array that indicates if there is an open order corresponding to each grid line
var closeLineArr = f_getNearGridLines(gridLineArr, close) // for plotting purposes - an array of 2 indices that correspond to grid lines near price
var nearTopGridLine = array.get(closeLineArr, 0) // for plotting purposes - the index (in our grid line array) of the closest grid line above current price
var nearBotGridLine = array.get(closeLineArr, 1) // for plotting purposes - the index (in our grid line array) of the closest grid line below current price
strategy.initial_capital = 50000
for i = 0 to (array.size(gridLineArr) - 1)
if close < array.get(gridLineArr, i) and not array.get(orderArr, i) and i < (array.size(gridLineArr) - 1)
buyId = i
array.set(orderArr, buyId, true)
strategy.entry(id=tostring(buyId), long=true, qty=(strategy.initial_capital/(i_gridQty-1))/close, comment="#"+tostring(buyId))
if close > array.get(gridLineArr, i) and i != 0
if array.get(orderArr, i-1)
sellId = i-1
array.set(orderArr, sellId, false)
strategy.close(id=tostring(sellId), comment="#"+tostring(sellId))
if i_autoBounds
upperBound := f_getGridBounds(i_boundSrc, i_boundLookback, i_boundDev, true)
lowerBound := f_getGridBounds(i_boundSrc, i_boundLookback, i_boundDev, false)
gridWidth := (upperBound - lowerBound)/(i_gridQty-1)
gridLineArr := f_buildGrid(lowerBound, gridWidth, i_gridQty)
closeLineArr := f_getNearGridLines(gridLineArr, close)
nearTopGridLine := array.get(closeLineArr, 0)
nearBotGridLine := array.get(closeLineArr, 1)