grid trading bot kwa ukweli
Grid trading bot hununua kwenye kila ngazi ya chini na kuuza kwenye kila ngazi ya juu ndani ya safu iliyowekwa. Tazama umbo la soko linalolipa utaratibu huo na linalolivunja.
Botu ya biashara ya gridi huweka mpangilio wa maagizo kwa vipindi vya bei vilivyowekwa: agizo la kununua kwenye kila ngazi iliyo chini ya bei ya sasa, na agizo la kuuza kwenye kila ngazi iliyo juu yake. Kila wakati soko linaposhuka ngazi, botu hununua. Kila wakati linaporudi juu, botu huuza kile kilichonunuliwa chini. Utaratibu huu huvuna mabadiliko ya bei, na hujenga nafasi wazi wakati wowote soko linapoondoka kwenye ngazi hizo kuelekea upande mmoja na kuendelea.
Ukurasa huu unachambua utaratibu huo, kisha unapima maumbo mawili ya soko yanayoamua matokeo yake. Kila paneli iliyo chini ni swala lililohifadhiwa kwenye bei halisi za hisa za Marekani, lililowekwa kwenye tarehe maalum ili takwimu zibaki zikoweza kuzalishwa tena.
Jinsi bot ya biashara ya gridi inavyofanya kazi
Mipangilio mitatu inafafanua gridi: mipaka ya juu na ya chini ya safu, idadi ya mistari ndani yake, na ukubwa wa agizo katika kila mstari. Nafasi kati ya mistari inatokana na mipaka miwili ya kwanza.
Hesabu iko hapa, kwa kutumia namba kamili zilizochaguliwa kwa uwazi badala ya kutoka kwa nukuu yoyote halisi. Tuseme hisa inauzwa karibu $100 na mwendeshaji anaweka gridi kutoka $95 hadi $105 yenye mistari kumi na moja iliyotengwa kwa dola moja na hisa 100 kwa kila mstari. Bei inashuka hadi $99 na agizo la kununua linalosubiri linatimia. Bei inarudi hadi $100 na agizo la kuuza linalolingana linatimia, likifunga jozi kwa jumla ya $100. Maagizo yote mawili yanajipanga tena. Hakuna chochote kuhusu kampuni kilichobadilika katika saa hiyo. Nafasi ilikamilisha tu mzunguko wa kwenda na kurudi kati ya ngazi mbili za jirani.
Vibadala viwili vinaonekana katika miradi ya chanzo huria inayosambazwa hadharani. Gridi ya hesabu hutenganisha mistari kwa kiasi kisichobadilika cha dola. Gridi ya kijiometri hutenganisha mistari kwa asilimia isiyobadilika, ambayo inashikilia faida ya asilimia kwa kila mzunguko wa kwenda na kurudi thabiti katika safu pana. Nyaraka pia hutofautisha gridi isiyoegemea upande wowote, ambayo huanza sawa na inafanya kazi pande zote mbili, kutoka kwa gridi ndefu, ambayo huanza kushikilia orodha na kuuza wakati nguvu inapoongezeka.
Sura ya malipo inastahili sentensi moja wazi. Faida kwenye mzunguko kamili wa kwenda na kurudi imewekewa kikomo cha hatua moja ya gridi ukiondoa gharama. Nafasi wazi inayojengwa wakati bei inapoondoka kwenye safu haina kikomo cha kulinganisha.
Umbo la soko linalohitajika kwa gridi
Gridi hulipwa kwa safari, si kwa mwelekeo. Hisa mbili zinaweza kumaliza kipindi kwa bei moja baada ya kusafiri umbali tofauti kabisa. Kujumlisha ukubwa kamili wa kila mwendo wa kila siku kunatoa jumla ya umbali uliosafiriwa. Kugawanya mwendo halisi kwa umbali huo kunatoa uwiano wa ufanisi, kipimo sanifu cha jinsi njia ilivyokuwa ya mwelekeo. Uwiano wa chini unaelezea njia iliyotangatanga. Uwiano wa juu unaelezea mwendo wa moja kwa moja.
SQL halisi nyuma ya kila namba
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_pctSoma safu ya kwanza na ya mwisho pamoja. PG ilifunika 527% ya mwendo wa kila siku uliojilimbikiza na kumaliza 0.9% kutoka mahali ilipoanza, ufanisi wa 0.2%. SPY iko upande wa pili kwa 14.3%, ikigeuza 415% ya safari kuwa mwendo halisi wa 59.2%. Ngazi ya gridi iliyowekwa kwenye njia ya kwanza hukutana na nguzo zake mara kwa mara. Ngazi hiyo hiyo iliyowekwa kwenye njia ya pili inabaki nyuma.
Utulivu na kukaa katika mwendo ni sifa zinazohusiana lakini tofauti. Hisa inaweza kuteleza juu kwa nyongeza ndogo sana za kila siku na bado kuacha gridi imekwama, ambayo ni sababu moja kwa nini majina yaliyochunguzwa katika fasihi ya hitilafu ya chini ya mabadiliko si nyenzo za gridi kiotomatiki.
Counting the round trips
Efficiency is one lens. Grid income depends on something more concrete: how many times price actually revisits a level. Anchoring on the first close of each calendar year and counting the sessions whose close lands on the opposite side of that anchor gives the number of crossings a single grid line would have caught. Coca-Cola (KO) is the subject here, a large, liquid consumer name of the sort grid documentation tends to feature.
SQL halisi nyuma ya kila namba
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 yearIn 2019 the close crossed its own opening level 8 times across 252 sessions, ending the year 17.9% from that level. In 2025 the count was 6 over 250 sessions, with a net change of 13%. One line, one stock, and the raw material for a grid varies several-fold from year to year with no way to know the coming year's count in advance.
That variability is the quiet problem. A grid's advertised return is usually quoted per completed round trip, and the number of round trips is set by the market rather than by the settings.
Mahali gridi inapovunjika
Hali ya kushindwa ina umbo maalum. Weka gridi katika safu fulani, kisha acha soko liondoke. Hapo chini, dari na sakafu ni viwango vya juu na vya chini kabisa vya kufunga vya vipindi ishirini vya kwanza vya mwaka 2024, vilivyowekwa sawa katika miezi thelathini iliyofuata, huku kufunga kwa mwezi kwa kifuatiliaji cha S&P 500 kikichorwa dhidi yake.
SQL halisi nyuma ya kila namba
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_startUkanda unaanzia $467.27 hadi $491.26. Mwezi wa kwanza katika mfululizo ulifungwa kwa $482.92, ndani yake. Mwezi wa mwisho kati ya 30 miezi ulifungwa kwa $746.32, juu kabisa ya dari, na chati inaonyesha mstari ukiondoka kwenye ukanda na haurudi tena.
Tembea uone kile ngazi inachofanya kwenye njia hiyo. Inapopanda ndani ya safu, bot inauza orodha ngazi kwa ngazi, ikikusanya hatua moja ya faida kila wakati. Juu ya dari inashikilia pesa taslimu na kutazama. Kila hatua zaidi ya kupanda ni faida ambayo mwendeshaji hashiriki tena, ambayo ni toleo la wastani la kushindwa.
Toleo kali ni kioo cha picha. Bei inashuka kupitia sakafu na bot imenunua kwenye kila ngazi njiani kushuka, kwa hivyo sasa inashikilia ngazi kamili ya orodha kwa wastani wa gharama juu ya soko, huku kila hatua zaidi ikiongeza hasara isiyotambuliwa. Safu iliyowahi kutoa biashara thabiti, ndogo, na zilizofanikiwa kwa macho inageuka kuwa nafasi moja iliyojilimbikizia. Uuzaji wa gridi unaelezea hii kama bot "imekwama"; kwenye taarifa ya udalali ni upungufu wazi usio na njia ya kutoka iliyojengwa ndani.
Gharama hukua kadri ya idadi ya biashara inavyoongezeka
Gridi hukamilisha biashara ndogo nyingi, na kila moja hulipa gharama kamili ya safari ya kwenda na kurudi: spread, pamoja na ada za wakala au ada za ubadilishanaji pale zinapotumika. Spread ya bei ya kununua na kuuza ndiyo sehemu inayoachwa mara nyingi katika hesabu za gridi, kwa kuwa haionekani kamwe kwenye taarifa kama bidhaa ya mstari.
Hesabu ya mfano ni rahisi. Kwenye hisa ya $100 yenye spread ya senti moja, safari ya kwenda na kurudi inayovuka spread pande zote mbili hutoa takriban senti mbili, au 0.02% ya thamani halisi. Dhidi ya hatua ya gridi ya dola moja, hiyo ni takriban 2% ya faida ghafi kwa safari. Panua spread hadi senti tano, kiwango cha kawaida kwenye hisa nyembamba, na safari hiyo hiyo hutoa senti kumi dhidi ya dola moja ya faida ghafi, au 10%. Kukaza gridi hadi hatua za senti kumi ili kunasa mabadiliko zaidi kunapunguza faida ghafi kwa safari hadi senti kumi huku gharama ikibaki bila kubadilika, na spread ya senti tano sasa inakula biashara nzima.
Uhusiano huo unaweka kiwango cha chini cha nafasi muhimu ya gridi: hatua lazima zibaki kubwa ikilinganishwa na gharama za safari ya kwenda na kurudi, na kadri gridi inavyozidi kuwa nyembamba, ndivyo mapato yake mengi yanavyokuwa mali ya soko badala ya mwendeshaji.
Kwa nini majaribio ya nyuma yanapendelea boti za gridi
Mikakati ya gridi hutoa majaribio ya nyuma yenye mvuto wa ajabu, na sababu nne za kimuundo ndizo zinazochangia zaidi.
- Uchaguzi wa mipaka kwa kutumia ufahamu wa nyuma. Mipaka iliyochaguliwa baada ya kuona data itajumuisha data hiyo. Gridi iliyowekwa kwa kipindi kilichobadilika itaonyesha kiwango cha juu cha mafanikio katika kipindi hicho.
- Ngazi isiyofungwa. Jaribio linaloacha siku iliyochaguliwa ya mwisho mara nyingi huhesabu safari za mzunguko zilizokamilika huku likishughulikia hesabu iliyobaki kwa ukarimu. Uhasibu wa uaminifu huweka alama ya wazi kwa soko siku ya mwisho na kujumuisha hasara hiyo katika matokeo.
- Mawazo ya utimilizaji. Maagizo yaliyowekwa kwenye simulizi hutimilizwa wakati bei inapogusa. Foleni halisi hazitimilizi kila wakati kwa mguso, na safari ambazo hazitimilizi kwa kiasi kikubwa ni zile zenye faida katika masoko ya haraka.
- Uzito wa vigezo. Mipaka, idadi ya mistari, nafasi, na ukubwa wa agizo hutoa vigezo vinne juu ya mfululizo mmoja wa bei, ambavyo vinatosha kutoshea karibu dirisha lolote la kihistoria.
Hesabu za kuvuka hapo juu ni kipingamizi cha zote nne. Zinatoka kwa historia ya bei pekee, bila mipangilio yoyote, na hubadilika mwaka hadi mwaka kwa njia ambayo hakuna chaguo la kigezo linalodhibiti. Mtu yeyote anayetathmini dai la gridi anaweza kuuliza swali moja: inategemea safari ngapi za mzunguko zilizokamilika, na hesabu hiyo ilitoka wapi? Kipindi cha mazoezi kwenye simulator, na ngazi wazi ikiwekwa alama ya soko mwishoni, hujibu swali hilo kwa uaminifu zaidi kuliko chati ya safari zilizokamilika.
Maswali Yanayoulizwa Mara kwa Mara
Je, boti za gridi za biashara zinapata pesa kweli?
Gridi hupata faida iliyowekewa kikomo kwenye kila mzunguko kamili na hubeba nafasi wazi isiyo na kikomo wakati bei inapoondoka kwenye anuwai yake. Ikiwa mizunguko iliyotekelezwa inazidi nafasi wazi kwa kipindi chochote inategemea ni kiasi gani soko lilizunguka ndani ya anuwai hiyo, ambayo ni sifa ya soko wenyewe badala ya programu.
Je, hali gani za soko zinafaa boti ya gridi?
Utaratibu umeundwa kwa bei inayorudi tena na tena kwenye viwango vile vile: umbali wa juu uliosafiriwa kuhusiana na mwendo halisi. Katika paneli ya majina kumi na mawili hapo juu, uwiano wa ufanisi ulianzia 0.2% upande unaotangatanga hadi 14.3% upande unaoelekea, na utaratibu wa ngazi hukutana na ngazi zake wenyewe tu upande wa kwanza.
Nini kinatokea wakati bei inapovunja anuwai ya gridi?
Juu ya anuwai boti imeuza hesabu yake na inakaa kwenye fedha taslimu wakati soko likiendelea bila yake. Chini ya anuwai inashikilia kila ngazi iliyonunuliwa njiani kushuka, kwa wastani wa gharama juu ya bei ya sasa, na kila kushuka zaidi kunapanua hasara hiyo isiyotekelezwa.
Je, biashara ya gridi inatofautianaje na wastani wa gharama kwa dola?
Zote mbili hununua zaidi bei inaposhuka, na hapo ndipo kufanana kunaishia. Wastani wa gharama kwa dola huongeza kiasi kisichobadilika kwa ratiba isiyobadilika bila kanuni ya kutoka na bila kikomo cha juu. Gridi hununua na kuuza kwa vichochezi vya bei ndani ya anuwai iliyochaguliwa mapema, na tabia yake inabadilika kabisa mara bei inapoondoka kwenye anuwai hiyo.
Je, nafasi nyembamba za gridi huzalisha mapato zaidi?
Nafasi nyembamba huongeza idadi ya mizunguko na kupunguza faida ya jumla kwa kila mzunguko, wakati gharama ya mzunguko inabaki sawa. Zaidi ya hatua iliyowekwa na spread, mizunguko iliyoongezwa inatoa kutoka kwa jumla badala ya kuiongezea.
Kila takwimu hapo juu inatokana na swala lililohifadhiwa na lenye toleo juu ya bei halisi za hisa; fungua SQL chini ya paneli yoyote ili kukagua, au pima mwendo dhidi ya mwendo halisi kwenye orodha yako mwenyewe ya majina kwenye terminal ya Strasmore.