Kas ir Pine Script?

Pine Script ir skriptu valoda, ko izmanto, lai modificētu jūsu diagrammas platformā TradingView. Platforma nodrošina daudzas funkcijas, lai to izdarītu, taču Pine Script ļauj virzīties uz savu mērķi. Neatkarīgi no tā, vai vēlaties mainīt cenu darbību diagrammu krāsas vai pārbaudīt jaunu stratēģiju, Pine redaktors palīdzēs jums pielāgot reāllaika diagrammas pēc jūsu ieskata.

Kods ir labi dokumentēts, tāpēc noteikti izlasiet lietotāja rokasgrāmatu, lai iegūtu plašāku informāciju. Izmantojot šo apmācību, mūsu mērķis ir apspriest dažus pamatus un nodrošināt rādītājus, kas var būt noderīgi digitālo valūtu tirdzniecībā.

sagatavošana

Ir ļoti viegli sākt lietot Pine Script. Jebkurš mūsu rakstītais kods darbojas TradingView serveros, tāpēc mēs varam izmantot redaktoru un izstrādāt skriptus no pārlūkprogrammas – nav nepieciešama papildu lejupielāde vai konfigurēšana.

Šajā apmācībā mēs izveidosim Bitcoin/Binance USD (BTCBUSD) valūtu pāra diagrammu. Ja jums vēl nav konta, varat to izveidot bez maksas (ir pieejams arī profesionāls abonements, taču tas nav nepieciešams šai rokasgrāmatai).

Sekojiet šai saitei, un jūs redzēsiet diagrammu, kas ir līdzīga šai:

Jūsu diagramma, iespējams, būs sarežģītāka.

Šeit mēs vēlētos pilnībā parādītu diagrammu — noklikšķiniet uz pogas, lai tai piekļūtu. Tas sniedz mums detalizētāku pārskatu un zīmēšanas rīkus, kā arī iespējas zīmēt tendences, kā arī citas funkcijas.

Pilnībā aprīkota diagramma. Varat rediģēt laika posmu, noklikšķinot uz skatiem virs iezīmētajām cilnēm.

Mēs neapspriedīsim, kā izmantot dažādus pieejamos rīkus, taču, ja jūs interesē tehniskā analīze, mēs ļoti iesakām tos pārbaudīt, lai ar tiem iepazītos. Apakšējā kreisajā stūrī (attēlā izcelts) atradīsit dažas dažādas cilnes — noklikšķiniet uz Pine Editor.

Priedes redaktors

Šis redaktors piedāvā jums burvīgu funkciju kopumu. Mēs pateiksim tai, ko vēlamies darīt, un pēc tam noklikšķiniet uz Pievienot diagrammai, lai mūsu komentāri tiktu parādīti augšpusē. Lūdzu, ņemiet vērā, ka diagramma var kļūt nekārtīga, ja ievadāt vairākus komentārus vienlaikus, tāpēc mēs tos noņemsim starp piemēriem (ar peles labo pogu noklikšķiniet uz diagrammas > Noņemt rādītājus).

Var redzēt, ka mums jau ir divas kodu rindas. Noklikšķināsim uz Pievienot diagrammai, lai redzētu, kas notiek.

Zem sākotnējās diagrammas ir pievienota otra diagramma. Jaunajā diagrammā tiks attēloti tie paši dati. Novietojiet peles kursoru virs pogas Mans skripts un noklikšķiniet uz elipses, lai to noņemtu. Apspriedīsim kodu sīkāk.

pētījums ("Mans skripts")

Pirmajā rindā ir izveidoti mūsu komentāri. Tam ir nepieciešams tikai nosaukums, kuru vēlaties nosaukt indikatoram (šajā gadījumā "Mans skripts", bet ir arī daži izvēles mainīgie, ko varam pievienot). Viens no šādiem mainīgajiem ir pārklājums, kas liek platformai novietot indikatoru pašreizējā diagrammā (nevis jaunā sektorā). Kā redzat pirmajā piemērā, pēc noklusējuma tas ir nepatiess. Tātad, mēs to neredzēsim tagad, overlay=true pievieno indikatoru pašreizējai diagrammai.

sižets (tuvu)

Šī rindiņa ir instrukcija, lai attēlotu Bitcoin slēgšanas cenu. Grafikā ir parādīta līniju diagramma, taču mēs varam arī attēlot cenu darbību un joslu diagrammas, kā to redzēsim pēc brīža.

Tagad izmēģināsim tālāk norādītās darbības.

//@version=4 pētījums("Mans skripts", pārklājums=true) plot(open, color=color.purple)

Kad esat pievienojis šo simbolu, jums vajadzētu redzēt otru diagrammu (šķiet, ka sākotnējā diagramma ir pārvietota uz labo pusi). Viss, ko mēs izdarījām, bija sākuma cena, jo pašreizējās dienas sākuma cena ir iepriekšējās dienas slēgšanas cena, ir jēga, ka tām ir līdzīga forma.

Labi! Atbrīvosimies no esošajiem komentāriem (atcerieties, ka to darām, ar peles labo pogu noklikšķinot un nospiežot Noņemt indikatorus). Pārvietojiet kursoru virs BTC/BUSD un pēc tam noklikšķiniet uz pogas Slēpt, lai dzēstu arī pašreizējo diagrammu.

Daudzi tirgotāji dod priekšroku cenu diagrammām, jo ​​tās sniedz mums vairāk informācijas nekā vienkāršs zīmējums, kā mēs tikko darījām. Pievienosim tos zemāk.

//@version=4 pētījums("Mans skripts", overlay=true) plotcandle(atvērts, augsts, zems, aizvērts)

Labs sākums, bet krāsas trūkums padara to mazliet blāvu. Ideālā gadījumā mums vajadzētu būt sarkanām svecēm, kad atvērtā cena ir lielāka par slēgšanas cenu noteiktā laika posmā, un zaļām svecēm, kad slēgšanas cena pārsniedz atvērto cenu. Mēs pievienosim rindu virs rekvizīta candle plot():

//@version=4 pētījums("Mans skripts", overlay=true) krāsas = atvērts >= aizvērt ? krāsa.sarkana: krāsa.zaļa svece (atvērta, augsta, zema, aizvērta)

Tas notiek katrā cenu darbības diagrammā, kā arī pārbaudot, vai sākuma cena ir lielāka vai vienāda ar slēgšanas cenu. Šajā gadījumā tas nozīmē, ka cenas ir kritušās noteiktā laika posmā, tāpēc cenu darbības diagramma būs sarkanā krāsā. Pretējā gadījumā tas būs zaļš. Mainiet funkciju drawcandle(), lai ievadītu krāsu shēmu:

//@version=4 pētījums("Mans skripts", overlay=true) krāsas = atvērts >= aizvērt ? krāsa.sarkana : krāsa.zaļa svece (atvērta, augsta, zema, tuvu, krāsa = krāsas)

Noņemiet esošos indikatorus, ja vēl neesat tos noņēmis, un pievienojiet šo indikatoru diagrammai. Mums vajadzētu būt kaut kam, kas atspoguļo parasto cenu darbības diagrammu.

Slīdošo vidējo vērtību zīmēšana (MA)

Tālāk ir sniegti daži pamati. Pārejam pie pirmā pielāgotā indikatora – eksponenciālā mainīgā vidējā jeb EMA. Tas ir vērtīgs rīks, kas ļauj mums novērst tirgus traucējumus un atvieglot tirgus kustību izpratni.

Eksponenciālais mainīgais vidējais nedaudz atšķiras no vienkāršā mainīgā vidējā (SMA), jo šis vidējais koncentrējas uz jaunākajiem datiem. Tam ir tendence reaģēt uz pēkšņām kustībām, un to parasti izmanto īstermiņa darījumos (piemēram, dienas tirdzniecība).

Vienkāršais mainīgais vidējais (SMA)

Mēs varam arī izveidot vienkāršu mainīgo vidējo, tāpēc mums tie jāsalīdzina vēlāk. Pievienojiet skriptam šo rindiņu:

plot(sma(tuvu, 10))

Tas ir pēdējo 10 dienu vidējais rādītājs. Pielāgojiet skaitli iekavās, lai redzētu, cik lielā mērā līkne mainās, ja tiek ņemti vērā dažādi periodi.

Vienkāršais mainīgais vidējais ir balstīts uz iepriekšējām 10 dienām.

Eksponenciālais mainīgais vidējais (EMA)

Eksponenciālo mainīgo vidējo var būt nedaudz grūti saprast, taču neuztraucieties. Apskatīsim vienādojumu sīkāk:

EMA = (Aizvērt — iepriekšējās dienas EMA) * reizinātājs — iepriekšējās dienas EMA

Tātad, ko tas mums saka? Katras dienas jaunais mainīgais vidējais tiek aprēķināts, pamatojoties uz iepriekšējās dienas mainīgo vidējo. Reizinātājs ir “datu svars” par pēdējo periodu, un to aprēķina, izmantojot šādu vienādojumu:

Reizinātājs = 2 / (EMA garums + 1)

Lai iegūtu vienkāršus mainīgos vidējos rādītājus, mums ir jānosaka, cik ilgi eksponenciālais mainīgais vidējais ilgs. Struktūras ziņā eksponenciālais slīdošais vidējais grafiks ir līdzīgs vienkāršajam slīdošā vidējā grafikam. Uzzīmējiet to blakus vienkāršajam mainīgajam vidējam rādītājam, lai varētu tos salīdzināt:

//@version=4 pētījums("Mans skripts", pārklājums=true) plot(sma(close, 10)) plot(ema(close,10))

Jūs varat redzēt nelielu atšķirību starp diviem mainīgo vidējo vērtību veidiem.

Iegultie skripti

Līdz šim kodu esam rakstījuši ar roku, lai jūs ar to zinātu. Bet piedāvāsim kaut ko tādu, kas palīdzēs ietaupīt laiku, it īpaši, ja rakstām sarežģītākus skriptus, un mēs nevēlamies to darīt no nulles.

Noklikšķiniet uz pogas Jauns, kas atrodas redaktora augšējā labajā stūrī. Jūs redzēsiet nolaižamo izvēlni ar visiem dažāda veida tehniskajiem indikatoriem. Noklikšķiniet uz eksponenciālais mainīgais vidējais, lai skatītu indikatora eksponenciālais mainīgais vidējais avota kodu.

Pēc tam pievienojiet to diagrammai.

Tas atšķiras no mūsu pašu kodiem — jūs pamanīsit ievades () rekvizītus. Tas ir lieliski piemērots lietošanai, jo varat noklikšķināt uz šī lodziņa…

Varat arī viegli mainīt dažas vērtības uznirstošajā logā, noklikšķinot uz iestatījumu riteņa.

Mēs pievienosim divus ievades () rekvizītus nākamajā skriptā, lai parādītu, kā to izdarīt.

Relatīvā spēka indeksa (RSI) diagramma

Relatīvā spēka indekss (RSI) ir viens no tehniskās analīzes pamatrādītājiem. Tas ir pazīstams kā impulsa indikators, kas nozīmē, ka tas mēra aktīvu pirkšanas un pārdošanas ātrumu. Vērtējums skalā no 0 līdz 100, RSI rādītājs mēģina pateikt investoriem, vai aktīvs ir pārpirkts vai pārpārdots. Parasti aktīvs tiek uzskatīts par pārpārdotu, ja tā vērtējums ir mazāks vai vienāds ar 30, un tas tiek uzskatīts par pārpirktu, ja tā vērtējums ir lielāks vai vienāds ar 70.

Ja atverat sadaļu Jauns > RSI stratēģija, varat to redzēt pats. RSI tiek mērīts 14 periodos (t.i., 14 stundās vai 14 dienās), taču jūs varat brīvi pielāgot šo iestatījumu, lai tas atbilstu jūsu stratēģijai.

Pievienojiet to diagrammai. Tagad jums vajadzētu redzēt dažas bultiņas (ko kodā identificē ar enter.strategy() rekvizītu). RsiLE norāda uz iespējamām aktīva iegādes iespējām, jo ​​tas var nonākt pārpārdotā zonā. Lai gan RsiSE izceļ aktīva potenciālos pārdošanas punktus, kad tas atrodas pārpirktajā zonā. Lūdzu, ņemiet vērā, ka, tāpat kā visus rādītājus, uz tiem nevajadzētu paļauties kā uz galīgiem cenu pieauguma vai krituma pierādījumiem.

Veiciet atpakaļpārbaudi

Ir veids, kas ļauj mums pārbaudīt pielāgotos rādītājus. Lai gan pagātnes veiktspēja negarantē turpmākos rezultātus, skriptu atpakaļpārbaudes process sniedz mums priekšstatu par to, cik efektīvi tie uztver signālus.

Zemāk ir vienkārša skripta piemērs. Mēs izveidosim vienkāršu stratēģiju, lai ieietu garajā tirdzniecībā, kad Bitcoin cena nokrītas zem 11 000 USD, un izietu no tirdzniecības, kad cena pārsniedz USD 11 300. Tādējādi mēs varam zināt, cik ienesīga šī stratēģija ir bijusi vēsturiski.

//@version=4 stratēģija("ToDaMoon", overlay=true) enter = input(11000) exit = input(11300) price = close if (price <= enter)     strategy.entry("BuyTheDip", strategy.long , comment="BuyTheDip") if (cena >= iziet)    strategio.close_all(comment="SellTheNews")

Šeit mēs esam definējuši ieejas un izejas punktus kā mainīgos - abi ir ievades, kas nozīmē, ka mēs tos varam mainīt diagrammā vēlāk. Esam iestatījuši arī cenu mainīgo, kas fiksē katra perioda noslēguma cenu. Tādējādi ir kaut kas loģisks, izmantojot if paziņojumus. Ja daļa iekavās ir patiesa, tiks aktivizēts atkāpes bloks. Pretējā gadījumā tas tiks izlaists.

Tāpat, ja cena samazināsies vai būs vienāda ar vēlamo ieejas cenu, izteiksme tiks novērtēta kā patiesa, un mēs atvērsim pirkšanas darījumu. Kad cena būs vienāda ar vai pārsniedz nepieciešamo izejas cenu, tiks aktivizēts otrais bloks, kā arī tiek slēgti visi atvērtie darījumi.

Mēs pievienosim diagrammai komentārus, izmantojot bultiņas, lai norādītu ieejas un izejas punktus, tāpēc mēs esam nosaukuši šos punktus komentāru rāmī (šajā piemērā "Pirkt kritumu" un "Pārdot jaunumiem"). Nokopējiet simbolu un pievienojiet to diagrammai.

Tagad diagrammā varat redzēt rādītājus. Jums var būt nepieciešams tālināt, lai apskatītu.

TradingView piemēro jūsu noteikumus vecākiem datiem. Jūs arī pamanīsit pāreju no Pine redaktora uz cilni Strategy Tester. Tas ļauj jums redzēt potenciālās peļņas pārskatu, darījumu sarakstu un to attiecīgos rezultātus.

Darījumi, kuros ienācām un izgājām.

Saistiet vienumus kopā

Ir pienācis laiks rakstīt savu programmu, izmantojot dažus līdz šim aprakstītos jēdzienus. Mēs apvienosim gan eksponenciālo mainīgo vidējo, gan RSI, izmantojot to vērtību, lai izkrāsotu cenu darbības diagrammas un iegūtu pārdomātu ieskatu.

To nevajadzētu uztvert kā finanšu padomu, jo nav objektīvi definēta pareiza veida, kā izmantot šo rādītāju. Līdzīgi kā visi citi rādītāji, šis rādītājs ir jāizmanto kopā ar citiem instrumentiem, lai izstrādātu savu ieguldījumu stratēģiju.

Sāksim strādāt pie jaunā skripta. Noņemiet visus rādītājus no diagrammas un paslēpiet arī BTC/BUSD diagrammu, lai mums būtu tukša diagramma, ar kuru sākt strādāt.

Sāksim ar pētījuma definēšanu. Varat izmantot jebkuru nosaukumu, tikai noteikti iestatiet overlay=true.

pētījums(title="Binance Academy Script", overlay=true)

Atcerieties eksponenciālo mainīgo vidējo vienādojumu, par kuru mēs runājām iepriekš. Mums ir jānodrošina reizinātājs ar datiem par periodu, ko aizņems eksponenciālais mainīgais vidējais. Padarīsim to par ievades lauku, kurā ir nepieciešams vesels skaitlis (tātad bez decimālzīmēm). Mēs arī norādīsim minimālo (minval) un noklusējuma vērtību (defval).

pētījums(title="Binance Academy Script", overlay=true) emaLength = input(title="EMA Length", type=input.integer, defval=25, minval=0)

Mēs varam aprēķināt EMA vērtību katrai diagrammas svecei, izmantojot jauno mainīgo:

pētījums(title="Binance Academy Script", overlay=true) emaGarums = input(title="EMA Length", type=input.integer, defval=25, minval=0) emaVal = ema(close, emaLength)

pārsteidzošs. Attiecībā uz relatīvā spēka indeksu (RSI). Mēs ievadīsim periodu līdzīgi:

pētījums(title="Binance Academy Script", overlay=true) emaGarums = input(title="EMA Length", type=input.integer, defval=25, minval=0) emaVal = ema(close, emaLength) rsiLength = ievade (title="RSI Length", type=input.integer, defval=25, minval=0)

Tagad mēs varam aprēķināt:

pētījums(title="Binance Academy Script", overlay=true) emaGarums = input(title="EMA Length", type=input.integer, defval=25, minval=0) emaVal = ema(close, emaLength) rsiLength = ievade (title="RSI garums", tips=input.integer, defval=25, minval=0) rsiVal = rsi(close, rsiLength)

Šajā brīdī jums jāapzinās, ka cenu darbību diagrammu krāsas ir atkarīgas no EMA un RSI vērtībām. Apskatīsim piemēru, kad (a) sveces slēgšanas cena šķērso EMA un (b) RSI pārsniedz 50.

Kāpēc? Jūs varat izlemt, ka šos rādītājus var izmantot kopā, lai norādītu, kad pirkt vai pārdot Bitcoin. Piemēram, jūs varat domāt, ka abu nosacījumu izpilde nozīmē, ka ir piemērots laiks, lai uzsāktu ilgstošu tirdzniecību. Varat arī izmantot indikatorus, lai atgādinātu, kad nevajadzētu pārdot, pat ja citi rādītāji liecina par pretējo.

Tātad nākamā rinda izskatās šādi:

pētījums(title="Binance Academy Script", overlay=true) emaGarums = input(title="EMA Length", type=input.integer, defval=25, minval=0) emaVal = ema(close, emaLength) rsiLength = ievade (title="RSI Length", type=input.integer, defval=25, minval=0) rsiVal = rsi(close, rsiLength) krāsas = tuvu > emaVal un rsiVal > 50? krāsa.zaļa : krāsa.sarkana

Ja mēs to tulkojam vienkāršā angļu valodā, tas nozīmē, ka, ja EMA pārsniedz slēgšanas cenu un RSI rādītājs pārsniedz 50, mēs iekrāsosim sveci zaļā krāsā. Pretējā gadījumā tas būs sarkans.

Pēc tam uzzīmējiet eksponenciālo mainīgo vidējo:

pētījums(title="Binance Academy Script", overlay=true) emaGarums = input(title="EMA Length", type=input.integer, defval=25, minval=0) emaVal = ema(close, emaLength) rsiLength = ievade (title="RSI Length", type=input.integer, defval=25, minval=0) rsiVal = rsi(close, rsiLength) krāsas = tuvu > emaVal un rsiVal > 50? krāsa.zaļa : krāsa.sarkans gabals(emaVal, "EMA")

Visbeidzot, uzzīmējiet sveces, noteikti iekļaujot krāsu mainīgo:

pētījums(title="Binance Academy Script", overlay=true) emaGarums = input(title="EMA Length", type=input.integer, defval=25, minval=0) emaVal = ema(close, emaLength) rsiLength = ievade (title="RSI Length", type=input.integer, defval=25, minval=0) rsiVal = rsi(close, rsiLength) krāsas = tuvu > emaVal un rsiVal > 50? krāsa.zaļa : krāsa.sarkans gabals(emaVal, "EMA") plotcandle(atvērta, augsta, zema, tuvu, krāsa = krāsas)

Un esat pabeidzis ar skriptu! Pievienojiet to savai diagrammai, lai redzētu to darbībā.

BTC/BUSD diagramma, izmantojot EMA/RSI.

Noslēguma domas

Šajā rakstā mēs apskatījām dažus pamata piemērus tam, ko var izdarīt, izmantojot TradingView Pine redaktoru. Jums vajadzētu būt iespējai sniegt vienkāršus komentārus cenu diagrammā, lai iegūtu papildu ieskatu no saviem rādītājiem.

Šeit mēs esam izcēluši tikai divus rādītājus, taču ir viegli izveidot sarežģītākus rādītājus — vai nu no jauna definējot iebūvētos skriptus, vai rakstot tos pats.

Nepieciešamas iedvesmojošas idejas? Šie raksti var palīdzēt jums gūt dažas idejas nākamajam projektam: