
متحرک گرڈ ٹریڈنگ حکمت عملی۔ متحرک طور پر گرڈ ٹریڈنگ زون کا تعین کرنے کے لئے متحرک اوسط اور اس کے اوپر اور نیچے کے حساب کتاب کے ذریعے گرڈ ٹریڈنگ زون کا تعین کریں۔ جب قیمت گرڈ زون کو توڑ دیتی ہے تو ، تجارت کا اشارہ ایک مقررہ وقفے سے مقرر کردہ گرڈ لائن کے مطابق ہوتا ہے ، جس سے منافع ہوتا ہے۔
یہ حکمت عملی سب سے پہلے ایک مقررہ مدت n کے لئے ایک منتقل اوسط کا حساب لگاتا ہے، اور ایک منتقل اوسط کے اوپر اور نیچے ریل. اوپر ریل ایک منتقل اوسط ہے.(1 + ان پٹ پیرامیٹر std) ، نیچے کی ریل ایک منتقل اوسط ہے(1 - ان پٹ پیرامیٹرز std) ◄ اس طرح ایک متحرک ایڈجسٹمنٹ ٹرانزیکشن بینڈ کی تعمیر کی جا سکتی ہے ◄
اس کے بعد ، ہم نے ایک گرڈ لائن کی وضاحت کی ہے جس میں m بار کے برابر فاصلے ہیں۔ جب قیمت بڑھتی ہے تو گرڈ لائن کو توڑ دیتی ہے ، تو اس گرڈ لائن پر ایک کثیر سگنل جاری کیا جاتا ہے۔ جب قیمت گرتی ہے تو گرڈ لائن کو توڑ دیتی ہے ، تو اس گرڈ لائن کے مطابق اوپر والی گرڈ لائن پر ایک ہلکا سا سگنل جاری کیا جاتا ہے۔ اس الٹ عمل کے ذریعے ، جب قیمت میں اتار چڑھاؤ ہوتا ہے تو منافع حاصل کیا جاسکتا ہے۔
خاص طور پر ، ہم ہر گرڈ لائن کی تجارت کی حیثیت کو ریکارڈ کرنے کے لئے ایک بولی آرٹیکل آرڈر_آرری کا استعمال کرتے ہیں۔ جب کسی گرڈ لائن میں سے کسی ایک کو متعدد شرائط سے ٹرگر کیا جاتا ہے تو ، اس آرڈر_آرری میں اس کی حالت کو درست قرار دیا جاتا ہے ، جس سے ظاہر ہوتا ہے کہ اس گرڈ لائن میں ایک پوزیشن موجود ہے۔ جب قیمت گرتی ہے تو گرڈ لائن کو توڑ دیتی ہے ، اس آرڈر_آرری میں اس کے پچھلے گرڈ لائن کی حالت کو غلط قرار دیا جاتا ہے ، جس سے کھلے پوزیشن کا اشارہ ملتا ہے۔
اس حکمت عملی کے درج ذیل فوائد ہیں:
متحرک ایڈجسٹمنٹ کے لئے ٹریڈنگ کی حدود کو منتقل کرنے کے لئے استعمال کیا جاتا ہے اور مارکیٹ میں اتار چڑھاؤ کے مطابق حد کی حد کو ایڈجسٹ کیا جاسکتا ہے تاکہ حکمت عملی کو مارکیٹ میں زیادہ مناسب بنایا جاسکے۔
گرڈ ڈیزائن خود کار طریقے سے اسٹاپ نقصان کو روکنے کے لئے استعمال کیا جاتا ہے، جس میں انتہائی حالات کی وجہ سے نقصانات کو بڑھانے سے روکتا ہے.
گرڈ کی تعداد اور فنڈز کی تقسیم کا استعمال مساوی وقفہ اور مساوی تقسیم کے ساتھ کیا جاتا ہے ، جس سے ایک ہی پوزیشن کے سائز کو اچھی طرح سے کنٹرول کیا جاسکتا ہے ، اور ایک ہی پوزیشن کا خطرہ کم کیا جاسکتا ہے۔
زیادہ سے زیادہ اور زیادہ پوزیشن سگنل کو مناسب طریقے سے ترتیب دیں ، اور آپ کو بروقت تجارت ، بروقت اسٹاپ اور نقصان کو روکنے میں مدد ملے گی۔
اس حکمت عملی کے کچھ خطرات بھی ہیں:
جب مارکیٹ میں طویل عرصے تک کمزوری ہوتی ہے اور گرڈ لائن کو توڑنے سے قاصر ہے تو ، حکمت عملی غیر جانبدار ہلچل کی تجارت میں پھنس جاتی ہے ، جس کی وجہ سے بہت زیادہ خلائی تبادلوں سے اکاؤنٹ میں رقم ضائع ہوسکتی ہے۔
منتخب کردہ پیرامیٹرز ایس ڈی ڈی اور گرڈ کی تعداد مکمل طور پر معقول نہیں ہوسکتی ہے ، اور مختلف ٹرانزیکشن اقسام کے تجزیے کے مطابق اس بات کا تعین کرنے کی ضرورت ہے۔ اگر پیرامیٹرز کو غلط طریقے سے ترتیب دیا گیا ہے تو ، اس کا نتیجہ تجارتی حد اور گرڈ بہت بڑا یا بہت چھوٹا ہوگا ، جس سے حکمت عملی کی تاثیر متاثر ہوگی۔
حکمت عملی نے کچھ انتہائی حالات کو مدنظر نہیں رکھا ، جیسے کہ قیمتوں میں اضافہ ، مختصر لائن دھماکہ خیز عروج یا زوال۔ ان حالات کی وجہ سے حکمت عملی متعدد گرڈوں کو توڑ سکتی ہے ، جس سے خطرے سے زیادہ نقصان ہوتا ہے۔
اس حکمت عملی کو مندرجہ ذیل پہلوؤں سے بہتر بنایا جاسکتا ہے:
مشین لرننگ الگورتھم کو متعارف کرایا جاسکتا ہے ، اور ٹریڈنگ بینڈ کو زیادہ ذہین اور متحرک بنانے کے لئے ماڈل کو تربیت دی جاسکتی ہے تاکہ وہ متحرک اوسط کی پیش گوئی کر سکے۔
آپ مختلف ٹریڈنگ اشارے کی خصوصیات کے مطابق ، گرڈ کی تعداد ، فنڈز کی تقسیم کا تناسب ، پوزیشن سائز وغیرہ جیسے پیرامیٹرز کو بہتر بناسکتے ہیں ، اپنی مرضی کے مطابق پیرامیٹرز استعمال کریں۔
مشروط لسٹ ترتیب دی جاسکتی ہے ، ایک خاص فاصلے پر گرڈ لائن پر بیک اپ اسٹاپ لسٹ ترتیب دی جاسکتی ہے ، جو انتہائی حالات میں ہونے والے نقصان کو کنٹرول کرنے کے لئے نقصان کو روکنے کا کردار ادا کرسکتی ہے۔
انتہائی حالات کے لئے غیر معمولی ہینڈلنگ میکانزم ڈیزائن کریں ، جیسے پہلی بار پوزیشن کھولنے کی پوزیشن کو بڑھانا ، درمیانی گرڈ کو براہ راست روکنا وغیرہ ، جو قیمتوں میں اضافے جیسے غیر معمولی حالات کا مقابلہ کرسکے۔
متحرک گرڈ ٹریڈنگ حکمت عملی کا مجموعی ڈیزائن معقول ہے ، اور گرڈ کا استعمال کرتے ہوئے خود کار طریقے سے اسٹاپ اور نقصان کا نظام تشکیل دیا جاسکتا ہے ، جو ان تجارتی اقسام کے لئے موزوں ہے جن کی قیمتوں میں زیادہ بار بار اتار چڑھاؤ ہوتا ہے۔ تاہم ، اس حکمت عملی میں مارکیٹ کا کچھ خطرہ بھی موجود ہے ، حکمت عملی کو زیادہ مستحکم بنانے کے لئے پیرامیٹرز اور غیر معمولی حالات کے ساتھ بہتر سلوک کرنے کی ضرورت ہے۔
/*backtest
start: 2023-10-31 00:00:00
end: 2023-11-30 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy('Grid Trading Strategy', overlay=true)
// Input
ma_length = input.int(300, 'Moving Average Length',group = 'Moving Average Conditions', step = 10)
std = input.float(0.03, title='Upper and Lower Grid Deviation', group='Grid Conditions', step = 0.01)
grid = input.int(15, maxval=15, title='Grid Line Quantity', group='Grid Conditions')
// Moving Average
ma = ta.sma(close, ma_length)
upper_bound = ma * (1 + std)
lower_bound = ma * (1 - std)
grid_width = (upper_bound - lower_bound) / (grid - 1)
grid_array = array.new_float(0)
for i = 0 to grid - 1 by 1
array.push(grid_array, lower_bound + grid_width * i)
var order_array = array.new_bool(grid, false)
strategy.initial_capital = 10000
// Entry Conditions
for i = 0 to grid - 1 by 1
if close < array.get(grid_array, i) and not array.get(order_array, i)
buy_id = i
array.set(order_array, buy_id, true)
strategy.entry(id=str.tostring(buy_id), direction=strategy.long, comment='#Long ' + str.tostring(buy_id))
if close > array.get(grid_array, i) and i!=0
if array.get(order_array, i-1)
sell_id = i - 1
array.set(order_array, sell_id, false)
strategy.close(id=str.tostring(sell_id), comment='#Close ' + str.tostring(sell_id))
plot(grid > 0 ? array.get(grid_array,0) : na, color = color.yellow, transp = 10)
plot(grid > 1 ? array.get(grid_array,1) : na, color = color.yellow, transp = 10)
plot(grid > 2 ? array.get(grid_array,2) : na, color = color.yellow, transp = 10)
plot(grid > 3 ? array.get(grid_array,3) : na, color = color.yellow, transp = 10)
plot(grid > 4 ? array.get(grid_array,4) : na, color = color.yellow, transp = 10)
plot(grid > 5 ? array.get(grid_array,5) : na, color = color.yellow, transp = 10)
plot(grid > 6 ? array.get(grid_array,6) : na, color = color.yellow, transp = 10)
plot(grid > 7 ? array.get(grid_array,7) : na, color = color.yellow, transp = 10)
plot(grid > 8 ? array.get(grid_array,8) : na, color = color.yellow, transp = 10)
plot(grid > 9 ? array.get(grid_array,9) : na, color = color.yellow, transp = 10)
plot(grid > 10 ? array.get(grid_array,10) : na, color = color.yellow, transp = 10)
plot(grid > 11 ? array.get(grid_array,11) : na, color = color.yellow, transp = 10)
plot(grid > 12 ? array.get(grid_array,12) : na, color = color.yellow, transp = 10)
plot(grid > 13 ? array.get(grid_array,13) : na, color = color.yellow, transp = 10)
plot(grid > 14 ? array.get(grid_array,14) : na, color = color.yellow, transp = 10)