গ্রিড ট্রেডিং বটের সৎ পর্যালোচনা
গ্রিড ট্রেডিং বট নির্দিষ্ট সীমার মধ্যে প্রতিটি ধাপে ক্রয় ও বিক্রয় করে। বাজার ওঠানামা থেকে লাভ করে, কিন্তু কোন বাজারের আকৃতি এটিকে ভেঙে দেয় তা জানুন।
একটি গ্রিড ট্রেডিং বট নির্দিষ্ট মূল্য ব্যবধানে অর্ডারের একটি মই স্থাপন করে: বর্তমান মূল্যের নিচে প্রতিটি ধাপে একটি ক্রয়, তার উপরে প্রতিটি ধাপে একটি বিক্রয়। প্রতিবার বাজার নিচে নামলে, বট ক্রয় করে। প্রতিবার এটি উপরে ফিরে গেলে, বট নিচে যা কিনেছিল তা বিক্রি করে। এই প্রক্রিয়াটি ওঠানামা থেকে লাভ সংগ্রহ করে, এবং যখনই বাজার এক দিকে মই থেকে দূরে সরে যেতে থাকে, তখন এটি একটি খোলা অবস্থান জমা করে।
এই পৃষ্ঠাটি প্রক্রিয়াটিকে বিশ্লেষণ করে, তারপর দুটি বাজারের আকৃতি পরিমাপ করে যা এর ফলাফল নির্ধারণ করে। নিচের প্রতিটি প্যানেল প্রকৃত মার্কিন ইকুইটি মূল্যের উপর একটি সংরক্ষিত কোয়েরি, নির্দিষ্ট তারিখে পিন করা হয়েছে যাতে পরিসংখ্যানগুলি পুনরুৎপাদনযোগ্য থাকে।
একটি গ্রিড ট্রেডিং বট কীভাবে কাজ করে
তিনটি সেটিং একটি গ্রিড সংজ্ঞায়িত করে: পরিসরের উপরের এবং নিচের সীমা, এর ভিতরে লাইনের সংখ্যা এবং প্রতিটি লাইনে অর্ডারের আকার। লাইনগুলির মধ্যে ব্যবধান প্রথম দুটি থেকে অনুসরণ করে।
এখানে পাটিগণিতটি দেওয়া হল, যেখানে কোনো প্রকৃত উদ্ধৃতি থেকে নয় বরং স্পষ্টতার জন্য বেছে নেওয়া গোলাকার সংখ্যা ব্যবহার করা হয়েছে। ধরুন একটি স্টক $100 এর কাছাকাছি ট্রেড করছে এবং একজন অপারেটর $95 থেকে $105 পর্যন্ত একটি গ্রিড সেট করে যার মধ্যে এগারোটি লাইন এক ডলার ব্যবধানে এবং প্রতি লাইনে 100 শেয়ার রয়েছে। দাম $99 এ নেমে যায় এবং অপেক্ষমাণ ক্রয় পূর্ণ হয়। দাম $100 এ ফিরে আসে এবং মিলিত বিক্রয় পূর্ণ হয়, জোড়াটি বন্ধ করে মোট $100 লাভ হয়। উভয় অর্ডার পুনরায় সক্রিয় হয়। সেই ঘন্টায় কোম্পানি সম্পর্কে কিছুই পরিবর্তন হয়নি। অবস্থানটি কেবল দুটি সংলগ্ন ধাপের মধ্যে একটি রাউন্ড ট্রিপ সম্পন্ন করেছে।
পাবলিকলি প্রচারিত ওপেন-সোর্স প্রকল্পগুলিতে দুটি রূপ দেখা যায়। একটি পাটিগণিত গ্রিড একটি নির্দিষ্ট ডলার পরিমাণ দ্বারা লাইনগুলিকে ব্যবধান করে। একটি জ্যামিতিক গ্রিড একটি নির্দিষ্ট শতাংশ দ্বারা তাদের ব্যবধান করে, যা বিস্তৃত পরিসর জুড়ে প্রতি রাউন্ড ট্রিপে শতকরা মুনাফা স্থির রাখে। ডকুমেন্টেশন একটি নিরপেক্ষ গ্রিডকেও আলাদা করে, যা ফ্ল্যাট শুরু হয় এবং উভয় দিকে কাজ করে, একটি লং গ্রিড থেকে, যা ইনভেন্টরি ধরে রাখা শুরু করে এবং শক্তিতে বিক্রি করে।
পেঅফের আকৃতি একটি সরল বাক্য প্রাপ্য। একটি সম্পূর্ণ রাউন্ড ট্রিপে মুনাফা এক গ্রিড ধাপ বিয়োগ খরচের মধ্যে সীমাবদ্ধ। দাম পরিসর ছেড়ে গেলে যে খোলা অবস্থান তৈরি হয় তার সাথে কোনও মিলিত ক্যাপ থাকে না।
গ্রিডের প্রয়োজনীয় বাজারের আকৃতি
একটি গ্রিড ভ্রমণ দ্বারা অর্থ প্রদান করা হয়, দিক দ্বারা নয়। দুটি স্টক একই দামে শেষ করতে পারে বিভিন্ন দূরত্ব অতিক্রম করার পরে। প্রতিটি দৈনিক মুভের পরম আকার যোগ করলে মোট ভ্রমণ দূরত্ব পাওয়া যায়। নেট মুভকে সেই দূরত্ব দ্বারা ভাগ করলে একটি দক্ষতা অনুপাত পাওয়া যায়, একটি পথ কতটা দিকনির্দেশক ছিল তার একটি আদর্শ পরিমাপ। একটি নিম্ন অনুপাত একটি পথকে বর্ণনা করে যা ঘুরে বেড়িয়েছে। একটি উচ্চ অনুপাত একটি সরল পদযাত্রা বর্ণনা করে।
প্রতিটি সংখ্যার পেছনের সঠিক SQL
WITH daily AS (
SELECT ticker,
toDate(toTimeZone(window_start, 'America/New_York')) AS dt,
argMax(toFloat64(close), toTimeZone(window_start, 'America/New_York')) AS c
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('SPY','KO','PG','JNJ','VZ','MO','XOM','JPM','WMT','NVDA','TSLA','NFLX')
AND toDate(toTimeZone(window_start, 'America/New_York')) BETWEEN toDate('2024-01-02') AND toDate('2026-06-30')
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY ticker, dt
),
steps AS (
SELECT ticker, dt, c,
c / lagInFrame(c) OVER (PARTITION BY ticker ORDER BY dt) - 1 AS ret
FROM daily
)
SELECT ticker,
round(sum(abs(ret)) * 100, 0) AS travel_pct,
round(abs(argMax(c, dt) / argMin(c, dt) - 1) * 100, 1) AS net_move_pct,
round(100 * abs(argMax(c, dt) / argMin(c, dt) - 1) / sum(abs(ret)), 1) AS efficiency_pct
FROM steps
WHERE ret > -0.5 AND ret < 0.5
GROUP BY ticker
ORDER BY efficiency_pctপ্রথম এবং শেষ সারি একসাথে পড়ুন। PG ক্রমবর্ধমান দৈনিক গতিবিধির 527% কভার করেছে এবং যেখানে শুরু হয়েছিল সেখান থেকে 0.9% দূরে শেষ হয়েছে, দক্ষতা 0.2%। SPY 14.3% এ বিপরীত প্রান্তে বসে, 415% ভ্রমণকে 59.2% নেট মুভে পরিণত করে। প্রথম পথে স্থাপিত একটি গ্রিড মই বারবার তার নিজের ধাপগুলির সাথে মিলিত হয়। দ্বিতীয় পথে স্থাপিত একই মই পিছনে পড়ে যায়।
শান্ত এবং রেঞ্জ-বাউন্ড সম্পর্কিত কিন্তু স্বতন্ত্র বৈশিষ্ট্য। একটি স্টক খুব ছোট দৈনিক বৃদ্ধিতে উপরের দিকে ভেসে যেতে পারে এবং এখনও একটি গ্রিডকে আটকে রাখতে পারে, এটি একটি কারণ যে নিম্ন-অস্থিরতা অসঙ্গতি সাহিত্যে অধ্যয়ন করা নামগুলি স্বয়ংক্রিয়ভাবে গ্রিড উপাদান নয়।
রাউন্ড ট্রিপ গণনা করা
দক্ষতা একটি লেন্স। গ্রিড আয় আরও বাস্তব কিছুর উপর নির্ভর করে: কতবার দাম আসলে একটি স্তর পুনর্বিবেচনা করে। প্রতিটি ক্যালেন্ডার বছরের প্রথম ক্লোজে নোঙ্গর করে এবং সেই নোঙ্গরের বিপরীত দিকে যাদের ক্লোজ পড়ে সেই সেশনগুলি গণনা করলে একটি একক গ্রিড লাইন কতগুলি ক্রসিং ধরতে পারত তা পাওয়া যায়। কোকা-কোলা (KO) এখানে বিষয়, একটি বড়, তরল ভোক্তা নাম যা গ্রিড ডকুমেন্টেশন বৈশিষ্ট্যযুক্ত হতে থাকে।
প্রতিটি সংখ্যার পেছনের সঠিক SQL
WITH daily AS (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS dt,
argMax(toFloat64(close), toTimeZone(window_start, 'America/New_York')) AS c
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'KO'
AND toDate(toTimeZone(window_start, 'America/New_York')) BETWEEN toDate('2019-01-01') AND toDate('2025-12-31')
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY dt
),
anchored AS (
SELECT toYear(dt) AS year, dt, c,
first_value(c) OVER (PARTITION BY toYear(dt) ORDER BY dt) AS anchor
FROM daily
),
sided AS (
SELECT year, dt, c, anchor,
if(c >= anchor, 1, 0) AS side,
row_number() OVER (PARTITION BY year ORDER BY dt) AS rn,
lagInFrame(if(c >= anchor, 1, 0)) OVER (PARTITION BY year ORDER BY dt) AS prev_side
FROM anchored
)
SELECT year,
countIf(rn > 1 AND side != prev_side) AS crossing_count,
count() AS sessions,
round((argMax(c, dt) / any(anchor) - 1) * 100, 1) AS net_change_pct
FROM sided
GROUP BY year
ORDER BY year2019 সালে ক্লোজ তার নিজের উদ্বোধনী স্তরটি 252 সেশনে 8 বার অতিক্রম করেছে, বছরটি সেই স্তর থেকে 17.9% দূরে শেষ করেছে। 2025 সালে গণনাটি 250 সেশনে 6 ছিল, নেট পরিবর্তন 13%। একটি লাইন, একটি স্টক, এবং একটি গ্রিডের কাঁচামাল বছরের পর বছর কয়েকগুণ পরিবর্তিত হয় এবং আগামী বছরের গণনা আগে থেকে জানার কোনও উপায় নেই।
এই পরিবর্তনশীলতাই নীরব সমস্যা। একটি গ্রিডের বিজ্ঞাপিত রিটার্ন সাধারণত প্রতি সম্পূর্ণ রাউন্ড ট্রিপে উদ্ধৃত করা হয়, এবং রাউন্ড ট্রিপের সংখ্যা সেটিংসের পরিবর্তে বাজার দ্বারা নির্ধারিত হয়।
যেখানে একটি গ্রিড ভেঙে যায়
ব্যর্থতার মোডের একটি নির্দিষ্ট আকৃতি রয়েছে। একটি পরিসরে একটি গ্রিড ঠিক করুন, তারপর বাজারকে এটি ছেড়ে যেতে দিন। নীচে, সিলিং এবং ফ্লোর হল 2024 সালের প্রথম বিশটি সেশনের সর্বোচ্চ এবং সর্বনিম্ন ক্লোজ, পরবর্তী ত্রিশ মাস জুড়ে সমতল রাখা হয়েছে, S&P 500 ট্র্যাকারের মাসিক ক্লোজ তাদের বিপরীতে আঁকা হয়েছে।
প্রতিটি সংখ্যার পেছনের সঠিক SQL
WITH daily AS (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS dt,
argMax(toFloat64(close), toTimeZone(window_start, 'America/New_York')) AS c
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND toDate(toTimeZone(window_start, 'America/New_York')) BETWEEN toDate('2024-01-02') AND toDate('2026-06-30')
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY dt
),
opening_20 AS (
SELECT c FROM daily ORDER BY dt LIMIT 20
),
band AS (
SELECT min(c) AS grid_low, max(c) AS grid_high FROM opening_20
),
monthly AS (
SELECT toStartOfMonth(dt) AS month_start, argMax(c, dt) AS close_px
FROM daily
GROUP BY month_start
)
SELECT formatDateTime(monthly.month_start, '%Y-%m') AS month,
round(monthly.close_px, 2) AS spy_close,
round(band.grid_high, 2) AS grid_top,
round(band.grid_low, 2) AS grid_bottom
FROM monthly, band
ORDER BY monthly.month_startব্যান্ডটি $467.27 থেকে $491.26 পর্যন্ত চলে। সিরিজের প্রথম মাসটি $482.92 এ বন্ধ হয়েছে, এর ভিতরে। 30 মাসের শেষটি $746.32 এ বন্ধ হয়েছে, সিলিং থেকে অনেক উপরে, এবং চার্টটি লাইনটিকে ব্যান্ড ছেড়ে আর কখনও ফিরে না আসতে দেখায়।
সেই পথ ধরে মই কী করে তা দেখুন। পরিসরের মধ্য দিয়ে উঠতে গিয়ে, বট ধাপে ধাপে ইনভেন্টরি বিক্রি করে, প্রতিবার এক ধাপ মুনাফা ব্যাংক করে। সিলিংয়ের উপরে এটি নগদ ধরে রাখে এবং দেখে। অগ্রগতির প্রতিটি অতিরিক্ত পয়েন্ট হল একটি লাভ যাতে অপারেটর আর অংশগ্রহণ করে না, যা ব্যর্থতার মৃদু সংস্করণ।
গুরুতর সংস্করণটি হল মিরর ইমেজ। দাম ফ্লোরের নিচে পড়ে যায় এবং বট নিচের পথে প্রতিটি ধাপে কিনেছে, তাই এটি এখন বাজারের উপরে গড় খরচে ইনভেন্টরির সম্পূর্ণ মই ধরে রেখেছে, প্রতিটি অতিরিক্ত ধাপ অবাস্তব ক্ষতি প্রশস্ত করছে। একটি পরিসর যা একবার স্থির, ছোট, দৃশ্যত সফল ট্রেড তৈরি করেছিল তা একটি একক ঘনীভূত অবস্থানে পরিণত হয়। গ্রিড মার্কেটিং এটিকে বট "আটকে যাওয়া" হিসাবে বর্ণনা করে; একটি ব্রোকারেজ স্টেটমেন্টে এটি একটি অন্তর্নির্মিত প্রস্থান ছাড়াই একটি খোলা ড্রডাউন।
খরচ ট্রেড সংখ্যার সাথে স্কেল করে
একটি গ্রিড অনেক ছোট ট্রেড সম্পন্ন করে, এবং প্রতিটি একটি রাউন্ড ট্রিপের সম্পূর্ণ খরচ প্রদান করে: স্প্রেড, প্লাস কমিশন বা এক্সচেঞ্জ ফি যেখানে প্রযোজ্য। বিড-আস্ক স্প্রেড হল সেই অংশ যা প্রায়শই গ্রিড গণিত থেকে বাদ দেওয়া হয়, যেহেতু এটি একটি স্টেটমেন্টে একটি লাইন আইটেম হিসাবে কখনও দেখা যায় না।
দৃষ্টান্তমূলক পাটিগণিত দ্রুত। এক-সেন্ট স্প্রেড সহ $100 স্টকে, একটি রাউন্ড ট্রিপ যা উভয় পাশে স্প্রেড অতিক্রম করে প্রায় দুই সেন্ট, বা নোটিওনালের 0.02% ছেড়ে দেয়। এক-ডলার গ্রিড ধাপের বিপরীতে, এটি প্রতি ট্রিপে মোট মুনাফার প্রায় 2%। স্প্রেডকে পাঁচ সেন্টে প্রশস্ত করুন, একটি পাতলা নামের একটি রুটিন চিত্র, এবং একই ট্রিপ এক ডলার মোটের বিপরীতে দশ সেন্ট ছেড়ে দেয়, বা 10%। আরও ওঠানামা ধরতে গ্রিডকে দশ-সেন্ট ধাপে শক্ত করা প্রতি ট্রিপে মোট দশ সেন্টে কমিয়ে দেয় যখন খরচ অপরিবর্তিত থাকে, এবং পাঁচ-সেন্ট স্প্রেড এখন পুরো ট্রেড গ্রাস করে।
এই সম্পর্ক দরকারী গ্রিড ব্যবধানের অধীনে একটি মেঝে সেট করে: ধাপগুলি রাউন্ড-ট্রিপ খরচের তুলনায় বড় থাকতে হবে, এবং গ্রিড যত শক্ত হবে, তার আয়ের তত বেশি অংশ ভেন্যুর অন্তর্গত হবে, অপারেটরের নয়।
কেন ব্যাকটেস্ট গ্রিড বটগুলিকে চাটুকার করে
গ্রিড কৌশলগুলি অস্বাভাবিকভাবে আকর্ষণীয় ব্যাকটেস্ট তৈরি করে এবং চারটি কাঠামোগত কারণ এর বেশিরভাগ ব্যাখ্যা করে।
- পূর্বদৃষ্টি সহ পরিসর নির্বাচন। ডেটা দেখার পরে বেছে নেওয়া সীমানা ডেটা ধারণ করবে। একটি সময়ের সাথে খাপ খাইয়ে নেওয়া একটি গ্রিড যা রেঞ্জড ছিল সেই সময়ের উপর একটি উচ্চ হিট রেট দেখাবে।
- অসমাপ্ত মই। একটি নির্বাচিত শেষ তারিখে থামানো একটি পরীক্ষা প্রায়শই উদারভাবে অবশিষ্ট ইনভেন্টরির চিকিত্সা করার সময় উপলব্ধ রাউন্ড ট্রিপ গণনা করে। সৎ অ্যাকাউন্টিং চূড়ান্ত দিনে খোলা অবস্থানকে বাজার মূল্যে চিহ্নিত করে এবং ফলাফলে সেই ক্ষতি অন্তর্ভুক্ত করে।
- ফিল অনুমান। সিমুলেটেড অপেক্ষমাণ অর্ডার যখনই দাম তাদের স্পর্শ করে তখন পূর্ণ হয়। বাস্তব সারি সবসময় স্পর্শে পূর্ণ হয় না, এবং যে ট্রিপগুলি পূর্ণ হতে ব্যর্থ হয় সেগুলি দ্রুত বাজারে অসামঞ্জস্যপূর্ণভাবে লাভজনক।
- প্যারামিটার ঘনত্ব। সীমানা, লাইন গণনা, ব্যবধান এবং অর্ডার আকার একটি মূল্য সিরিজের উপর চারটি ডায়াল দেয়, যা প্রায় কোনও ঐতিহাসিক উইন্ডো ফিট করার জন্য যথেষ্ট।
উপরের ক্রসিং গণনাগুলি চারটির প্রতিটির পাল্টা ওজন। এগুলি একা মূল্য ইতিহাস থেকে আসে, কোনও সেটিং সংযুক্ত নেই, এবং তারা বছরের পর বছর এমনভাবে পরিবর্তিত হয় যা কোনও প্যারামিটার পছন্দ নিয়ন্ত্রণ করে না। যে কেউ একটি গ্রিড দাবি মূল্যায়ন করছে তারা এটি থেকে একটি একক প্রশ্ন জিজ্ঞাসা করতে পারে: এটি কতগুলি সম্পূর্ণ রাউন্ড ট্রিপের উপর নির্ভর করে এবং সেই গণনাটি কোথা থেকে এসেছে? একটি সিমুলেটরে অনুশীলনের একটি সময়কাল, শেষে খোলা মই বাজার মূল্যে চিহ্নিত সহ, উপলব্ধ ট্রিপের একটি চার্টের চেয়ে আরও সততার সাথে উত্তর দেয়।
FAQ
গ্রিড ট্রেডিং বট কি আসলে অর্থ উপার্জন করে?
একটি গ্রিড প্রতিটি সম্পূর্ণ রাউন্ড ট্রিপে একটি সীমাবদ্ধ মুনাফা অর্জন করে এবং দাম তার পরিসর ছেড়ে গেলে একটি অসীম খোলা অবস্থান বহন করে। উপলব্ধ ট্রিপগুলি যে কোনও সময়ের মধ্যে খোলা অবস্থানের চেয়ে বেশি কিনা তা নির্ভর করে বাজারটি সেই পরিসরের ভিতরে কতটা ওঠানামা করেছে, যা সফ্টওয়্যারের পরিবর্তে বাজারের একটি বৈশিষ্ট্য।
কোন বাজারের অবস্থা একটি গ্রিড বটের জন্য উপযুক্ত?
প্রক্রিয়াটি এমন একটি মূল্যের জন্য তৈরি করা হয়েছে যা বারবার একই স্তরে পুনর্বিবেচনা করে: নেট আন্দোলনের তুলনায় উচ্চ মোট ভ্রমণ দূরত্ব। উপরের বারো-নামের প্যানেলে, দক্ষতা অনুপাত 0.2% থেকে ঘোরাঘুরির প্রান্তে 14.3% পর্যন্ত দিকনির্দেশক প্রান্তে চলে, এবং মই প্রক্রিয়াটি শুধুমাত্র প্রথম প্রান্তে তার নিজের ধাপগুলির সাথে মিলিত হয়।
দাম গ্রিড পরিসর থেকে বেরিয়ে গেলে কী হয়?
পরিসরের উপরে বট তার ইনভেন্টরি বিক্রি করেছে এবং বাজার এটি ছাড়া চলতে থাকাকালীন নগদে বসে আছে। পরিসরের নিচে এটি নিচের পথে কেনা প্রতিটি ধাপ ধরে রাখে, বর্তমান মূল্যের উপরে গড় খরচে, এবং প্রতিটি আরও পতন সেই অবাস্তব ক্ষতি প্রশস্ত করে।
গ্রিড ট্রেডিং ডলার-কস্ট এভারেজিং থেকে কীভাবে আলাদা?
উভয়ই দাম কমলে বেশি কিনে, এবং সেখানেই মিল শেষ। ডলার-কস্ট এভারেজিং কোনও প্রস্থান নিয়ম এবং কোনও উপরের সীমা ছাড়াই একটি নির্দিষ্ট সময়সূচীতে একটি নির্দিষ্ট পরিমাণ যোগ করে। একটি গ্রিড আগে থেকে নির্বাচিত একটি পরিসরের ভিতরে মূল্য ট্রিগারে ক্রয় এবং বিক্রয় করে এবং দাম সেই পরিসর ছেড়ে গেলে এর আচরণ সম্পূর্ণরূপে পরিবর্তিত হয়।
টাইটার গ্রিড স্পেসিং কি বেশি আয় উৎপন্ন করে?
টাইটার স্পেসিং রাউন্ড ট্রিপের সংখ্যা বাড়ায় এবং প্রতিটিতে মোট মুনাফা কমায়, যখন রাউন্ড-ট্রিপ খরচ একই থাকে। স্প্রেড দ্বারা নির্ধারিত একটি বিন্দুর পরে, যোগ করা ট্রিপগুলি মোট যোগ করার পরিবর্তে বিয়োগ করে।
উপরের প্রতিটি চিত্র প্রকৃত ইকুইটি মূল্যের উপর একটি সংরক্ষিত, সংস্করণযুক্ত কোয়েরি থেকে আসে; এটি পরীক্ষা করতে যেকোনো প্যানেলের নিচে SQL খুলুন, অথবা স্ট্রাসমোর টার্মিনালে আপনার নিজের নামের তালিকায় নেট আন্দোলনের বিপরীতে ভ্রমণ পরিমাপ করুন।