Introducere
Fără instrumentele de tranzacționare potrivite, nu puteți efectua analize tehnice eficiente. O strategie de tranzacționare puternică vă va ajuta să evitați greșelile comune, să vă îmbunătățiți gestionarea riscurilor și să vă creșteți capacitatea de a identifica și de a profita de oportunități.
Pentru mulți, TradingView este platforma de grafică ideală. Oferind un centru de instrumente de analiză tehnică, puternica aplicație web HTML5 este folosită de milioane de oameni pentru a urmări mișcările în Forex, criptomonede și piețele bursiere tradiționale.
TradingView are multe caracteristici puternice: ne permite să urmărim activele pe numeroase platforme de tranzacționare și să publicăm idei de tranzacționare în rețeaua sa socială. În acest articol, ne vom concentra pe personalizarea acestuia. Vom folosi Pine Script, propriul limbaj de programare TradingView, care ne oferă un control granular asupra aspectului diagramelor noastre.
Să începem!
Ce este Pine Script?
Pine Script este un limbaj de scripting care poate fi folosit pentru a modifica graficele dvs. TradingView. Platforma vă echipează deja cu multe funcții pentru a face acest lucru, dar Pine Script vă permite să faceți un pas mai departe. Indiferent dacă doriți să schimbați culorile sfeșnicului sau să testați o nouă strategie, Pine Editor vă va permite să vă personalizați graficele în timp real după cum credeți de cuviință.
Codul în sine este excelent documentat, așa că asigurați-vă că consultați manualul de utilizare pentru mai multe informații. Scopul nostru în acest tutorial este să discutăm câteva dintre elementele de bază și să introducem indicatori care pot fi folositori pentru tranzacționarea cu criptomonede.
Configurare
Este incredibil de simplu să începi cu Pine Script. Orice cod pe care îl scriem este rulat pe serverele TradingView, astfel încât să putem accesa editorul și să ne dezvoltăm scripturile dintr-un browser - fără a fi necesară nicio descărcare sau configurare suplimentară.
În acest tutorial, vom prezenta perechea valutară Bitcoin/Binance USD (BTCBUSD). Dacă nu aveți deja unul, continuați și creați un cont gratuit (există și un abonament pro disponibil, dar nu este necesar pentru acest ghid).
Urmați acest link și veți vedea o diagramă asemănătoare cu următoarea:

Al tău va fi probabil mai la zi.
Aici, vrem să obținem diagrama cu funcții complete - faceți clic pe butonul pentru a-l accesa. Acest lucru ne oferă, printre altele, o vedere mult mai detaliată, instrumente de desen și opțiuni pentru a trasa linii de tendință.

Graficul cu funcții complete. Puteți ajusta intervalul de timp făcând clic pe vizualizările de deasupra filelor evidențiate.
Nu vom discuta despre cum să folosiți diferitele instrumente disponibile, dar dacă sunteți serios în ceea ce privește analiza tehnică, vă sfătuim să vă familiarizați cu acestea. În stânga jos (subliniat în imagine), veți vedea câteva file diferite - faceți clic pe Pine Editor.
Editorul Pinului

Acest editor este locul unde se întâmplă magia. Îi vom spune ce vrem să facem, apoi facem clic pe Adăugare la diagramă pentru a vedea adnotările noastre care apar mai sus. Rețineți că lucrurile se pot încurca dacă includem mai multe adnotări simultan, așa că le vom elimina între exemple (clic dreapta în diagramă > Eliminați indicatorii).
Puteți vedea că avem deja câteva linii de cod acolo. Să facem clic pe Adăugare la diagramă pentru a vedea ce se întâmplă.

O a doua diagramă este adăugată sub originalul. Noua diagramă se întâmplă să reprezinte aceleași date. Plasați cursorul peste My Script și faceți clic pe cruce pentru a-l elimina. Acum, să cercetăm codul.
studiază ("Scriptul meu")Această primă linie este doar configurarea adnotării noastre. Este nevoie doar de numele pe care doriți să-l apelați indicatorului („Scriptul meu”, în acest caz), dar există și câțiva parametri opționali pe care îi putem adăuga. Unul dintre acestea este suprapunerea, care îi spune lui TradingView să plaseze indicatorul pe graficul existent (în loc să fie într-un segment nou). După cum puteți vedea din primul nostru exemplu, este implicit false. Deși nu îl vom vedea în acțiune acum, overlay=true adaugă indicatorul la graficul existent.
complot (închidere)Această linie este instrucțiunea de a reprezenta un grafic prețul apropiat al Bitcoin. plot ne oferă pur și simplu o diagramă cu linii, dar putem afișa și sfeșnice și bare, așa cum vom vedea în curând.
Acum, să încercăm următoarele:
//@version=4
studiază(„Scriptul meu”, suprapunere=adevărat)
complot(deschis, culoare=culoare.violet)Odată ce adăugați acest lucru, ar trebui să vedeți un al doilea grafic (care arată ca originalul mutat la dreapta). Tot ce am făcut este să trasăm prețul de deschidere și, deoarece deschiderea zilei curente este închiderea zilei precedente, are sens ca acestea să aibă o formă identică.
Bine! Să scăpăm de adnotările curente (rețineți că facem asta făcând clic dreapta și apăsând Eliminați indicatori). Plasați cursorul peste Bitcoin / BUSD și faceți clic pe butonul Ascunde pentru a șterge și graficul curent.
Mulți comercianți preferă diagramele cu lumânări, deoarece ne oferă mai multe informații decât un simplu complot precum cel pe care tocmai l-am făcut. Să le adăugăm în continuare.
//@version=4
studiază(„Scriptul meu”, suprapunere=adevărat)
plotcandle (deschis, sus, jos, închidere)Este un început bun, dar lipsa culorilor îl face puțin blând. În mod ideal, ar trebui să avem lumânări roșii atunci când deschiderea este mai mare decât închiderea pentru intervalul de timp dat și cele verzi dacă închiderea depășește deschiderea. Vom adăuga o linie deasupra funcției plotcandle():
//@version=4
studiază(„Scriptul meu”, suprapunere=adevărat)
culori = deschis >= închis? culoare.roșu : culoare.verde
plotcandle (deschis, sus, jos, închidere)Aceasta se uită la fiecare sfeșnic și verifică dacă deschiderea este mai mare sau egală cu închiderea. Dacă este, înseamnă că prețurile au scăzut de-a lungul perioadei, așa că va colora sfeșnicul în roșu. În caz contrar, îl va colora în verde. Modificați funcția plotcandle() pentru a trece această schemă de culori în:
//@version=4
studiază(„Scriptul meu”, suprapunere=adevărat)
culori = deschis >= închis? culoare.roșu : culoare.verde
plotcandle (deschis, înalt, scăzut, închidere, culoare=culori)Eliminați indicatorii actuali dacă nu ați făcut-o deja și adăugați-i pe acesta în diagramă. Acum ar trebui să avem ceva care seamănă cu o diagramă obișnuită cu lumânări.

Frumoasa!
Trasarea mediilor mobile (MA)
Avem câteva dintre elementele de bază jos. Să trecem la primul nostru indicator personalizat – media mobilă exponențială sau EMA. Acesta este un instrument valoros, deoarece ne permite să filtram orice zgomot de pe piață și să netezim acțiunea prețului.
EMA diferă ușor de media mobilă simplă (SMA), prin aceea că pune mai multă pondere în datele cele mai recente. Tinde să fie mai reactiv la mișcările bruște și este adesea folosit pentru jocuri pe termen scurt (în tranzacționarea zilnică, de exemplu).
Media mobilă simplă (SMA)
Am putea la fel de bine să complotăm SMA, doar ca să le putem compara pe cele două după. Adăugați această linie la scriptul dvs.:
plot(sma(close, 10))Aceasta arată media ultimelor zece zile. Modificați numărul dintre paranteze pentru a vedea cum se schimbă curba atunci când luați în considerare diferite lungimi.

SMA, pe baza ultimelor zece zile.
Media mobilă exponențială (EMA)
EMA va fi puțin mai dificil de înțeles, dar să nu vă faceți griji. Să descompunăm mai întâi formula:
EMA = (Închidere - EMA din ziua anterioară) * Multiplicator - EMA din ziua anterioarăDeci, ce ne spune asta? Ei bine, pentru fiecare zi, calculăm o nouă medie mobilă pe baza celei din ziua precedentă. Multiplicatorul este ceea ce „cântărește” cea mai recentă perioadă și se calculează cu următoarea formulă:
Multiplicator = 2 / (Lungimea EMA + 1)Ca și în cazul mediilor mobile simple, trebuie să specificăm cât de lungă va fi EMA. Sintactic, funcția de reprezentare a EMA este similară cu cea SMA. Trasează-l alături de SMA, astfel încât să le poți compara pe cele două:
//@version=4
studiază(„Scriptul meu”, suprapunere=adevărat)
plot(sma(close, 10))
complot(ema(închide,10))
Puteți observa o ușoară diferență între cele două tipuri de MA.
➠ Vrei să începi cu criptomoneda? Cumpărați Bitcoin pe Binance!
Scripturi încorporate
Până acum, am scris codul nostru manual, astfel încât să puteți înțelege. Dar haideți să introducem ceva care ne poate economisi timp, mai ales dacă scriem scripturi mai complexe și nu vrem să le facem de la zero.
În partea de sus, din dreapta a editorului, faceți clic pe Nou. Veți primi un meniu derulant cu tot felul de indicatori tehnici diferiți. Faceți clic pe Moving Average Exponential pentru a vedea codul sursă pentru un indicator EMA.

Continuați și adăugați asta la diagramă.
Acesta este diferit de al nostru – veți observa funcțiile input(). Acestea sunt drăguțe din perspectiva utilizării, deoarece puteți face clic pe această casetă...

...și modificați cu ușurință unele dintre valori într-o fereastră pop-up făcând clic pe rotița Setări.

Vom adăuga câteva funcții input() în următorul nostru script pentru a demonstra acest lucru.
Graficul indicatorului indicelui de forță relativă (RSI).
Indicele de putere relativă (RSI) este un alt indicator esențial în analiza tehnică. Este cunoscut ca un indicator de impuls, ceea ce înseamnă că măsoară rata la care activele sunt cumpărate și vândute. Prezentat pe o scară de la 0 la 100, un scor RSI încearcă să informeze investitorii dacă activele sunt supracumpărate sau supravândute. De obicei, un activ poate fi considerat supravândut dacă are un scor mai mic sau egal cu 30 și ar putea fi supracumpărat cu un scor mai mare sau egal cu 70.
Dacă te îndrepți la Nou > Strategie RSI, poți vedea asta pentru tine. RSI este, în general, măsurat pe perioade de 14 (adică, 14 ore sau 14 zile), dar sunteți liber să modificați această setare pentru a se potrivi propriei strategii.
Adăugați asta la diagramă. Ar trebui să vedeți câteva săgeți afișate acum (definite de funcția strategie.entry() din cod). RsiLE indică o oportunitate potențială de a lungi activul, deoarece acesta poate fi supravândut. RsiSE evidențiază posibilele puncte în care să scurtați activul atunci când este supracumpărat. Rețineți că, la fel ca în cazul tuturor indicatorilor, nu ar trebui să vă bazați neapărat pe aceștia ca dovezi sigure că prețurile vor scădea/crește.
Backtesting
Există o modalitate de a ne testa indicatorii personalizați. Deși performanța trecută nu este o garanție a rezultatelor viitoare, testarea retrospectivă a scripturilor ne poate oferi o idee despre cât de eficiente sunt acestea în captarea semnalelor.
Vom da mai jos un exemplu de script simplu. Vom crea o strategie simplă care intră într-o poziție lungă când prețul BTC scade sub 11.000 USD și iese din poziție când prețul depășește 11.300 USD. Putem vedea apoi cât de profitabilă ar fi fost această strategie din punct de vedere istoric.
//@version=4
strategie ("ToDaMoon", overlay=true)
enter = input(11000)
ieșire = intrare (11300)
pret = aproape
dacă (preț <= introduceți)
strategie.entry(„CumpărațiCumpărarea”, strategie.long, comentariu="CumpărațiCumpărarea”)
dacă (preț >= ieșire)
strategie.close_all(comment="SellTheNews")Aici am definit intrarea și ieșirea ca variabile - ambele sunt intrări, ceea ce înseamnă că le putem modifica pe diagramă mai târziu. De asemenea, am configurat variabila preț, care ia închiderea pentru fiecare perioadă. Apoi, avem o logică sub forma declarațiilor if. Dacă partea dintre paranteze este adevărată, atunci blocul indentat de sub ea va fi rulat. În caz contrar, va fi omis.
Deci, dacă prețul este mai mic sau egal cu intrarea dorită, prima expresie este evaluată ca adevărată și vom deschide o poziție lungă. Odată ce prețul egalează sau depășește ieșirea dorită, al doilea bloc va fi declanșat, închidend toate pozițiile deschise.
Vom adnota diagrama cu săgeți care arată unde am intrat/ieșit, așa că am specificat ce să etichetăm aceste puncte cu parametrul de comentariu (în acest exemplu, „BuyTheDip” și „SellTheNews”). Copiați codul și adăugați-l în diagramă.

Acum puteți vedea indicatorii pe diagramă. Este posibil să fie nevoie să micșorați.
TradingView aplică automat regulile dvs. datelor mai vechi. De asemenea, veți observa că trece de la Pine Editor la fila Strategy Tester. Acest lucru vă permite să vedeți o imagine de ansamblu asupra profiturilor dvs. potențiale, o listă de tranzacții și fiecare dintre performanțele lor individuale.

Pozițiile în care am intrat și am ieșit.
Legând-o împreună
Este timpul să ne scriem propriul scenariu folosind unele dintre conceptele pe care le-am văzut până acum. Vom combina EMA și RSI și vom folosi valorile lor pentru a colora sfeșnice, oferind perspective pe care le putem vizualiza cu ușurință.
Acest lucru nu ar trebui interpretat ca un sfat financiar - nu există o modalitate corectă obiectiv de a utiliza acest indicator. Ca și în cazul tuturor celorlalți, ar trebui să fie folosit împreună cu alte instrumente pentru a vă dezvolta propria strategie.
Acum să lucrăm la noul nostru scenariu. Eliminați toți indicatorii dvs. din diagramă și ascundeți și graficul Bitcoin/BUSD, astfel încât să avem o pânză curată la care să lucrăm.
Să începem prin a ne defini studiul. Simțiți-vă liber să-i denumiți cum doriți, doar asigurați-vă că setați overlay=true.
studiază(titlu="Scriptul Academiei Binance", suprapunere=adevărat)Amintiți-vă formula noastră EMA de mai devreme. Trebuie să oferim multiplicatorului lungimea EMA. Să o facem o intrare care necesită un număr întreg (deci, fără zecimale). De asemenea, vom seta un minim care poate fi (minval) și o valoare implicită (defval).
studiază(titlu="Scriptul Academiei Binance", suprapunere=adevărat)
emaLength = input(title="EMA Length", type=input.integer, defval=25, minval=0)Folosind această nouă variabilă, putem calcula valoarea EMA pentru fiecare lumânare din graficul nostru:
studiază(titlu="Scriptul Academiei Binance", suprapunere=adevărat)
emaLength = input(title="EMA Length", type=input.integer, defval=25, minval=0)
emaVal = ema(închidere, emaLength)Grozav. Pe RSI. Îi vom da o lungime într-un mod similar:
studiază(titlu="Scriptul Academiei Binance", suprapunere=adevărat)
emaLength = input(title="EMA Length", type=input.integer, defval=25, minval=0)
emaVal = ema(închidere, emaLength)
rsiLength = input(title="RSI Length", type=input.integer, defval=25, minval=0)Și acum, îl putem calcula:
studiază(titlu="Scriptul Academiei Binance", suprapunere=adevărat)
emaLength = input(title="EMA Length", type=input.integer, defval=25, minval=0)
emaVal = ema(închidere, emaLength)
rsiLength = input(title="RSI Length", type=input.integer, defval=25, minval=0)
rsiVal = rsi(închidere, rsiLungime)În această etapă, să punem cap la cap logica care colorează sfeșnicele în funcție de valorile EMA și RSI. Să luăm o situație în care (a) prețul de închidere al lumânării depășește EMA și (b) în care RSI este peste 50.
De ce? Ei bine, ați putea decide că acești indicatori pot fi utilizați împreună pentru a vă spune când să long sau short Bitcoin. De exemplu, ați putea crede că îndeplinirea ambelor condiții înseamnă că este un moment bun pentru a intra pe o poziție lungă. Sau dimpotrivă, l-ați putea folosi pentru a vă informa când nu este scurt, chiar dacă alți indicatori spun contrariul.
Deci, următoarea noastră linie va arăta astfel:
studiază(titlu="Scriptul Academiei Binance", suprapunere=adevărat)
emaLength = input(title="EMA Length", type=input.integer, defval=25, minval=0)
emaVal = ema(închidere, emaLength)
rsiLength = input(title="RSI Length", type=input.integer, defval=25, minval=0)
rsiVal = rsi(închidere, rsiLungime)
culori = close > emaVal și rsiVal > 50 ? culoare.verde : culoare.roșuDacă traducem acest lucru în limba engleză simplă, spunem doar că dacă valoarea EMA depășește prețul de închidere și scorul RSI depășește 50, vom colora lumânarea în verde. În caz contrar, îl vom colora în roșu.
Apoi, trasează EMA:
studiază(titlu="Scriptul Academiei Binance", suprapunere=adevărat)
emaLength = input(title="EMA Length", type=input.integer, defval=25, minval=0)
emaVal = ema(închidere, emaLength)
rsiLength = input(title="RSI Length", type=input.integer, defval=25, minval=0)
rsiVal = rsi(închidere, rsiLungime)
culori = close > emaVal și rsiVal > 50 ? culoare.verde : culoare.roșu
plot(emaVal, „EMA”)În cele din urmă, trasează lumânările, asigurându-vă că includeți parametrul de culoare:
studiază(titlu="Scriptul Academiei Binance", suprapunere=adevărat)
emaLength = input(title="EMA Length", type=input.integer, defval=25, minval=0)
emaVal = ema(închidere, emaLength)
rsiLength = input(title="RSI Length", type=input.integer, defval=25, minval=0)
rsiVal = rsi(închidere, rsiLungime)
culori = close > emaVal și rsiVal > 50 ? culoare.verde : culoare.roșu
plot(emaVal, „EMA”)
plotcandle (deschis, înalt, scăzut, închidere, culoare=culori)Și acesta este scenariul! Adăugați-l în diagramă pentru a-l vedea în acțiune.

Un grafic BTC/BUSD cu indicatorul EMA/RSI.
Gânduri de închidere
În acest articol, am analizat câteva exemple de bază despre ceea ce puteți face cu Editorul Pine de la TradingView. Până acum, ar trebui să fii încrezător în a face adnotări simple la graficele de preț pentru a obține informații suplimentare din propriii indicatori.
Ne-am interesat doar de câțiva indicatori aici, dar este ușor să creați alții mai complexi - fie selectând scripturile încorporate din Nou, fie scriindu-le singur.
Lipsă de inspirație? Următoarele articole vă pot oferi câteva idei pentru următorul dvs. proiect:
Un scurt ghid pentru indicatorul SAR parabolic
Un ghid pentru stăpânirea retragerii Fibonacci
Indicatorii conducători și întârziați explicați
Indicatorul MACD explicat

