← Դեպի փաստաթղթեր
LootX

Շուկայի տվյալները՝ footprint cluster-ներ, delta, open interest, order book

Կազմվել է: 2026-10-01 docs.lootx.trade
Основы

1Շուկայի տվյալները՝ footprint cluster-ներ, delta, open interest, order book

LootScript-ով սկրիպտը մոմերից բացի կարդում է՝ footprint cluster-ներ, delta, open interest, funding rate, սերվերի գրանցած order book-ի պատմությունը, կենդանի order book և time and sales, screener-ի մետրիքները, այլ timeframe և այլ գործիք։

Բացի մոմերից՝ LootScript-ով սկրիպտը կարդում է պատվերի հոսքի տվյալներ՝ footprint cluster-ներ, delta, open interest, funding rate, սերվերի գրանցած order book-ի պատմությունը, կենդանի order book և time and sales, screener-ի մետրիքները։ Մի միավոր միացնել հարկավոր չէ: երբ սկրիպտը դիմում է, օրինակ, cluster.poc, տերմինալը ինքնաբերաբար բաժանորդագրվում է տվյալ գործիքի և գրաֆիկի timeframe-ի clusters-ին — նույնիսկ եթե գրաֆիկը ցույց է տալիս սովորական մոմեր։ Երբ սկրիպտը հանվում է գրաֆիկից, բաժանորդագրությունը ազատվում է։

Այս էջում բացատրված է՝ ինչ կա յուրաքանչյուր namespace-ում, որտեղից են գալիս տվյալները, ո՞ր բորսաներում դրանք հասանելի են և ինչպես վերցնել արժեքը այլ timeframe-ից կամ այլ գործիքից։

Հիմնական կանոնը՝ տվյալ չկա — դա na է, ոչ թե 0

Այս էջի ցանկացած արժեք կարող է լինել na. Դա լինում է, երբ բորսան չի ծածկված տվյալների սերվերով, timeframe-ը չի աջակցվում, պատմությունը դեռ բեռնում է կամ բարն ավելի հին է, քան հասանելի պատմությունը։ Զրոն կնշանակեր՝ «տրադերներ չկան», ինչը ուրիշ հանգամանք է. զրոյով լրացված կուտակված գումարը կարող է թվալ հավաստի, բայց սխալ լինել։

Յուրաքանչյուր տարածքի (namespace) համար կա առկայության ֆլագ — cluster.available, delta.available, oi.available և այլն։ Թեստավորեք այն կամ օգտագործե՛ք ֆունկցիան na(x). Կոմպիլյատորը չի թույլատրի համեմատություն == na-ի հետ։

Loot
indicator("Накопленная дельта без подмены нулём", overlay = false)
var float cvd = 0.0
if delta.available {
    cvd := cvd + delta.value
}
plot(delta.available ? cvd : na, "CVD", color = color.teal)

Ինչու տվյալներ չկան՝ ցույց է տալիս գրաֆիկի լեգենդը՝ սկրիպտի անունից մոտ՝ «բորսան չի ընդգրկվել», «timeframe-ը չի աջակցվում», «տվյալները բեռնում են…», «չկա բաց order book», «screener-ը մատչելի չէ»։

Ինչից են գալիս տվյալները

Пространство Что это История на графике
cluster.* Footprint cluster-ներ բարի վրա՝ ծավալը ըստ գնի մակարդակների Ունի, գալիս է cluster սերվերից
delta.* Delta՝ ագրեսիվ գնումների և վաճառքների տարբերությունը Ունի
oi.* Open interest Ունի
funding.* Funding rate և դրա հաշվարկները Ունի
depth.* Սերվերի գրանցած order book, քմածել՝ բարերով Ունի, սահմանափակ խորությամբ
book.* Կենդանի order book Միայն վերջին բար
tape.* Կենդանի time and sales (լենտա) Միայն վերջին բար
screener.* Screener-ի մետրիքները տվյալ գործիքի համար Միայն վերջին բար

Կլաստերներ: cluster.*

Բարի յուրաքանչյուր գինային մակարդակի ծավալը՝ բաժանված ագրեսիվ գնումների ու վաճառքների — նույն տվյալներն են, որոնք նկարում է footprint chart. Մարզերը (levels) թվագրված են ներքևից վեր՝ 0-ից մինչև cluster.levels - 1:

Անուն Ինչ է վերադարձնում
cluster.available Ցույց է տալիս՝ արդյոք կա cluster այս բարի համար
cluster.levels Բարի գինային մակարդակների քանակը
cluster.price(i) i մակարդակի գինը
cluster.bid(i) Ագրեսիվ գնումներ տվյալ մակարդակում (bid կողմից կատարված գործարքներ)
cluster.ask(i) Ագրեսիվ վաճառքներ տվյալ մակարդակում
cluster.total Բարի ամբողջ ծավալը
cluster.delta Գնումներ մինուս վաճառքներ բոլոր մակարդակների վրա
cluster.poc, cluster.poc_index Գինը և մակարդակի ինդեքսը, որտեղ ամենամեծ ծավալն է (POC)
cluster.max_cell Բարի ամենամեծ բջջի ծավալը
cluster.imbalance(i) Մակարդակի անհավասարակշռությունը՝ +1 գնում, -1 վաճառք, 0՝ ոչինչ
cluster.stacked_buy, cluster.stacked_sell Գինը, որտեղ սկսվում է ամենաերկար հաջորդականությունն անհավասարակշռության մակարդակներով
cluster.stacked_buy_steps, cluster.stacked_sell_steps Այդ շարքի երկարությունը մակարդակներով
cluster.value_area(pct) Value area-ի (արժեքի գոտու) ստորին և վերին սահմանները; pct — ծավալի մասնաբաժինը, 0.7 = 70 %
cluster.grid_step Բարի գրաֆիկի գների ցանցի քայլը

Ուշադրություն՝ cluster.bid(i) նշանակում է այն գնումները, որոնք «նվազեցնում են» ask-ի կողմը (агрессивно сняли аск), ոչ թե order book-ի մեջ գտնվող գնման հայտերը։

Կլաստերները հասանելի են timeframe-ներում՝ սկսած 30 վայրկյանից մինչև 1 օր։

Loot
indicator("POC и зона стоимости", overlay = true)
[vaLow, vaHigh] = cluster.value_area(0.7)
plot(cluster.poc, "POC", color = color.orange, style = plot.style_circles)
plot(vaHigh, "Верх зоны", color = color.gray, style = plot.style_linebr)
plot(vaLow, "Низ зоны", color = color.gray, style = plot.style_linebr)

Дельта: delta.*

Delta — ագրեսիվ գնումների և վաճառքների տարբերությունը մեկ բարում. Ծավալները հաշվարկվում են մոնետաներով (բազային արժույթով):

Անուն Ինչ է վերադարձնում
delta.value Բարի դելտա՝ գնումներ մինուս վաճառքներ
delta.buy, delta.sell Դրանց մասերը առանձinsky
delta.cum Կուտակված դելտա՝ բեռնված պատմության սկիզբից
delta.min, delta.max Դելտայի ընթացքի մինիմումը և մաքսիմումը բարի ներսում
delta.open, delta.high, delta.low, delta.close Դելտայի բար՝ որպես մոմ
delta.trades Գործարքների թիվը բարի մեջ
delta.usd Դելտա՝ քվոտայի արժույթի մեջ՝ ըստ գործարքների գումարների
delta.available Ցույց է տալիս՝ արդյոք կա դելտա այս բարի համար

delta.min և delta.max-ը հաշվարկվում են սերվերի կողմից՝ դրանք ցույց են տալիս դելտայի անցքը բարում. ըստ դրանց կարելի է տեսնել, թե գնողները бар-ն են վարել, իսկ վաճառողները փակել են այն։ delta.usd հաճախ ճշգրիտ է քան delta.value * close, քանի որ արագ բարի վրա գործարքների գինը կարող է շատ տարբեր լինել փակման գներից։

delta.cum սկսվում է զրոյից բեռնված պատմության առաջին բարի վրա, ուստի նրա մակարդակը կախված է բեռնման խորությունից։ Համեմատել պետք է փոփոխությունները, ոչ ամբողջական արժեքները։

Delta-ն հասանելի է timeframe-ներում, սկսած 30 վայրկյանից։

Loot
indicator("Дельта и разворот внутри бара", overlay = false)
d = delta.value
reversed = delta.available and d < 0 and delta.max > -d
plot(d, "Дельта", style = plot.style_columns, color = d >= 0 ? color.teal : color.red)
plotshape(reversed, "Разворот", style = shape.xcross, location = location.top, color = color.orange, size = size.tiny)

Open interest: oi.*

Անուն Ինչ է վերադարձնում
oi.open, oi.high, oi.low, oi.close Open interest բարի մեկավորներով, որոնք հրապարակում է բորսան
oi.coins Open interest մոնետաներով
oi.usd Open interest քվոտայի գումարով
oi.change oi.close-ի փոփոխությունը նախորդ բարի նկատմամբ
oi.available Ցույց է տալիս՝ արդյոք տվյալներ կան այս բարի համար

Բորսաներում oi.open…oi.close միավորը կարող է տարբեր լինել, այդ պատճառով բորսաներ համեմատելիս օգտագործեք oi.coins կամ oi.usd. Open interest գալիս է րոպեական ցանցով՝ դրա համար second timeframes-ում բոլոր արժեքները կլինեն na։

Loot
indicator("Цена и открытый интерес", overlay = false)
dp = ta.change(close)
build = oi.available and dp > 0 and oi.change > 0
plot(oi.change, "Изменение OI", style = plot.style_columns, color = build ? color.teal : color.gray)

Funding: funding.*

Անուն Ինչ է վերադարձնում
funding.rate Հաջորդ հաշշարկման կանխատեսված ставка-ն
funding.interval_hours Ժամերի քանակը հաշվարկների միջև
funding.settled true է բարի համար, երբ հաշշարկումը կատարվել է
funding.settled_rate Քանի է իրականում списано այն բարի համար; եթե մի բարի մեջ եղել է մի քանի հաշվարկ՝ դրանք գումարվում են
funding.cum Բեռնված պատմության ընթացքում հավաքված списанные ставки
funding.available Ցույց է տալիս՝ արդյոք այս ինստրում ունի funding rate

Ставка նշվում է որպես բաժին, ոչ տոկոս: օրինակ 0.0001 նշանակում է 0.01 %. Գրաֆիկը ցույց է տալիս տոկոսը, լեզուն ոչինչ չի վերածում։ Պայմանների ստուգման համար նախընտրելի է օգտագործել funding.settled_rate-ը, քանի որ funding.rate-ը կանխատեսում է և կարող է փոխվել մինչև հաշվարկը։ Սպոտում funding rate չկա, իսկ second timeframes-ներում արժեքները կլինեն na։

Loot
indicator("Фандинг за расчёт, %", overlay = false)
plot(funding.rate * 100, "Прогноз ставки", style = plot.style_area, color = funding.rate >= 0 ? color.teal : color.red)
plotshape(funding.settled, "Расчёт", style = shape.circle, location = location.bottom, color = color.orange, size = size.tiny)

История order book: depth.*

Order book՝ այն տեսքով, ինչպես այն գրանցել է սերվերը — նույն տվյալները, ինչ ցույց է տալիս ջերմաքարտեզը, տարանջատված բարերով։ Պատկերացնում է այն գոտիները (բասկետները), որոնցում գները խմբավորված են՝ և յուրաքանչյուր բասկետի ծավալը բարի ընթացքում։ Վերջին բջիջի ծավալը հաշվարկվում է մոնետաներով։

Անուն Ինչ է վերադարձնում
depth.available Ցույց է տալիս՝ արդյոք գրանցված order book կա այս բարի համար
depth.levels Բարի ոչ դատարկ բասկետների քանակը
depth.price(i) i բասկետի ստորին սահմանը՝ աճման կարգով
depth.qty(i) Բարում բասկետում դիտվող առավելագույն ծավալը
depth.side(i) +1 bid-եր, -1 ask-եր, 0՝ բասկետը եղել է երկկողմանի
depth.at(price) Ծավալը բասկետում, որտեղ մտնում է այդ գինը
depth.grid_step Բասկետի չափը գնի միավորներով
depth.best_bid, depth.best_ask Լավագույն գները բարի ավարտին
depth.max_cell Բասկետների մեջ ամենաբրոտը ծավալով
depth.bid_sum(pct), depth.ask_sum(pct) Սեղմում կողմի ծավալը pct % շերտում կենտրոնից
depth.imbalance(pct) Պահված շերտում անհավասարակշռությունը՝ -1 մինչև +1
depth.max_bid(pct), depth.max_ask(pct) Սայրի մեջ ամենագեր բասկետի գինն ու ծավալը

Նշումներ և սահմանափակումներ:

  • Դրանք հասանելի են այնտեղ, որտեղ սերվերի ջերմաքարտեզը աշխատում է, և timeframe-ներում սկսած մի վայրկյանից (second timeframes)։
  • Սերվերը պահում է ուղիղ մոտավորապես ±4 %-անոց ժապավեն գնի շուրջը. դրա սահմաններից դուրս depth.at վերադարձնում է na, իսկ ժապավենի ներսում դատարկ բասկետը վերադարձնում է 0։
  • Պատմության խորությունը սահմանափակ է. առավել հին բարերը լռեցնելը թույլատրում է na վերադարձ։
  • Առաջիկա, կառուցվող բարի արժեքները փոխվում են տվյալների ժամանման ժամանակ։
Loot
indicator("Перекос записанного стакана", overlay = false)
band = input.float(1.0, "Полоса, % от цены", minval = 0.1, maxval = 4.0, step = 0.1)
imb = depth.imbalance(band)
plot(imb, "Перекос", style = plot.style_columns, color = imb >= 0 ? color.teal : color.red)

Սերվերի գրանցած order book-ը մոմերի տակ նկարելու համար բավական է մեկ տող՝ heatmap.depth() յուրաքանչյուր սկրիպտում, երբ overlay = true. Գույները և շերտերի պարամետրերը կարելի է փոխել էջում Настройки и отрисовка.

Loot
indicator("Записанный стакан теплом", overlay = true)
heatmap.config(palette = heatmap.inferno, low = 25)
heatmap.depth()

Կենդանի order book և time and sales: book.* և tape.*

Կենդանի order book- և time and sales-ը ոչ մի տեղ չեն գրանցվում, այդ պատճառով արժեքները հասանելի են միայն վերջին բարում, իսկ պատմության վրա միշտ na. Դրանց համար պետք է բաց վահանակ order book նույն ինստրում, հակառակ դեպքում book.available և tape.available կլինեն սխալական (false), և լեգենդում կհայտնվի «չկա բաց order book». Վերարտադրության (replay) режиме այս տվյալները հասանելի չեն։

Անուն Ինչ է վերադարձնում
book.bid(i), book.ask(i) i մակարդակի գինը; 0 նշանակում է ամենալավ գինը
book.bid_qty(i), book.ask_qty(i) Այս մակարդակում եղած ծավալը մոնետաներով
book.spread Լավագույն ask - լավագույն bid
book.mid Լավագույն գների միջինը
book.imbalance(n) Առջևի n մակարդակների անհավասարակշռությունը՝ յուրաքանչյուր կողմի համար՝ -1…+1
book.available Ցույց է տալիս՝ արդյոք կա snapshot order book
tape.last_price, tape.last_qty Վերջին գործարքի գինն ու ծավալը
tape.last_side +1 գնող-ագրեսոր, -1 վաճառող, 0՝ դեռ գործարքներ չեն եղել
tape.count(ms) Գործարքների քանակը վերջին ms միլիվայրկյանների ժամանակային պատուհանում
tape.buy_volume(ms), tape.sell_volume(ms) Ագրեսիվ գնումների և վաճառքների ծավալը պատուհանում
tape.max_print(ms) Պատուհանի ամենամեծ գործարքը
tape.available Ցույց է տալիս՝ արդյոք time and sales-ն միացված է

Time and sales պատուհանը և book.imbalance-ի խորությունը задаются կոդում թիվով կամ input.int-ով: պատուհանը հաշվարկվում է վերջին բորսայի գործարքի ժամանակից, ոչ ձեր համակարգչի ժամից։ Սկրիպտը տեսնում է միայն time and sales-ի վերջը՝ մոտավորապես երկու հազար վերջին գործարքները, այնպես որ ակտիվ շուկայում երկար պատուհանը կարող է չցուցադրել ամբողջ ինտերվալը։

Երբ այս արժեքները naudojվում են plot-ում, Խմբագրիչը մի նախազգուշացում ցույց է տալիս՝ «Տվյալները հասանելի են միայն իրական ժամանակում — պատմության վրա շարքը դատարկ է». դա սպասելի է՝ երկրորդական էությունը: պատմության ձախ մասը դատարկ է։ Այս տվյալները չէ կարելի օգտագործել ռազմավարությունների համար — տես Стратегии и тестер.

Loot
indicator("Перекос стакана", overlay = false)
levels = input.int(20, "Уровней с каждой стороны", minval = 1, maxval = 200)
imb = book.available ? book.imbalance(levels) : na
plot(imb, "Перекос", style = plot.style_area, color = imb >= 0 ? color.teal : color.red)
hline(0, "Ноль", color = color.gray)

Screener: screener.*

Գրաֆիկի ինստրումը համար screener-ի մետրիքները նույն արժեքներն են, ինչ նրա սյունակներում։ Պատմություն դրա համար չկա; արժեքը գոյություն ունի միայն վերջին բարում։ Պատուհանը (window) задаётся որպես տող (string), և ոչ բոլոր մետրիկաներում կան բոլոր պատուհանները։

Ֆունկցիա Ինչ է ցույց տալիս Տարբեր պատուհաններ
screener.change(w) Գնի փոփոխություն "1m" "5m" "15m" "1h" "24h"
screener.vol(w) Տրանզակցիոն շրջանառություն "1m" "5m" "15m" "1h" "24h"
screener.avg_vol(w) Միջին շրջանառություն "1m" "5m" "15m" "1h"
screener.rvol(w) Հարաբերական ծավալ (RVOL) "1h" "24h"
screener.natr(w) NATR "1m" "5m"
screener.oi_delta(w) Open interest-ի փոփոխություն "1m" "5m" "1h" "24h"
screener.btc_corr(w) Կապունակություն BTC-ի հետ "1m" "5m"
screener.available Ցույց է տալիս՝ արդյոք ինստրումին տեխնիկապես մատչելի է screener-ը —

Տվյալ պատուհանների բացակայությունը վերադարձնում է na. Մետրիկա, որը դուրս է ձեր screener բաժանորդագրությունից, նույնպես վերադարձնում է na. Խմբագրիչը նույն նախազգուշացումը ցույց է տալիս, ինչպես order book-ի դեպքում՝ պատմության վրա շարքը դատարկ է։

Loot
indicator("Скринер: RVOL и NATR", overlay = false)
plot(screener.rvol("1h"), "RVOL 1h", color = color.orange)
plot(screener.natr("5m"), "NATR 5m", color = color.teal)

Բորսաների ընդգրկում

Բորսա Կլաստերներ և delta Open interest և funding rate
Binance, Bybit, OKX, Bitget, Gate.io, MEXC, KuCoin, BingX, AsterDEX Սպոթ և futures Futures
Hyperliquid Futures; սպոթ — ոչ Futures
Binance Alpha Ոչ՝ բորսան չի հրապարակում ագրեսոսի կողմը Ոչ
Upbit Ոչ Ոչ
Տրամադրված տվյալ Timeframe-ներ
Կլաստերներ 30 վայրկյանից մինչև 1 օր
Դելտա 30 վայրկյանից և բարձր
Open interest, funding rate 1 րոպեից և բարձր
Գրանցված order book-ի պատմություն 1 վայրկյանից և թարմ կլինի այնտեղ, որտեղ սերվերի ջերմաքարտեզը աշխատում է
Կենդանի order book, time and sales Ինչպես ցանկացած timeframe՝ երբ բաց է order book վահանակը
Screener Ընդունվում է ցանկացած timeframe, այն ինստրումը, որը տեսանելի է screener-ին

Ծածկույթը սահմանում է տվյալների սերվերը և կարող է փոփոխվել։ Ամենավստահելի մոտեցումն է հենվել .available ֆլագին և լեգենդի գրառմանը։

Իրենցից տարբեր timeframe և տարբեր ինստրում

request.security հաշվարկում է արտահայտությունը այլ series-ի վրա — ավագ timeframe կամ այլ մետաղադրամ — և համադրում է արդյունքը գրաֆիկի բարերի հետ.

TEXT
request.security(symbol, timeframe, expression, gaps = false, lookahead = false, ignore_invalid_symbol = false)
  • symbol — ձևաչափով «ԲՈՐՍԱ:ԹԻՔԵՐ», ինչպես TradingView-ում: օրինակ՝ "BINANCE:BTCUSDT.P", որտեղ .P նշանակել է perpetual futures. Ներդրումի սիմվոլը գրաֆիկի համար է՝ sym.ticker.
  • timeframe — տեքստային ձևով՝ "5", "60", "4h", "1D", "1W". Գրաֆիկի timeframe-ը՝ tf.period.
  • expression — թիվ կամ մի քանի թվեր փակագծերի մեջ՝ օրինակ [high, low].

Առանց ապագա տեսնելու. Դեֆոլտով գրաֆիկի բարն տեսնում է ավագ timeframe-ի վերջին փակված բարի արժեքը: այդ պատճառով ժամային EMA-ն 5 րոպեանոցների վրա բարձրանում է միայն ժամը փակելիս. Այսպես պատմության վրա արդյունքը համընկնում է իրական ժամանակում տեսածի հետ։

  • gaps = true — արժեքը հայտնվում է միայն այն առաջին բարում գրաֆիկի վրա, որտեղ եկավ նոր ավագ բարը, հետո կլինի na։
  • ignore_invalid_symbol = true — անհայտ սիմվոլը վերադարձնում է na. Ինքըհետո չեղած դեպքում սկրիպտը կկործանվի սխալով «Символ … неизвестен»։

Ընդարձակ արտահայտության մեջ հասանելի են մյուս սերիայի մոմերը և դրանց հաշվարկները։ Գրաֆիկի փոփոխականը փոխանցել հնարավոր չէ — միայն input.*-ի արժեքները։ Order book-ը, time and sales-ը և screener-ը ներսում չեն կոմպիլյացվում, իսկ այլ սերիայի cluster-ները, delta, open interest և funding rate-ը կվերադարձնեն na. Սկրիպտը կարող է ունենալ մինչև 8 տարբեր «ինստրում + timeframe» զույգեր և ընդամենը մինչև 32 կանչ request.security.

Loot
indicator("EMA старшего таймфрейма", overlay = true)
len = input.int(20, "Длина EMA", minval = 2, maxval = 500)
tfHigh = input.timeframe("60", "Старший таймфрейм")
emaHigh = request.security(sym.ticker, tfHigh, ta.ema(close, len))
plot(emaHigh, "EMA", color = color.orange, style = plot.style_stepline)
Loot
indicator("Спред к другой бирже", overlay = false)
other = input.symbol("BYBIT:BTCUSDT.P", "Сравнить с")
px = request.security(other, tf.period, close, ignore_invalid_symbol = true)
plot(close - px, "Разница", color = color.orange)

Дальше

https://docs.lootx.trade/hy/loot/market-data