Kutubxonalar Pine Script: import, export va funksiyalar versiyalari

Maqola muqovasi «Kutubxonalar Pine Script: import, eksport va funksiya versiyalari»: chapda uchta eksport qilinadigan funktsiyaga ega kutubxona bloki, o'ngda uchta skript; ikki birinchi versiyaga ulangan, uchinchi ikkinchi versiyaga o'tkazilgan

Kutubxona qachon asosli, qachon esa kopipast yetarli?

Halol chegara oddiy. Hisoblash bitta skriptga kerak bo‘lsa, u aynan shu skript ichida boʻlishi kerak. Siz o‘zingizni eski indikatorni ochib, undan funksiyani nusxalashga tushmoqchi bo‘lganingizda, keyin yana bir bor, va yana, kopipast qilish qimmatga tushishni boshlaydi, nashr bilan bir martalik ishlashdan qimmatroq.

Kutubxonaning narxi bor va uni oldindan bilish yaxshi. Uni shunchaki muharrirda saqlab, ulashib bo‘lmaydi: u nashr qilingan bo‘lishi shart, hatto shaxsiy bo‘lsa ham. U har doim ochiq manba bilan nashr etiladi, boshqa variant TradingView bermaydi. Va uni orqaga qaytarib tahrirlash endi muharrirdagi loyihadek erkin bo‘lmaydi.

Buning o‘rniga siz bitta haqiqat manbaiga ega bo‘lasiz. Kutubxonadagi formulani o‘zgartirdingiz, yangi versiyasini chiqardingiz, va undan keyin qaysi skriptlarni unga moslashtirishni o‘zingiz hal qilasiz. Hech kim sirtdan o‘tkazilmaydi, va bu ishni noto‘g‘ri qilganlik emas, balki platformaning ongli qaroridir.

Kimga kutubxona vaqtni tejaydi:
Mos keladi, agar
  • Bir xil hisoblash uchta yoki undan ko‘p skriptingizda yashaydi.
  • Siz umumiy signal mantiqiga ega indikatorlar to‘plamini yozasiz.
  • O‘z funksiyalaringizni boshqa mualliflarga berishni xohlaysiz.
  • Ichki yordamchi dasturlar to‘plamini yig‘asiz: yaxlitlash, formatlash, sessiyalar bilan ishlash.
Mos kelmaydi, agar
  • Funksiya faqat bitta indikatorga kerak.
  • Kod har kuni o‘zgaradi va hali barqaror emas.
  • Mantiqni ko‘rsatib bo‘lmaydi: kutubxona har doim ochiq
  • Savolni sotish uchun yopiq mahsulot kerak

Agar siz hali tilni o‘rganayotgan bo‘lsangiz va o‘z skriptlaringizni yozish lozim yoki yo‘qligini hal qilmagan bo‘lsangiz, umumiy tasvirdan boshlang: bu nima Pine Script va u qanday tuzilgan. Kutubxonalar – bu ikkinchi bosqich, ular hamma uchun kerak emas.

Nima bilan library() farqlanadi indicator() Va strategy()?

Kutubxonalar Pine Script – indikator va strategiya bilan bir qatorda uchinchi turdagi skript. Har bir skript aniq bitta e’lon bilan boshlanadi va u global sohada joylashgan. Demak, tanlov oddiy: yoki indicator(), yoki strategy(), yoki library(). Uchinchi variant mavjud emas va birlashtirish ham yo‘q.

Indikatordan kutubxonani ajratadigan bir nechta jihatlar bor, va deyarli hammasi mantiqiy.

So‘z export faqat kutubxonalarga mavjud. Indikator butun xohlashga qaramay o‘z funksiyasini boshqa skriptga topshira olmaydi, bu shunchaki man etish uchun man etilgan emas, balki rollarni ajratishdir.

Kutubxona sarlavhasi nomlar maydoni nomi sifatida ishlaydi va unga qo‘llaniladigan qoidalar qat’iyroq. Faqat lotin harflari, raqamlar va ostki chiziq maqul, raqam bilan boshlanishi mumkin emas. Qator "Library for 14-day averages" bo‘sh joylar va chiziqcha tufayli shunchaki kompilyatsiya xatosini keltirib chiqaradi, va "Library_for_14_day_averages" o‘tadi.

Kutubxonani grafikga osish rejalashtirilmagan. Ma'lumot TradingView buni ochiq aytadi: kutubxonalar ularni qo'llash uchun emas, balki boshqa skript yozilganda import qilinadi. Texnik jihatdan kod grafikda oddiy indikator sifatida ishlaydi va uni nashr qilishdan oldin toza grafik tayyorlash uchun ishlatishadi.

Va yana bir kichik narsa, keyinroq paydo bo'ladigan: kutubxona o'z-o'zidan ogohlantirishlarni yaratmaydi. U funksiyani chaqirish bilan eksport qilishi mumkin alert() ichida, va alertni ana shu funksiyani chaqirgan skript allaqachon yaratadi.

Kutubxonani qanday yig‘ish: funksiyadan tortib export

Tilda oltinchi versiyada kutubxona karkasi shunday ko‘rinadi:

//@version=6
// @description Короткое описание, что тут лежит
library("My_Tools", overlay = true)

export myEma(int x) =>
    ta.ema(close, length = x)

E'lonida library() aniq uchta parametr bor: title, overlay Va dynamic_requests. Birinchisi majburiy, u import qilinayotganda identifikator sifatida ham ishlatiladi. Ikkinchisi rasmning asosiy grafik panelga tushishini nazorat qiladi, odatda yo'q. Uchinchi dinamik so'rovlarni ruxsat beradi, va oltinchi versiyada u standart bo'yicha yoqilgan, beshinchisida esa o'chirilgan edi.

Eksport qilish faqat funksiyalar bilan emas. Ro'yxatga metodlar, foydalanuvchi tiplari, enum va konstant o'zgaruvchilar kiradi. Konstantlar boshqa narsalardan keyin tilga kelgan, iyunda 2025 yili, va ularning o'z sharti bor: faqat turi int, float, bool, color yoki string, va e'lon qilinishida albatta so'z bo'lishi kerak const.

Tiplar va enumlar bilan noaniq qoida bor. Agar eksport qilinadigan funktsiya sizning turdagi obyektni qabul qilsa yoki qaytarsa, o‘sha tur ham eksport qilinishi shart. Xuddi shu narsa, agar bir eksport qilinadigan tur maydoni boshqa turdan foydalansa. Ammo agar tur faqat kutubxonaning ichki ishlariga kerak bo‘lsa, uni tashqariga chiqarish shart emas.

Bo‘sh kutubxona yig‘ilmaydi. Kompilyatsiya o‘tishi uchun, tashqariga kamida bitta nom chiqishi kerak: funktsiya, metod, tur yoki enum.

  1. 1

    Funktsiyani ajratish

    Skriptlar orasida nusxalab oladigan hisob-kitobni topish

  2. 2

    E’lonni library bilan almashtirish

    Sarlavha faqat lotin harflari, raqamlar va pastki chiziq bilan

  3. 3

    Export va turlarni qo‘yish

    Har bir parametrda tur majburiy, aks holda yig‘ilmaydi

  4. 4

    Kirishlar va global havolalarni olib tashlash

    Ichkarida input chaqirib bo‘lmaydi va global massivlardan foydalanib bo‘lmaydi

  5. 5

    Grafikda tekshirish

    Kutubxona kodi oddiy indikator kabi ishlaydi

  6. 6

    Shaxsiy yoki jamoat tarzida nashr qilish

    Nashrsiz kutubxonani import qilish mumkin emas

Agar sizda oddiy indikator ichida ishlaydigan funktsiya bo‘lsa va uni boshqa skriptlarda qayta ishlatmoqchi bo‘lsangiz, bajarish tartibi.

Muharrirni oching, qoralamani saqlang va skriptni grafikga qo‘shish bu alohida mexanika, bu muharrir haqida maqolada batafsil tushuntirilgan Pine Script.

Eksport qilinadigan funksiyaning parametrlariga nima uchun turlar majburiy?

Hujjatlashtirish shakli hech qanday erkinlik qoldirmaydi: parametr turini ko‘rsatish majburiy, indikatorlar va strategiyalardagi foydalanuvchi funksiyalaridan farqli o‘laroq, ularda turlar ko‘rsatilmaydi. Sababi foydali. Funksiya boshqa odamlarga boradi va kompilyator oldindan uning shartnomasi haqida bilishi shart.

Parametrda turdan tashqari kvalifikator ham bo‘lishi mumkin, va bu yerda tanlov faqat ikkita so‘zdan iborat: simple Va series. So‘z const eksport qilinadigan funksiyada ruxsat berilmaydi, u faqat oddiy, eksport qilinmagan funksiyalar uchun mavjud.

Standart bo‘yicha argumentlar keladi qaysi shaklda series, agar siz aniq yozmagan bo‘lsangiz simple. Kompilyator shu paytda qaraydi, parametr qanday ishlatilayotganini ichida, va o‘zi kvalifikatorni tanlaydi. Shundan eng ko‘p uchraydigan tuzoq, hujjatlarda so‘zma-so‘z barmoq bilan ko‘rsatiladi. Funksiyani olaylik:

export myEma(int x) =>
    ta.ema(close, length = x)

Parametr x argument uzunligiga ketadi, va slayding o‘rtacha uzunligi oddiy qiymat bo‘lishi kerak. Demak, x avtomatik tarzda kvalifikator oladi simple. Chaqirish myEma(x = 20) osmonda yig‘iladi, ammo myEma(x = bar_index) kompilyatsiya xatosi beradi: bar_index har bir bar o‘zgaradi, bu seriya. Hech qanday sirli narsa yo‘q, shunchaki funksiya shartnomasi kodda ko‘rinishidan qat’iyroqligi chiqdi.

Teskarisi ham bo‘ladi. Agar sizga kerak bo‘lsa, funktsiya oddiy qiymatni qaytarsin, seriya emas, ichida birorta seriyali qiymat bo‘lmasligiga e’tibor berishingiz kerak bo‘ladi. Faqat bittasi kifoya, va natija seriya bo‘ladi.

Eksport qilinadigan funksiya ichida nima qilmaslik kerak?

Hujjatlar cheklovlarning yopiq ro'yxatini beradi, va uni bir marta to'liq o'qish kerak, shunda keyinchalik taxmin qilmaslik.

Birinchisi. Kitobxonlikning global sohasidagi o'zgaruvchilarga, faqat konstantalar sifatida e'lon qilinganlardan tashqari, murojaat qilinmaydi. Sozlamalardan kelgan qiymat yoki global tarzda yaratilgan massiv, eksport qilinayotgan funksiya ichida mavjud emas.

Ikkinchisi. Oila funksiyalarini chaqirish mumkin emas input. Sozlamalar foydalanuvchi skriptida yashaydi, kutubxona emas, va bu to'g'ri: aks holda bitta kutubxona uni ulagan har kimga interfeysni belgilardi.

Uchinchisi. So'rovlar request.*() mahalliy sohada parametr mavjud bo'lganda ruxsat etiladi dynamic_requests qo'lda o'chirilmagan. Lekin ularda o'z sharti bor: argument expression sizning funksiyangiz parametrlaridan bog'liq bo'lishi mumkin emas. Tiker esa vaqt oralig‘i bog'liq bo'lishi mumkin, lekin ifoda o'zi yo'q.

To'rtinchisi. alert() funksiya ichida ruxsat etilgan, lekin alertni faqat o'sha funksiyani chaqirgan yaratadi. Grafikda osilgan kutubxonadan alert qilish mumkin emas.

Beshinchisi. Kutubxona funksiyasi har doim simple yoki series, zaifroq bo'lmaydi. Shuning uchun uning natijasini doimiy qiymat kutayotgan joyga qo'yib bo'lmaydi. Klassik misol: parametr show_last uz plot() qiymat turini talab qiladi input int yoki const int, va uni kutubxonadan qaytarib bo'lmaydi.

Bunga tilning ikki umumiy qoidasi qo'shiladi, ular ko'pincha unutiladi. Chaqirish plot() faqat global sohada yashaydi, ya'ni har qanday funksiyaning ichida u umuman bo'lmaydi. Va foydalanuvchi funksiyalarida rekurziya taqiqlangan, o'zini chaqirish mumkin emas.

Kutubxonani qanday e’lon qilish va kim uni ko‘radi?

Kutubxona nashr qilinmaguncha uni import qilish mumkin emas. Bu yerda «tahrirlovchida saqladim va ulangan» degan narsa nazarda tutilmagan.

Shaxsiy va ommaviy nashr orasidagi tanlov, kimni chaqirishingizga bog‘liq. Shaxsiy nashr jamoa tasmasida chiqmaydi va qidiruvda topilmaydi, vidjet esa faqat sizning profilingizda ko‘rinadi. Lekin muhim bir jihat, ko‘pchilik noto‘g‘ri yozadigan: shaxsiy nashr sahifasi, agar bu havola mavjud bo‘lsa, har kim uchun ochiq. Bu seyf emas, bu qidiruvdan yashirilgan vitrina.

Mos kelish qoidalarini bir marta o‘rganib qo‘yish kerak. Ommaviy skript faqat ommaviy kutubxonalarni ishlatishi mumkin va o‘zi ham ochiq bo‘lishi shart. Shaxsiy skriptlar va tahrirchidagi loyihalar ham ommaviy, ham shaxsiy kutubxonalarni ishlatishi mumkin. Ammo ommaviy yopiq skript, protected yoki invite-only bo‘lsa, shaxsiy kutubxonani ishlatishga ruxsat bor.

Tahrirlash huquqi ikki variantda ham turlicha. Shaxsiy nashrni muallif har doim o‘zgartirishi va o‘chirishi mumkin. Jamoatning faqat o'n besh daqiqasi bor, undan so‘ng u yakunlanadi. Shuning uchun jamoat kutubxonasi tavsifida tez eskirishi mumkin bo‘lgan hech narsa yozilmaydi.

Boshqalarning kodiga oid qoidalar maydoncha tomonidan ravshan aytiladi: kutubxonalar umumiy mulkga kiradi. Ularning funksiyalarini chaqirish va ochiq skriptda kodni qayta ishlatish muallifning ruxsatisiz mumkin. Lekin ularning kodini yopiq nashrga ko‘chirish aniq roziliksiz mumkin emas. Ikkala holatda ham muallif tavsifda ko‘rsatiladi. Ochiq kod odatda Mozilla Public License litsenziyasi ostida tarqatiladi 2.0, agar muallif manba kodda boshqasini yozmagan bo‘lsa.

Va tariflar haqida, agar bu pulga taalluqli bo‘lsa. Basic tarifida umumiy e’lonlar umuman yo‘q, shaxsiylari mavjud. Umumiy e’lonlar uchun chastota cheklovlari mavjud: harakatlanuvchi kunlarda beshgacha va o‘ttiz kunda o‘n beshgacha. Shaxsiy e’lonlar va allaqachon chop etilgan skriptlarni yangilash uchun bu cheklovlar tatbiq etilmaydi.

Kutubxonani qanday import qilish va alias nima uchun kerak?

Sintaksis quyidagicha:

//@version=6
indicator("Using AllTimeHighLow library", "", true)
import PineCoders/AllTimeHighLow/1 as allTime

plot(allTime.hi())
plot(allTime.lo())

Uch qismli yo'l aynan nimani bog'laganingizni noyob tarzda belgilaydi. Bu yerda tez-tez uchraydigan bir shart bor: importda bu yozilgan title kutubxona e'lonidan olingan, muallif nashr uchun o'ylab topgan nomdan emas. Bu ko'pincha turli liniyalar bo'ladi.

Laqab nomi as nomlar fazosini belgilaydi. S as allTime Funksiyalar quyidagicha nomlanadi allTime.hi(). Agar siz alias yozmasangiz, kutubxona nomi o'zi nom maydoniga aylanadi. Bir xil nuqta notatsiyasi orqali kutubxonaning turlari va enumlari mavjud.

Darhol eslab qolish osonroq bo'lgan bir nechta import qoidalari:

  • Yo'ldagi versiya raqami har doim aniq yoziladi, bu qatorda "eng so'nggi" qiymat yo'q.
  • Ommaviy skript faqat jamoat kutubxonalarini o'z ichiga olishi mumkin va u ochiq manba bo'lishi kerak.
  • Shaxsiy kutubxona shaxsiy skript, muharrirdagi qoralama va yopiq kodli jamoat skripti uchun mos keladi.

Ulangan kutubxonalar soni to‘g‘ridan-to‘g‘ri cheklanmagan, kodning umumiy hajmi cheklangan. Buning haqida quyida, xavflarda.

  1. 1

    Kutubxona sahifasini oching

    Jamoat kutubxonalari Community scripts lentasida joylashgan

  2. 2

    Import qatorini nusxalash

    Sahifada tayyor qatorni nusxalash tugmasi mavjud

  3. 3

    E’lon ostiga import qatorini joylashtiring

    Qator ichidagi versiya raqami siz olgan holatda qoladi

  4. 4

    Tushunarli kinonimni belgilang

    as dan keyin qisqa nom yoziladi, uning orqali funksiyalar chaqiriladi

  5. 5

    Muallifni tavsifda ko‘rsatish

    Bu maydon qoidalari talabi, muloyimlik emas

Qisqa yo‘l, agar siz jamoat lentasida tayyor kutubxonani Pine Script topsangiz va uning funksiyasini o‘zingizda chaqirmoqchi bo‘lsangiz.

Nima uchun import yangi versiyaga avtomatik o‘tmaydi?

Hujjatlarning ifodalanishi to'g'ridir: kutubxonalardan foydalanadigan skriptlar ishonchli ishlashi uchun oxirgi versiyani avtomatik ravishda olish mumkin emas. Har safar muallif yangilanishni e'lon qilganda, kutubxona versiya raqami oshadi. Yangi versiyasini xohlaysizmi, borib qator ichidagi raqamni o'zgartiring import.

Bu noqulaylikdek eshitiladi, lekin aslida bu sug'urta. Teskari holatni tasavvur qiling: boshqa kutubxona muallifi o'zida formulani tuzatdi, va ertasi kuni sizning indikatoringiz boshqa signallarni chizadi, garchi siz unga tegmagan bo'lsangiz ham. Aynan shuni maydoncha ruxsat bermaydi.

Amaliy xulosa: versiya raqamini o‘zgartirish sizning skriptingizning xulq-atvorini o‘zgartirish demakdir, kosmetika emas. Uni o‘tkazgandan so‘ng signallarni qayta ko‘rib chiqish kerak: haydash backtest shu asbobda va indikatorni tekshirish chizib qayta ishlash, xuddi siz har qanday mantiqiy tuzatish bilan qilganingizdek. Eski va yangi natijalar mos kelishini hech kim kafolatlamaydi.

Amaldagi raqamni qayerdan olish mumkin. Nashr etilgan kutubxona sahifasida tayyor import qatorini buferga nusxalash tugmasi bor, bu eng tezkor usul. Ikkinchi variant, qo'lda yozadiganlar uchun: muharrirda muallif nomi bo'yicha avtomatik to'ldirish ishlaydi, u mavjud kutubxonalarni ko'rsatadi.

Qanday versiyalarni chiqarish, boshqalarning skriptlarini buzmaslik uchun?

Kutubxonalar Pine Script mexanik ravishda raqamlanadi: platforma raqam ma'nosi haqida hech narsa aytmaydi va har bir yangilanish nashrida uni shunchaki oshiradi. Demak, intizomni o'zingiz saqlashingiz kerak bo'ladi, va bu yerda qo'shni ekotizimlardan tayyorini qarzga olish osonroq.

Semantic Versioning spetsifikatsiyasi qoidani shakllantiradi, negadir uni ochishga arziydigan: chiqarilgan versiya o'zgarmaydi, har qanday o'zgarish yangi nashr sifatida chiqadi. TradingView da bu so'zma-so'z ishlaydi, chunki nashr manbaning mustaqil nusxasini yaratadi va u versiyalar tarixining bir qismiga aylanadi.

Qaysi o'zgarishni buzuvchi deb hisoblash kerakligini Cargo hujjatidagi tahlilga qarab qulay ko'rish mumkin: jamoat elementini o'chirish moslikni buzadi, Funksiya uchun majburiy parametr qo'shish ham shunday, lekin yangi jamoat elementini qo'shish mos keladi. Pine Script ga bir-biriga tarjima qilinadi. Kutubxonaga yangi eksport qilinadigan funktsiya qo'shildi, eski foydalanuvchilar hech narsani sezishmadi. Mavjud funksiyaga majburiy argument qo'shildi, va uni eski usulda chaqirganlar muammoga duch keldi.

npm hujjati raqamlar bo'yicha juda oddiy eslatma beradi: birinchi chiqarish 1.0.0, tuzatish 1.0.1, mos keladigan yangilik 1.1.0, buzuvchi o'zgarish 2.0.0. Ha, aslida, darhol shuni aniqlashtirib olish kerak, xuddi Python paketchasi qo'llanmasidagi kabi: amalda qat'iy semver hamma tomonidan hurmat qilinmaydi, va raqam oxir-oqibat muallifning hukmidir.

Alohida tavsif haqida. Agar jamoat nashrini o‘n besh daqiqa o‘tgach tahrirlash mumkin bo‘lmasa, o‘zgartirishlar tarixini boshidan o‘zi intizom bilan yuritish maqsadga muvofiqdir. Keep a Changelog yondashuvi bu yerda shunisi bilan qulay: o‘zgarishlar ro‘yxati odamlar uchun yoziladi, har bir versiyada o‘z yozuvi bo‘ladi, sana va tushunarli bandlar bilan. Aks holda bir yil o‘tib, siz uchinchi versiya ikkinchisidan nimasi bilan farq qilganini eslay olmaysiz.

Hech narsa buzilmaydi

Hamma sindiradi

  1. 1.Yangi funksiya qo‘shildi
  2. 2.Funktsiyaning ichki hisob-kitobi o‘zgartirildi
  3. 3.Eksport olib tashlandi yoki qayta nomlandi
Qachon yangilanishni jim chiqarish etarli va qachon sizning kutubxonangizni allaqachon import qilganlarni ogohlantirish kerakligi bo‘yicha yo‘nalish.

Pine Script v6 chiqarilishi bilan kutubxonalarda nima o‘zgardi?

Oltinchi versiyagacha eksport qilinadigan funksiyaning ichidagi ma'lumot so‘rovi, agar muallif dinamik so‘rovlarni qo‘lda qo‘shmagan bo‘lsa, yopiq edi. Noyabrda 2024 yilda v6 chiqishi bilan bu o‘zgardi: chaqiruvlar request.*() tsikllar, shartli konstruksiyalar va eksport qilinadigan kutubxona funksiyalari ichida ruxsat berildi.

Bir vaqtning o‘zida sukut saqlash ham o‘zgardi. Beshinchi versiyada dynamic_requests o‘chirilgan edi, oltinchisida yoqilgan. Eski kodni ko'chirishda shuning uchun quyidagi tuzoqqa tushib qolishadi: agar e'lon qilinishda aniqlik saqlanib qolsa dynamic_requests = false, mahalliy doiradan soʻrov chaqiruvi, hatto u foydalanuvchi funksiyasi ichida yashirilgan boʻlsa ham, taqiqlanadi. Migratsiya bo‘yicha qo‘llanma oddiy davolashni tavsiya qiladi: konvertatsiya qilishda shunchaki aniq parametrni olib tashlang va kompilyatorga o‘zi hal qilishi uchun imkon bering.

  1. Oktyabr 2021

    Kutubxonalar paydo bo‘ldi Pine Script v5

    Qayta ishlatilishi mumkin bo‘lgan funksiyalar uchun yangi nashr turi

  2. Iyun 2024

    Tilga enum-tiplar qo'shildi

    Ruxsat etilgan qiymatlar ro'yxatiga ega yangi ma'lumotlar tipi

  3. Noyabr 2024

    Pine Script v6 va dinamik so‘rovlar

    request eksport qilinadigan funksiyalar ichida ruxsat etilgan

  4. Iyun 2025

    Doimiy o'zgaruvchilarni eksport qilish

    Faqat int, float, bool, color va string soʻzi bilan const

Toʻrt nuqta, ular sizning kutubxonangiz bugun nima qila olishini va boshqa kodda qaysi sintaksisni uchratishingizni aniqlaydi.

Agar siz o‘z funksiyalaringizdan shunchaki bir qator utilitalar emas, balki ishlaydigan algoritm yaratgan bo‘lsangiz, keyin umumiy tekshiruv ramkasi foydali bo‘ladi: qanday tashkil etilgan algotreyderlik va algoritmni nimadan tekshirishadi dastlab unga qaror qabul qilishga ishonishdan oldin.

Xatarlar va cheklovlar

Hajm haqida. Bitta skriptning kompilyatsiyalangan shakli taxminan yuz ming token bilan cheklangan, aniq soni 100 256. Kutubxonalar alohida kompilyatsiyalanadi va ularning kodi sizning indikatoringiz hajmini oshirmaydi. Ammo barcha ulangan kutubxonalar jami hajmi bir million token bilan cheklangan, va o‘zi kompilyatsiya so‘rovi besh megabaytdan oshmasligi kerak.

Bu yerda oldindan bilish tavsiya etiladigan noxush xususiyat bor: kutubxona toʻliq kompilyatsiya qilinadi, siz undan qancha funktsiyani chaqirganingizdan qatʼi nazar. Katta toʻplamdagi bitta kichik funksiya ham butun toʻplamni oʻz orqasida tortib yuradi. Xulosa sodda: kutubxonalarni ixcham va mavzular bo‘yicha saqlash yaxshiroq, hamma narsani bitta joyga yig‘maslik kerak.

Xuddi shu operaning yana bir mayda detali: so'rovlar request.*() import qilingan funksiyalar ichidagi hisob-kitoblar sizning so‘rovlar limitiga kiradi, hatto agar asosiy skript kodida ayni shu so‘rov va xuddi shunday argumentlar mavjud bo‘lsa ham.

Qaramlik haqida. Boshqa kutubxonani ulash orqali siz hisob-kitoblar bo‘yicha boshqa odamning qarorlarini qabul qilasiz. Muallif yangi versiyani chiqarganida, siz uni ko‘rmaysiz, to‘xtamagan holda o‘zingiz almashtirmaguncha, va bu yaxshi. Lekin aksincha ham to‘g‘ri: agar eski versiyada xato bo‘lsa, u sizda qoladi, to‘xtamagan holda o‘zingiz yangilamaguningizcha.

Maxfiylik haqida. Keling, yuqorida aytilgan narsani takrorlaylik, chunki shu yerda xatolarga duch kelishadi: shaxsiy nashr lentadan va qidiruvdan yashirilgan, lekin to‘g‘ridan-to‘g‘ri havola orqali ochiladi. Hech kimga ko‘rsatib bo‘lmaydigan kod kutubxonaga umuman chiqarilmaydi.

Mualliflik haqida. O‘zingizning nashringiz tavsifida boshqa bir kutubxonaning muallifini ko‘rsatish muloyimlik emas, balki platforma qoidalari talabi. Plagiat uchun platforma qoidalari hisobni doimiy bloklashgacha jazo ko‘rishni nazarda tutadi, shuning uchun muallifga kredit berish – bu yana bir sug‘urta hisoblanadi.

Va bu maqola haqida halol eslatma. Parametr turi yoki chaqiruvning yetishmasligi kabi holatlar uchun kompilatsiya xatolarining aniq matnlari input rasmiy hujjatda eksport qilinadigan funksiyaning ichida yo‘q: u yerda o‘zi taqiqlar tavsiflangan. Shunday qilib, agar kompilyator sizga biror narsa ko'rsatgan bo'lsa, cheklovlar ro'yxati bilan solishtiring, boshqa odamlarning bayonotlari bilan emas.

Manbalar

Tez-tez beriladigan savollar

Kutubxonadan foydalanish uchun uni nashr qilish shartmi?

Ha. Kutubxona nashr qilinmaguncha uni import qilish mumkin emas. Bu bilan shaxsiy nashr yetarli, u jamoa lentasiga tushmaydi.

Kutubxonaning manba kodini yashirish mumkinmi?

Yo‘q. Barcha kutubxonalar faqat ochiq manba bilan nashr etiladi, boshqa turdagi ko‘rinish tanlab bo‘lmaydi. Xususiy nashr uni qidiruvdan yashiradi, lekin havola mavjud bo‘lganlardan emas.

Nega eksport qilinadigan funksiyada input ishlatib bo‘lmaydi?

Sozlamalar iste’molchi skriptga tegishli. Eksport qilinadigan funksiya oilaviy funksiyalarni chaqira olmaydi input va sozlamalardan inizializatsiya qilingan global o‘zgaruvchilarni ololmaydi.

Muallif kutubxonaning yangi versiyasini chiqarganida mening skriptim avtomatik yangilanadimi?

Yo‘q. Import qatoridagi versiya raqami belgilangan, oxirgi versiyaga avtomatik o‘tish mavjud emas. O‘zgartirish raqamni qo‘lda tahrirlash orqali amalga oshiriladi.

Bir nechta kutubxonani bitta skriptga ulash mumkinmi?

Ha, importlar soni to‘g‘ridan-to‘g‘ri cheklanmagan. Cheklangan umumiy hajm: barcha ulangan kutubxonalar birgalikda bir million tokenni oshmasligi kerak. Shu bilan birga, har bir import alohida satrda uning versiya raqami bilan yoziladi, funksiyalarga esa keyin qulay tushunarli taxallus orqali murojaat qilish yaxshiroq as.

Boshqa kishining kutubxonasidan foydalanish mumkinmi TradingView?

Ha, kutubxonalar maydon qo'llanmalari tomonidan umumiy mulk sifatida belgilangan: Ularning funksiyalarini chaqirish va kodni ochiq skriptda qayta ishlatish muallifga so'ramasdan ruxsat etiladi. Yopiq nashr uchun ruxsat kerak. Muallif har holda tavsifda ko'rsatiladi.

Ushbu materialdan nimani o‘rganasiz
  • Library indicatordan nimasi bilan farq qiladi va qachon sizga kutubxona umuman kerak emas
  • Funksiyani export orqali qanday chiqarish va parametrlarning tiplari nima uchun majburiy
  • Versiya raqamli import qatori qanday ko‘rinadi va unda alias nima qiladi
  • nega import yangi versiyaga o'zi ko'chmaydi va versiyalarni qanday to'g'ri chiqarish kerak
30 daqiqada qo‘llang
O‘rta

Material foydali bo‘ldimi?

Bu til versiyasi uchun baholash hozircha mavjud emas.

Izohlar

Manba izohlari tarjima qilinmaydi.

Yo‘nalish eksperti
Max Vitkovsky
Market analyst

Analyses cryptocurrency market structure, levels and on-chain context, with attention to risk and invalidation conditions.

Midas indikatorining Buy va Sell signallari bilan TradingView grafigi
TradingView uchun Midas multiindikatoriSavdo uchun eng ilgʻor indikatorlardan biri
  • Keyin oʻzgarmaydigan signallar
  • Interaktiv texnik tahlil
  • Tanlash uchun 7 strategiya
TradingView uchun Midas multiindikatoriSignal, stop va 3 maqsad bevosita grafikda
  • Signal sham yopilganda qayd etiladi
  • Stop va 3 maqsad avtomatik tuziladi
  • Bitim rejasi kirishdan oldin koʻrinadi