
স্বনির্ধারিত সমান্তরাল গ্রিড কোয়ান্টাম ট্রেডিং কৌশল একটি সমান্তরাল এবং গ্রিড ট্রেডিং ধারণার উপর ভিত্তি করে একটি পরিমাণগত কৌশল। এই কৌশলটি বাজারের প্রবণতার কেন্দ্রবিন্দু হিসাবে মূল্যের একটি সরল চলমান গড় ((এসএমএ) গণনা করে এবং তারপরে কেন্দ্রীয় লাইনের নীচে একটি অনুপাতযুক্ত গ্রিড লাইন সেট করে। যখন দামগুলি এই গ্রিড লাইনের মধ্যে ওঠানামা করে, তখন কৌশলটি নীচের গ্রিড লাইনের স্পর্শ করার সময় কেনা হয় এবং উপরের গ্রিড লাইনের স্পর্শ করার সময় বিক্রি হয়। এই ট্রেডিং পদ্ধতিটি বিশেষত বাজারের পরিবেশে ব্যবহারের জন্য উপযুক্ত যেখানে দামের ওঠানামা হয় তবে সামগ্রিকভাবে সমান্তরাল লাইনের আশেপাশে কম্পন করে।
স্বনির্ধারিত সমান্তরাল গ্রিড কোয়ান্টাম ট্রেডিং কৌশলটির মূল নীতিটি বাজারের দামের গড় মানের রিটার্ন বৈশিষ্ট্যগুলির উপর ভিত্তি করে। কৌশলটি নিম্নলিখিত পদক্ষেপগুলি দ্বারা বাস্তবায়িত হয়ঃ
এই কৌশলটির মূল বিষয় হল নির্দিষ্ট পরিসরের মধ্যে দামের উচ্চ-ফ্রিকোয়েন্সির ওঠানামা ধরা এবং “নিম্ন-বিক্রয়-উচ্চ-বিক্রয়” বাস্তবায়ন করা। এই কৌশলটি একই সাথে একাধিক পজিশন রাখার অনুমতি দেয় (সর্বোচ্চ 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)