
خود کو اپنانے والی مساوی گرڈ کوانٹم ٹریڈنگ حکمت عملی ایک ایسی حکمت عملی ہے جو مساوی لائن اور گرڈ ٹریڈنگ کے نظریہ پر مبنی ہے۔ اس حکمت عملی کے ذریعے قیمتوں کی ایک سادہ حرکت پذیر اوسط ((SMA) کو مارکیٹ کے رجحان کی مرکزی لائن کے طور پر شمار کیا جاتا ہے ، اور پھر مرکزی لائن کے نیچے ایک تناسب گرڈ لائن قائم کی جاتی ہے۔ جب قیمت ان گرڈ لائنوں کے مابین اتار چڑھاؤ کرتی ہے تو ، حکمت عملی خریدتی ہے جب قیمت نیچے گرڈ لائن کو چھوتی ہے اور اوپر گرڈ لائن کو چھوتی ہے۔ یہ تجارتی طریقہ خاص طور پر مارکیٹ کے ماحول میں استعمال کے لئے موزوں ہے جہاں قیمت میں اتار چڑھاؤ ہوتا ہے لیکن مجموعی طور پر مساوی لائن کے گرد ہلچل پڑتی ہے۔
خود کو اپنانے والی یکساں لکیری گرڈ کوانٹم ٹریڈنگ حکمت عملی کا بنیادی اصول مارکیٹ کی قیمتوں کی اوسط قیمت کی واپسی کی خصوصیت پر مبنی ہے۔ حکمت عملی کو مندرجہ ذیل اقدامات کے ذریعے نافذ کیا گیا ہے:
اس حکمت عملی کا نچوڑ قیمتوں میں ایک خاص حد کے اندر اعلی تعدد کے اتار چڑھاؤ کو پکڑنا ہے ، جس سے “کم خرید و فروخت” کا احساس ہوتا ہے۔ اس حکمت عملی میں ایک ہی وقت میں متعدد پوزیشنیں رکھنے کی اجازت ہے (زیادہ سے زیادہ 15) ، ہر پوزیشن مختلف گرڈ لائنوں کے مطابق ہوتی ہے ، اس ڈیزائن نے حکمت عملی کو قیمت کے اتار چڑھاؤ سے زیادہ سے زیادہ فائدہ اٹھانے کی اجازت دی ہے۔
خود سے منسلک یکساں لکیری گرڈ کوانٹم ٹریڈنگ حکمت عملی کے درج ذیل نمایاں فوائد ہیں:
اس حکمت عملی کے معقول ڈیزائن کے باوجود ، مندرجہ ذیل ممکنہ خطرات موجود ہیں:
کوڈ کے تجزیہ کی بنیاد پر ، اس حکمت عملی کو مندرجہ ذیل سمتوں میں بہتر بنایا جاسکتا ہے۔
خود کو اپنانے والی یکساں گرڈ کوانٹم ٹریڈنگ اسٹریٹجی ایک گرڈ ٹریڈنگ سسٹم ہے جو ایک متوازن رجعت پر مبنی ہے ، جس میں ایک چلتی اوسط کے ارد گرد گرڈ ترتیب دے کر قیمت میں اتار چڑھاؤ کے ذریعہ ٹریڈنگ کے مواقع کو پکڑ لیا جاتا ہے۔ حکمت عملی کا ڈیزائن آسان ہے ، اس میں کم پیرامیٹرز ہیں اور اسے آسانی سے ایڈجسٹ کیا جاسکتا ہے ، خاص طور پر اتار چڑھاؤ والی مارکیٹوں میں استعمال کے لئے موزوں ہے۔ اس حکمت عملی کا بنیادی فائدہ اس کی خود کو اپنانے اور خطرے کی تقسیم کی خصوصیت میں ہے ، جو خود بخود مختلف قیمت کی سطحوں کو اپنانے اور متعدد گرڈ مقامات کے ذریعہ خطرے کو تقسیم کرنے کی صلاحیت رکھتا ہے۔
تاہم ، اس حکمت عملی کو مضبوط رجحانات والے بازاروں میں خطرات کا سامنا کرنا پڑ سکتا ہے ، جس میں رجحانات کے فلٹرنگ اور اسٹاپ نقصان کے طریقہ کار کو بہتر بنانے کی ضرورت ہے۔ اس کے علاوہ ، متحرک طور پر گرڈ کی چوڑائی کو ایڈجسٹ کرنے ، فنڈ مینجمنٹ کو بہتر بنانے اور کثیر وقت کی مدت کی تصدیق میں اضافہ کرنے جیسے اصلاحات کی سمتوں کو بھی تلاش کرنے کے قابل ہے۔ ان اصلاحات کے ذریعہ ، حکمت عملی کو مختلف مارکیٹ کے ماحول میں زیادہ مستحکم اور عمدہ کارکردگی کا امکان ہے۔
تجربہ کار کوانٹم ٹریڈرز کے لئے ، اس حکمت عملی نے ایک اچھا بنیادی فریم ورک فراہم کیا ہے ، جس کو انفرادی تجارتی طرز اور خطرے کی ترجیحات کے مطابق مزید تخصیص اور اصلاح کی جاسکتی ہے ، جس سے مارکیٹ میں اتار چڑھاؤ کو پکڑنے میں گرڈ ٹریڈنگ کا فائدہ اٹھایا جاسکتا ہے۔
/*backtest
start: 2025-04-01 00:00:00
end: 2025-06-22 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy('Grid Trading Strategy', overlay=true, pyramiding=15)
// 输入参数设置
ma_length = input.int(300, '移动平均线长度', group='移动平均线条件', step=10)
std = input.float(0.03, title='网格上下偏差率', group='网格条件', step=0.01)
grid = input.int(15, maxval=15, title='网格线数量', group='网格条件')
// 计算移动平均线及网格边界
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)
// 执行交易逻辑
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)