Pine Script: Bu dil nədir və TradingView

"Pine Script: bu dil nədir və TradingView-də necə işləyir" məqaləsinin üz qabığı: Pine Script v6 təlim kodu və barlarla ardıcıl hesablama

Pine Script nədir və hansı tapşırıqları həll edir TradingView

Pine Script TradingView -də quraşdırılmışdır. İstifadəçi Şam Redaktorunu açır, proqram mətnini yazır, onu saxlayır və nəticəni diaqrama əlavə edir. Platforma mənbə kodunu tərtib edir, proqramı qəbul edir və onu mövcud çubuqlar dəstində işlədir. İlk tanışlıq üçün ayrıca yerli kompilyator lazım deyil.

TradingView Pine Script-da hazır diaqram seriyası qəbul edilir, ona görə də ilk yoxlama kiçik ola bilər: bir düstur, bir parametr və bir xətt.

Dil adətən dörd tapşırıq üçün istifadə olunur:

  1. Hərəkətli ortalama, diapazon və ya fərdi kimi seriyaları hesablayın osilator.
  2. Qiymətin yanında xətt, etiket, fon rəngi və ya digər nəticə çəkin.
  3. Strategiya qaydalarını təsvir edin və test cihazında hipotetik sifarişlərin simulyasiyasını əldə edin.
  4. Yenidən istifadə edilə bilən funksiyaları və fərdi növləri kitabxanaya köçürün.

Açar söz burada - qayda. Ssenari "güclü hərəkət göstər" kimi qeyri-müəyyən bir fikri başa düşmür. Onun müşahidə edilə bilən şərtlərə ehtiyacı var: hansı məlumatları götürməli, hansı dövr üçün hesablamalı, nəyi müqayisə etməli və nə çıxarmalı. Qayda nə qədər dəqiq olarsa, bir neçə çubuqdakı kodu əl ilə yoxlamaq bir o qədər asan olar.

  1. 1

    Mənbə

    Versiya, elan və təlimat

  2. 2

    Kompilyasiya

    Sintaksis və növün yoxlanılması

  3. 3

    Barlar diaqramı

    Məlumatlar üzrə ardıcıl icra

  4. 4

    Dəyərlər seriyası

    Hər bir mövcud bar üçün nəticə

  5. 5

    Ekran

    Xətlər, işarələr və ya strategiya hesabatı

Mətn tərtib edilir, sonra proqram çubuqlar üzərində yerinə yetirilir və dəyərlər ardıcıllığı yaradır. Diaqram daxili infrastrukturu deyil, prosesi izah edir TradingView. Dar ekranda üfüqi olaraq sürüşür.

Diaqramın mənbəyi: rəsmi bölmələrin müəllif xülasəsi First stepsExecution model. Diaqram interfeysi və ya qapalı infrastrukturu təsvir etmir TradingView.

Skript nədən ibarətdir: versiya, bəyanat və əsas kod

Pine Script rəsmi strukturu üç hissədən ibarətdir. Birincisi görünüş versiyası annotasiyasıdır //@version=6. O, tərtibçiyə kodun hansı dil versiyası ilə yazıldığını bildirir. Annotasiyanı buraxsanız, davranış köhnə versiyaya uyğun ola bilər, ona görə də yeni dərslikdə versiyanı açıq şəkildə göstərmək daha yaxşıdır.

İkinci hissə - elan. Skript funksiyalardan birini istifadə edir: indicator(), strategy() və ya library(). Proqramın növünü və mövcud funksiyaları müəyyən edir. Siz göstərici üçün ad və parametr təyin edə bilərsiniz overlay, strategiya üçün - modelləşdirmə xassələri, kitabxana üçün - ixrac edilmiş obyektlər toplusunun təsviri.

Üçüncü hissə - əsas kod. Girişlər, dəyişənlər, hesablamalar, şərtlər və vizual çağırışlar burada elan edilir. Pine Script-da dəyər çox vaxt tək ədəd deyil, lakin yaxın: hər çubuğun öz bağlanış qiyməti və öz hesablama nəticəsi var. İfadə ta.sma(close, 3) buna görə də bir sabit dəyər deyil, orta ardıcıllıq yaradır.

Əvvəlcə skripti pasport kimi yuxarıdan aşağı oxumaq faydalıdır:

  • dilin hansı versiyası elan edilir;
  • hansı proqram növü elan edilir;
  • istifadəçi hansı parametrləri dəyişə bilər;
  • hesablamanın əsaslandığı ilkin seriya;
  • hansı nəticə çıxarılır və ya simulyasiya edilir.
  • Yuxarıdan aşağıya oxumaq

    //@version= 6 - plot() və ya əmrlər…

  1. //@version=6

    Dil versiyası

  2. indicator() / str…

    Bir növ bəyannamə

  3. input.*

    Özelleştirilebilir seçimlər

  4. Hesablamalar və şərtlər…

    Seriyalar, funksiyalar, dəyişənlər

  5. plot() və ya əmrlər…

    Müşahidə olunan nəticə

Xəritə proqramı oxumağın məntiqi ardıcıllığını göstərir: versiyadan tipə, hesablamalara qədər. Bu yaddaş qrafiki deyil, öyrənmə strukturudur. Dar ekranda üfüqi olaraq sürüşür.

Sxematik mənbə: bölmənin müəllif təsviri Script structure.

Sadə: bir dəyər

Seriya: hər bir çubuqda dəyər

  1. 1.lengthInput: 3
  2. 2.yaxın və smaValue
Uzunluq parametri bir dəyəri saxlayır və bağlamaq və nəticə SMA hər bir çubuq üçün ayrıca dəyər ehtiva edir. Diaqram qiymət miqyasını deyil, məlumat növünü göstərir. Dar ekranda üfüqi olaraq sürüşür.

Diaqramın mənbəyi: rəsmiyə görə sadə qiymətlə seriya arasındakı fərqin müəllifin izahı icra modelləri Pine Script.

Bar Pine Script necə icra edir və real vaxtda nələr dəyişir

Hər cərgənin bir sətirdən ibarət olduğu bir cədvəl təsəvvür edin. Pine Script ardıcıl olaraq sıra məlumatlarını alır, təlimatları yerinə yetirir və bu sətir üçün sıra nəticəsini saxlayır. Növbəti sətirdə yeni məlumatlar və icazə verilən yerlərdə keçmiş dəyərlər tarix operatoru vasitəsilə əldə edilə bilər, məs. close[1].

Tarixi çubuqlarda kod adətən hər sətirdə bir dəfə icra olunur. Onların open, high, lowclose artıq məlumdur. Açıq real vaxt çubuğunda vəziyyət fərqlidir: qiymət və maksimum və ya minimum bağlanmadan əvvəl yenilənə bilər. Göstərici hər yeniləmədə yenidən hesablayır, və yeni keçiddən əvvəl TradingView açıq çubuğun dəyişən vəziyyətini son təsdiqlənmiş vəziyyətə qaytarır. Sənədlərdə bu mexanizm geri çəkilmə adlanır.

Bu, əsas qaydaya gətirib çıxarır: hazırda açıq şamda görünən dəyər dəyişə və ya yox ola bilər. Çubuğun bağlanmasından sonra o, həmin çubuğun təsdiq edilmiş nəticəsi olur. Bu, mütləq səhv və ya gündəlik mənada “yenidən çəkilmə” deyil. Əvvəlcə şərtin açıq zolağın məlumatlarından istifadə edib-etmədiyini və dəqiq nə vaxt düzəldiləcəyini müəyyən etməlisiniz.

Təlim cədvəli beş bar tarixçəsini və bir açıq çubuğu göstərir. Nümunə olaraq üç bağlanma üçün SMA götürürük:

BarCloseSMA ( 3 ) hesablamadan sonradövlət
1100məlumat yoxdurBağlanıb, üç dəyər yoxdur
2102məlumat yoxdurBağlanıb, üç dəyər yoxdur
3101101,00Bağlandı və təsdiqləndi
4105102,67Bağlandı və təsdiqləndi
5104103,33Bağlandı və təsdiqləndi
6106 sonra 103105,00 sonra 104,00Açıq, dəyər dəyişir

Altıncı sətirdə nəticə əvvəlcə bərabərdir (105 + 104 + 106) / 3 = 105, və cərəyanı dəyişdirdikdən sonra 103-a yaxın olur. (105 + 104 + 103) / 3 = 104. Əvvəllər bağlanmış çubuqlar bu nümunədə dəyişdirilməyib. Rəqəmlər sintetikdir və yalnız mexanikanı yoxlamaq üçün lazımdır.

  1. Bar 1

    Close 100

    Tarix, SMA hələ deyil

  2. Bar 2

    Close 102

    Tarix, SMA hələ deyil

  3. Bar 3

    SMA 101,00

    İlk tam pəncərə

  4. Bar 4

    SMA 102,67

    Qapalı nəticə

  5. Bar 5

    SMA 103,33

    Qapalı nəticə

  6. Bar 6

    105,00 -> 104,00

    Açıq bar yeniləndi

İlk beş nöqtə təsdiqləndi. Altıncı sətirdə bağlanma 106-dan 103-ə dəyişir, beləliklə, SMA(3) bağlanmadan əvvəl 105-dən 104-ə dəyişir. Sintetik məlumatlar.

Diaqramın mənbəyi: modeldən istifadə edərək sintetik seriyanın müəllif hesablaması Execution modelBar states.

İndikator, strategiya və kitabxana arasındakı fərq nədir?

Göstərici vasitəsilə elan edilir indicator(). Xətlər, işarələr, cədvəllər və digər vizual elementlər çəkə bilər. Sadə göstərici SMA real mövqe açmır: o, seriyanı hesablayır və diaqramda göstərir. Nəticəyə əsasən istifadəçi fərdi müşahidə qaydalarını formalaşdıra bilər.

Strategiya vasitəsilə elan edilir strategy(). Onun kodunda hipotetik sorğular yaradan əmrlər görünür. TradingView onları broker emulyatoru ilə emal edir və hesabat göstərir. Bu, real icranın təsdiqi deyil, bir model testidir: komissiya, sürüşmə, ərizələrin doldurulması və hesablama parametrləri ayrıca göstərilməli və yoxlanılmalıdır.

Kitabxana vasitəsilə elan edilir library(). Bu, digər Pine skriptləri üçün ixrac edilən funksiyalar, metodlar, xüsusi növlər və ya siyahılardan ibarətdir. Kitabxana bir neçə proqramda eyni sınaqdan keçmiş məntiqə ehtiyac olduqda faydalıdır. Öz-özünə xətt çəkmək və ya proqram yaratmaq tələb olunmur.

NövƏsas vəzifəMüşahidə olunan nəticəSübut etmir
GöstəriciMəlumatları hesablayın və göstərinXətt, etiket, cədvəl, rəngMənfəətlilik və ya giriş ehtiyacı
StrategiyaFormal qaydaları modelləşdirinHipotetik əməliyyatlar və hesabatBrokerdə real icra
KitabxanaYenidən istifadə funksiyaları və növləriİdxal edilə bilən APIOnu çağıran skriptin düzgünlüyü
Pine Script növünü necə seçmək olar
Əgər uyğundur
  • Göstərici: qrafikdə hesablama və vizuallaşdırma tələb olunur
  • Strategiya: simulyasiya üçün aydın qaydalar var
  • Kitabxana: sınaqdan keçirilmiş funksiya bir neçə skript tərəfindən istifadə olunur
Əgər uyğun deyil
  • Göstərici ticarət qərarının keyfiyyətini təsdiq etmir
  • Strategiya sifarişin faktiki icrasına bərabər deyil
  • Kitabxana səhvləri zəng kodundan gizlətmir

Diaqramın mənbəyi: rəsmi bölmələrin müəllif müqayisəsi StrategiesLibraries.

Minimal nümunə Pine Script v6 və nəticəni yoxlamaq

TradingView ünvanında Şam Redaktorunu açın, yeni boş göstərici yaradın və kodu yerləşdirin:

pine
//@version=6
indicator("SMA test", overlay = true)

lengthInput = input.int(3, "SMA length", minval = 1)
smaValue = ta.sma(close, lengthInput)

plot(smaValue, "SMA", color = color.orange, linewidth = 2)

Birinci sətir Pine Script v6 çəkir. indicator() göstəricini elan edir və onu əsas diaqramın üstünə çəkməyi xahiş edir. input.int() 3 dəyəri ilə uzunluq parametri yaradır və 1 dəyərindən kiçik uzunluğa icazə vermir. ta.sma() bir sıra bağlamalar üzərində sadə hərəkətli ortalama hesablayır. plot() narıncı xətt ilə nəticələnən sıranı göstərir.

Diaqrama əlavə etdikdən sonra nəticəni addım-addım yoxlayın:

  1. Redaktorda kompilyasiya xətası olmadığına və qrafikdə bir sətir göründüyünə əmin olun.
  2. Göstərici parametrlərini açın və bunu yoxlayın SMA length 3- a bərabərdir.
  3. Üç bitişik qapalı zolağı seçin və onları diaqram məlumat mənbəyindən yaxına yazın.
  4. Üç dəyəri əlavə edin və 3 ilə bölün. Qiymətin dəqiqliyini nəzərə alaraq nəticəni üçüncü çubuqdakı xətt dəyəri ilə müqayisə edin.
  5. Növbəti qapalı zolağa keçin: ilk dəyəri pəncərədən çıxarın, yenisini əlavə edin və hesablamanı təkrarlayın.
  6. Açıq bara ayrıca baxın. Bağlamadan əvvəl təsdiqlənmiş aralıq dəyərini qeyd etməyin.

Dil məhdudiyyətləri və Midas yaxınlığında təhlükəsiz iş

Pine Script limitləri platforma kontekstindən başlayır. Skript onun üçün mövcud olan məlumatları görür və TradingView modelinə uyğun olaraq icra olunur. Tarixin dərinliyi, obyektlərin sayı, hesablama vaxtı və bəzi sorğu növləri məhduddur. Xüsusi limitlər dəyişə bilər, ona görə də onlar köhnə nümunədəki rəqəmləri köçürməkdənsə, mövcud rəsmi sənədlərdə yoxlanılmalıdır.

İkinci məhdudiyyət tarixlə real vaxt arasındakı fərqdir. Şərt qapalı çubuqlarda sabit görünə bilər, lakin açıq çubuqlarda dəyişə bilər. Təsdiqlənmiş etiket tapşırıqda vacibdirsə, onun yalnız bağlandıqdan sonra görünüb-göstərilməməsini açıq şəkildə müəyyənləşdirin. Erkən cavab vacibdirsə, yalnız uğurlu olanları deyil, bütün aralıq vəziyyəti qeyd edin.

Üçüncü məhdudiyyət - simulyasiya icraya bərabər deyil. Strategiya hesabatı broker emulyatorunun qaydalarına və test parametrlərinə uyğun olaraq qurulub. Bu, canlı sifarişdə eyni qiymətə, gecikmə və ya likvidliyin mövcudluğuna zəmanət vermir. Hər hansı bir geri çəkilmədən əvvəl komissiya, sürüşmə, mövqe ölçüsü və risk.

Midas yaxınlığında sadə haşiyə var. Yalnız dəvət üçün indikator icazə icazəsi olan məhsul kimi istifadə edilə bilər və qrafikdə icazə verilən nəticəni müşahidə edə bilər. Siz qorunan mənbə kodunu əldə etməyə, dekompilyasiya etməyə, kopyalamağa və ya təkrar istehsal etməyə cəhd edə bilməzsiniz. Təlim üçün öz problem tərtibinizə əsaslanaraq müstəqil skript yazın.

İmtina. Material təhsil xarakterlidir və fərdi investisiya məsləhəti deyil. Göstərici, skript və ya test cihazının nəticəsi gələcək nəticələrə zəmanət vermir. Ticarət kapital itkisi riskini ehtiva edir.

Təhlükəsiz təhsilə necə davam etmək olar

Pine Script is not a general purpose language. Its environment and data model are configured for calculations inside TradingView. Bu, daxil olmağı asanlaşdırır open, high, low, close, volume and time, but at the same time sets platform restrictions. The code works with the data set available to the chart, and the behavior on an open bar depends on the execution model.

Dil güclü şəkildə yazılmışdır, lakin yeni başlayanlar üçün praktiki fərqlə başlamaq daha vacibdir. Mənası 3 - bir sadə ədəd. close - sətirdən sətrinə dəyişən. ta.sma(close, 3) də bir sıradır, çünki orta üç dəyərdən ibarət pəncərədən istifadə edərək yenidən hesablanır. “Sadə bir dəyər gözlənilirdi, sıra əldə edildi” xətası adətən riyaziyyatı deyil, növlərin və istifadə kontekstinin uyğunsuzluğunu göstərir.

Şərhlər ilə başlayır //. Adları mənalı etmək daha yaxşıdır: lengthInput parametrin rolunu daha dəqiq izah edir x, A smaValue hesablanmış ortanı orijinaldan fərqləndirir close. This is especially important when the code is being reviewed by another person.

Strategies have an additional feature. Defolt olaraq, real vaxt çubuğunda strategiya hesablanması yalnız bağlandıqdan sonra baş verə bilər, əgər digər parametrlər aktivləşdirilməyibsə. Therefore, the same condition in the indicator and strategy cannot be automatically considered synchronous. Before comparing, write down the type of program, calculation settings and when the result was read.

For the first task, select the minimum type. Əgər düsturu başa düşmək və xətti görmək lazımdırsa, göstərici ilə başlayın. Move to strategy only after entry, exit, timing and costs are written down without ambiguity. Kod təkrarı artıq baş verdikdə və funksiya interfeysi sabit olduqda kitabxana seçin.

Əl ilə alınan nəticə uyğun gəlmirsə, “keyfiyyət TradingView” yox, dəqiq müqayisə şərtlərini yoxlayın: simvolun eyni olub-olmadığını yoxlayın. müddət açıqdır, qiymət növü eynidir, uzunluq düzgün göstərilib, çubuq bağlıdır, kifayət qədər tarix varmı, ekran dəqiqliyi eynidirmi. One green compilation status does not prove the correctness of the selected formula.

Minimal nümunə bilərəkdən xəbərdarlıqları, sifarişləri, fərqli vaxt çərçivəsi və mürəkkəb vəziyyət məntiqi məlumatlarına dair sorğuları ehtiva etmir. Bu, hər bir sıranı müşahidə edilə bilən nəticə ilə əlaqələndirməyə imkan verir. Aşağıdakı dəyişikliyi bir-bir edin: əvvəlcə 3 uzunluğunu 5 ilə əvəz edin və eyni vaxtda bir neçə şərt əlavə etmək əvəzinə pəncərəni əl ilə yenidən yoxlayın.

Safe training scenario next to Midas:

  1. Midas daxili məntiqinə istinad etmədən müşahidə edilə bilən qayda formalaşdırın, məsələn, "bağlamaqla SMA(3) qurun".
  2. Write a minimal independent Pine Script and manually check the values.
  3. Save the original and modified versions. Nəyin dəyişdiyini və hansı qapalı çubuqların uzlaşdırıldığını yazın.
  4. Midas etiketi yaxınlıqda görünürsə, yalnız vaxtı, çubuğun bağlanmasını və ictimaiyyətə görünən nəticəni qeyd edin.
  5. Do not claim that independent code repeats the algorithm Midas. Fərdi müşahidələrin üst-üstə düşməsi səbəbləri aşkar etmir və ekvivalentliyi sübut etmir.
  6. Müşahidədən ticarət əmri kimi deyil, öyrənmə jurnalı kimi istifadə edin.

Midas təlimində və göstəricilər yan-yana işləyir: əvvəlcə istifadəçi təkrarlana bilən nümunədən istifadə edərək mexanikanı yoxlayır, sonra diaqram kontekstində məhsul siqnallarını oxumağı öyrənir. Midas etiketi ticarətə daxil olmaq üçün avtomatik əmr deyil, təhlil aparmaq üçün səbəbdir. This order helps to separate the tool from your own solution.

Başlamaq üçün faydalıdır ticarət strategiyaları bölməsi, sonra rolu yoxlayın ticarət üçün göstəricilər və ayrıca sökün hərəkətli orta. Seçim göstəricilər TradingView başqasının kodunu kopyalamadan hansı problemlərin vizual şəkildə həll oluna biləcəyini görməyə kömək edəcək.

Mənbələr

Tez-tez verilən suallar

Pine Script sadə sözlərlə nədir?

Bu, TradingView daxilindəki proqramlaşdırma dilidir. Onun köməyi ilə formal qayda qrafik barları üzrə hesablama, vizual indikator, simulyasiya üçün strategiya və ya funksiyalar kitabxanasına çevrilir. Kod platforma tərəfindən kompilyasiya olunur və icra olunur. Dil özü faydalı ticarət ideyasını seçmir və nəticəni zəmanət etmir.

Kompüterimə Pine Script quraşdırmalıyam?

Əsas iş üçün №. Kod TradingView içindəki Pine Editor-da yazılır, orada kompilyasiya olunur və cədvələ əlavə edilir. Saxlama, yayımlama və xüsusiyyətlərə çıxış hesabınızdan və mövcud platforma siyasətlərindən asılıdır. Layihə üçün lokal mətn redaktoru istifadə oluna bilər, lakin Pine Script runtime TradingView.

Niyə Pine Script hər barda ifa olunur?

Cədvəldəki dəyərlərin əksəriyyəti ardıcıllıqdır: hər çubuğun öz bağlanışı və öz formula nəticəsi var. Buna görə proqram verilənlər dəstindən ardıcıl keçir. Tarixə görə, hesablama adətən hər bar üçün bir dəfə baş verir, Açıq real vaxt çubuğundakı göstərici hər yeniləmədə bağlanış təsdiqlənədək yenidən hesablana bilər.

Göstərici strategiyadan nə ilə fərqlənir?

indicator() is intended primarily for calculation and visualization. strategy() adds commands for hypothetical orders and a tester report, which is processed by the broker emulator. Strategiya hesabatı həqiqi icra deyil. Komissiya, sürüşmə və hesablama momenti parametrləri ayrı-ayrılıqda yoxlanılır.

Hər hansı TradingView göstəricisinin mənbə kodunu görmək mümkündürmü?

yox. Açıq nəşrlər üçün kod müəllifin seçimi ilə əlçatan ola bilər, lakin yalnız dəvət olunan və digər qorunan skriptlər mənbəni çıxarmaq və ya surətini çıxarmaq hüququ vermir. Təlim üçün öz tapşırığınız üçün müstəqil kod yazın və yalnız icazə verilən müşahidə olunan nəticələri müqayisə edin, alqoritmlərin ekvivalentliyini iddia etmədən.

Bu materialdan nə öyrənəcəksiniz
  • Skriptin üç məcburi hissəsini və icranın barlara görə ardıcıllığını təhlil edəcəksiniz
  • Kod yazmazdan əvvəl göstəricini, strategiyanı və kitabxananı ayırd edin
  • Minimal nümunə Pine Script v6 işlədin və SMA xəttini yoxlayın
  • Açıq barın dəyərinin niyə dəyişə biləcəyini başa düş
25 dəqiqəyə tətbiq edin
Başlanğıc

Material faydalı oldumu?

Bu dil versiyası üçün qiymətləndirmə hələ əlçatan deyil.

Şərhlər

Mənbə şərhləri tərcümə edilmir.

Profil üzrə ekspert
Max Vitkovsky
Market analyst

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

Midas indikatorunun Buy və Sell siqnalları ilə TradingView qrafiki
TradingView üçün Midas multiindikatoruTicarət üçün ən qabaqcıl indikatorlardan biri
  • Sonradan dəyişməyən siqnallar
  • İnteraktiv texniki təhlil
  • Seçmək üçün 7 strategiya
TradingView üçün Midas multiindikatoruSiqnal, stop və 3 hədəf — birbaşa qrafikdə
  • Siqnal şam bağlananda sabitləşir
  • Stop və 3 hədəf avtomatik qurulur
  • Əməliyyat planı girişdən əvvəl görünür