ग्रिड ट्रेडिंग बॉट प्रामाणिकपणे तपासणी
ग्रिड ट्रेडिंग बॉट निश्चित श्रेणीत प्रत्येक पायरीवर खरेदी-विक्री करतो. बाजाराचा कोणता आकार यंत्रणेसाठी फायदेशीर आहे आणि कोणता तो मोडतो हे पहा.
ग्रिड ट्रेडिंग बॉट एका निश्चित किंमत अंतरावर ऑर्डरची शिडी लावते: सध्याच्या किंमतीखाली प्रत्येक पायरीवर खरेदी, वर प्रत्येक पायरीवर विक्री. बाजार खाली आला की बॉट खरेदी करतो. परत वर आला की कमी किंमतीला विकत घेतलेले विकतो. ही यंत्रणा चढ-उतारातून नफा मिळवते, पण बाजार एकाच दिशेने शिडीपासून दूर गेला आणि सतत गेला तर ती खुली पोझिशन जमा करते.
हे पान यंत्रणेचे विश्लेषण करते, नंतर त्याचा निकाल ठरवणाऱ्या दोन बाजार आकारांचे मोजमाप करते. खालील प्रत्येक पटल हे वास्तविक यूएस इक्विटी किमतींवरील साठवलेली क्वेरी आहे, जी निश्चित तारखांना बांधलेली आहे जेणेकरून आकडे पुनरुत्पादक राहतील.
ग्रिड ट्रेडिंग बॉट कसे काम करते
तीन सेटिंग्ज ग्रिड परिभाषित करतात: श्रेणीची वरची आणि खालची मर्यादा, त्यातील रेषांची संख्या, आणि प्रत्येक रेषेवरील ऑर्डरचा आकार. रेषांमधील अंतर पहिल्या दोनवरून ठरते.
येथे अंकगणित आहे, कोणत्याही वास्तविक कोटपेक्षा स्पष्टतेसाठी निवडलेल्या गोल आकड्यांचा वापर करून. समजा एखादा स्टॉक $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 मध्ये बंदने स्वतःची उघडण्याची पातळी 8 वेळा 252 सत्रांमध्ये ओलांडली, वर्ष त्या पातळीपासून 17.9% अंतरावर संपवले. 2025 मध्ये 6 सत्रांमध्ये संख्या 250 होती, निव्वळ बदल 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 उघडा, किंवा स्ट्रासमोर टर्मिनलवर तुमच्या स्वतःच्या नावांच्या यादीवर प्रवास विरुद्ध निव्वळ हालचाल मोजा.