Introducere
Fără instrumentele de tranzacționare potrivite, nu puteți efectua analiză tehnică eficientă. O strategie de tranzacționare solidă 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 ideală de grafice. 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 pe bursele Forex, de criptomonede și piețele de acțiuni 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 pe rețeaua sa socială. În acest articol, ne vom concentra pe personalizarea acestuia. Vom folosi Pine Script, propriul limbaj de programare al TradingView, care ne oferă un control granular asupra aspectului graficelor noastre.
Să începem!
Ce este Pine Script?
Pine Script este un limbaj de programare care poate fi folosit pentru a modifica graficele dvs. TradingView. Platforma vă oferă deja o mulțime de funcții, dar Pine Script vă permite să faceți un pas mai departe. Indiferent dacă doriți să schimbați culorile lumânărilor 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ă nu uitați să consultați manualul de utilizare pentru mai multe informații. Scopul nostru în acest tutorial este să prezentăm câteva dintre elementele de bază și indicatorii care pot fi folositori pentru tranzacționarea cu criptomonede.
Configurare
Utilizarea Pine Script este incredibil de simplă. Orice cod pe care îl scriem este rulat pe serverele TradingView, astfel că putem să accesăm 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 un cont, creați unul gratuit (există și un abonament pro disponibil, dar nu este necesar pentru acest ghid).
Accesați acest link și veți vedea un grafic asemănător cu următorul:
Al dvs. va fi probabil mai la zi.
Aici, dorim să vedem graficul cu funcții complete - apăsați pe buton 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 apăsând pe vizualizările de deasupra filelor evidențiate.
Nu vom discuta cum să folosiți diferitele instrumente disponibile, dar, dacă vă interesează cu adevărat analiza tehnică, vă sfătuim să vă familiarizați cu acestea. În stânga jos (evidențiat în imagine), veți vedea câteva file diferite – apăsați pe Pine Editor.
Pine Editor
Acest editor este locul unde are loc magia. Îi vom spune ce vrem să facem, apoi vom apăsa pe Add to Chart (Adăugare pe grafic) pentru a vedea adnotările noastre afișate deasupra. Rețineți că lucrurile se pot încurca dacă includem mai multe adnotări simultan, așa că le vom elimina în exemplele noastre (faceți clic dreapta în grafic > Remove Indicators (Eliminați indicatorii).
Puteți vedea că avem deja câteva linii de cod acolo. Să apăsăm pe Add to Chart (Adăugare pe grafic) pentru a vedea ce se întâmplă.
Un al doilea grafic este adăugat sub cel inițial. Noul grafic reprezintă aceleași date. Plasați cursorul peste My Script (Scriptul meu) și faceți clic pe cruce pentru a-l elimina. Acum, să analizăm codul.
study("My Script")
Această primă linie doar ne configurează adnotarea. Este nevoie doar de numele pe care doriți să-l atribuiți indicatorului („My Script”, în acest caz), dar există și câțiva parametri opționali pe care îi putem adăuga. Unul dintre aceștia este overlay (suprapunere), care îi spune platformei TradingView să plaseze indicatorul pe graficul existent (în loc să îl plaseze într-un segment nou). După cum puteți vedea din primul nostru exemplu, valoarea prestabilită este false. Deși nu îl vom vedea în acțiune acum, overlay=true adaugă indicatorul la graficul existent.
plot(close)
Această linie este instrucțiunea de a reprezenta prețul de închidere al Bitcoin. plot ne oferă pur și simplu un grafic cu linii, dar putem afișa și lumânări și bare, așa cum vom vedea în curând.
Acum, să încercăm următoarele:
//@version=4 study("My Script", overlay=true) plot(open, color=color.purple)
Când adăugați acest cod, ar trebui să vedeți un al doilea grafic (care arată ca originalul mutat la dreapta). Tot ce am făcut a fost să trasăm în schimb prețul de deschidere și, deoarece deschiderea zilei curente coincide cu închiderea zilei precedente, acestea vor avea 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 pe Remove Indicators (Eliminați indicatorii). Plasați cursorul peste Bitcoin/BUSD și faceți clic pe butonul Hide (Ascundeți) pentru a șterge și graficul curent.
Mulți traderi preferă graficele cu lumânări, deoarece ne oferă mai multe informații decât o reprezentare simplă precum cea pe care tocmai am creat-o. Să le adăugăm în continuare.
//@version=4 study("My Script", overlay=true) plotcandle(open, high, low, close)
Este un început bun, dar lipsa culorilor îl face puțin anost. În mod ideal, ar trebui să avem lumânări roșii atunci când prețul de deschidere este mai mare decât cel de închidere pentru intervalul de timp dat și verzi dacă prețul de închidere depășește prețul de deschidere. Vom adăuga o linie deasupra funcției plotcandle():
//@version=4 study("My Script", overlay=true) colors = open >= close ? color.red : color.green plotcandle(open, high, low, close)
Aceasta analizează fiecare lumânare și verifică dacă prețul de deschidere este mai mare decât sau egal cu prețul de închidere. Dacă da, înseamnă că prețurile au scăzut în perioada vizată, așa că va colora lumânarea în roșu. În caz contrar, o va colora în verde. Modificați funcția plotcandle() pentru a trece această schemă de culori în:
//@version=4 study("My Script", overlay=true) colors = open >= close ? color.red : color.green plotcandle(open, high, low, close, color=colors)
Eliminați indicatorii actuali dacă nu ați făcut deja acest lucru și adăugați-l pe acesta pe grafic. Acum ar trebui să aveți ceva care seamănă cu un grafic obișnuit cu lumânări.
Excelent!
Reprezentarea mediilor mobile (MA)
Am acoperit câteva dintre elementele de bază. Să trecem la primul nostru indicator personalizat – media mobilă exponențială sau EMA. Acesta este un instrument valoros, deoarece ne permite să excludem orice zgomot de pe piață și să fluidizăm acțiunea prețului.
EMA diferă ușor de media mobilă simplă (SMA), prin faptul că datele mai recente au o pondere mai mare. Tinde să reacționeze mai bine la mișcările bruște și este adesea folosit pentru jocuri pe termen scurt (în day trading, de exemplu).
Media mobilă simplă (SMA)
Am putea la fel de bine să reprezentăm SMA, doar ca să le putem compara pe cele două ulterior. Adăugați această linie la scriptul dvs.:
plot(sma(close, 10))
Aceasta arată media ultimelor zece zile. Ajustaț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 este puțin mai dificil de înțeles, dar nu vă faceți griji. Să descompunem mai întâi formula:
EMA = (Închidere - EMA din ziua anterioară) * Multiplicator - EMA din ziua anterioară
Deci, ce ne arată acesta? Ei bine, pentru fiecare zi, calculăm o nouă medie mobilă pe baza celei din ziua precedentă. Multiplicatorul este cel care „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 a reprezenta EMA este similară cu cea pentru SMA. Trasați-o alături de SMA, astfel încât să le puteți compara pe cele două:
//@version=4 study("My Script", overlay=true) plot(sma(close, 10)) plot(ema(close,10))
Puteți observa o ușoară diferență între cele două tipuri de MA.
➟ Doriți să începeți să tranzacționați criptomonede? Cumpărați Bitcoin pe Binance!
Scripturi încorporate
Până acum, ne-am scris codul manual, astfel încât să îl puteți înțelege. Dar iată ceva care ne poate economisi timp, mai ales dacă generăm scripturi mai complexe și nu vrem să le scriem de la zero.
În partea de sus, din dreapta a editorului, dați clic pe New (Nou). Veți vedea un meniu derulant cu tot felul de indicatori tehnici diferiți. Faceți clic pe Moving Average Exponential (Medie exponențială mobilă) pentru a vedea codul sursă pentru un indicator EMA.
Adăugați-l pe grafic.
Acesta este diferit de al nostru – veți observa funcțiile input(). Acestea sunt excelente din perspectiva utilizării, deoarece puteți să apăsați pe această casetă…
… și să modificați cu ușurință câteva dintre valori într-o fereastră pop-up apăsând pe rotița Settings (Setări).
Vom adăuga câteva funcții input() în următorul nostru script pentru a demonstra acest lucru.
Reprezentarea Indicelui de forță relativă (RSI)
Indicele de forță 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, punctajul 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 punctaj mai mic decât sau egal cu 30 și ar putea fi supracumpărat dacă are un punctaj mai mare decât sau egal cu 70.
Dacă accesați New > RSI Strategy (Nou > Strategie RSI), puteți vedea acest lucru. RSI este, în general, măsurat pe perioade de 14 (adică, 14 ore sau 14 zile), dar puteți să modificați această setare pentru a se potrivi propriei strategii.
Adăugați-l pe grafic. Ar trebui să vedeți câteva săgeți afișate acum (definite de funcția strategy.entry() din cod). RsiLE indică o oportunitate potențială de a opta pentru Long pentru activ, deoarece acesta ar putea fi supravândut. RsiSE evidențiază posibilele puncte în care să optați pentru Short pentru activ atunci când este supracumpărat. Rețineți că, la fel ca în cazul tuturor indicatorilor, nu ar trebui să-i considerați ca o dovadă sigură 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, backtestingul 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 deschide o poziție Long atunci când prețul BTC scade sub 11.000 USD și închide poziția atunci când prețul depășește 11.300 USD. Putem vedea apoi cât de profitabilă ar fi fost această strategie în trecut.
//@version=4 strategy("ToDaMoon", overlay=true) enter = input(11000) exit = input(11300) price = close if (price = exit) strategy.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 grafic ulterior. De asemenea, am configurat variabila preț, care ia în considerare închiderea pentru fiecare perioadă. Apoi, avem o logică sub forma instrucțiunilor if. Dacă partea dintre paranteze este true (adevărată), atunci blocul indentat de sub ea va fi rulat. În caz contrar, va fi omis.Deci, dacă prețul este mai mic decât sau egal cu intrarea dorită, prima expresie este evaluată ca fiind adevărată și vom deschide o poziție Long. Odată ce prețul egalează sau depășește ieșirea dorită, al doilea bloc va fi declanșat, încheind toate pozițiile deschise. Vom adnota graficul cu săgeți care arată unde am deschis/închis poziții, așa că am specificat cum să etichetăm aceste puncte cu parametrul comment (comentariu) (în acest exemplu, „BuyTheDip” și „SellTheNews”). Copiați codul și adăugați-l pe grafic.
Acum puteți vedea indicatorii pe grafic. Este posibil să fie necesar să micșorați.
TradingView aplică automat regulile dvs. datelor mai vechi. Veți observa, de asemenea, că trece de la Pine Editor la fila Strategy Tester (Testare strategie). 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 deschise și închise.
Să punem toate aceste informații cap la capE timpul să ne scriem propriul script folosind câteva dintre conceptele pe care le-am prezentat până acum. Vom combina EMA și RSI și vom folosi valorile lor pentru a colora lumânările, 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ă și obiectivă de a utiliza acest indicator. Ca și în cazul tuturor celorlalți, ar trebui să fie folosit cu alte instrumente pentru a vă dezvolta propria strategie.Acum să lucrăm la noul nostru script. Eliminați toți indicatorii dvs. din grafic și ascundeți și graficul Bitcoin/BUSD, astfel încât să avem un spațiu curat pe care să lucrăm.Să începem prin definirea studiului nostru. Puteți să-l denumiți cum doriți, doar asigurați-vă că setați overlay=true.study(title="Binance Academy Script", overlay=true)Amintiți-vă formula noastră EMA de mai devreme. Trebuie să oferim multiplicatorului lungimea EMA. Să creăm 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).study(title="Binance Academy Script", overlay=true) 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:study(title="Binance Academy Script", overlay=true) emaLength = input(title="EMA Length", type=input.integer, defval=25, minval=0) emaVal = ema(close, emaLength)
Grozav. Să trecem la RSI. Îi vom da o lungime într-un mod similar:study(title="Binance Academy Script", overlay=true) emaLength = input(title="EMA Length", type=input.integer, defval=25, minval=0) emaVal = ema(close, emaLength) rsiLength = input(title="RSI Length", type=input.integer, defval=25, minval=0)Și acum, îl putem calcula:study(title="Binance Academy Script", overlay=true) emaLength = input(title="EMA Length", type=input.integer, defval=25, minval=0) emaVal = ema(close, emaLength) rsiLength = input(title="RSI Length", type=input.integer, defval=25, minval=0) rsiVal = rsi(close, rsiLength)În această etapă, să adăugăm codul care colorează lumânările î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ă optați pentru Long sau Short pentru Bitcoin. De exemplu, ați putea considera că îndeplinirea ambelor condiții înseamnă că este un moment bun pentru a deschide o poziție Long. Sau dimpotrivă, l-ați putea folosi pentru a vă informa când să nu optați pentru Short, chiar dacă alți indicatori spun contrariul.Deci, următoarea noastră linie va arăta astfel:study(title="Binance Academy Script", overlay=true) emaLength = input(title="EMA Length", type=input.integer, defval=25, minval=0) emaVal = ema(close, emaLength) rsiLength = input(title="RSI Length", type=input.integer, defval=25, minval=0) rsiVal = rsi(close, rsiLength) colors = close > emaVal and rsiVal > 50 ? color.green : color.redDacă traducem acest lucru în limbajul simplu, spunem doar că, dacă valoarea EMA depășește prețul de închidere și punctajul RSI depășește 50, lumânarea va fi colorată în verde. În caz contrar, va fi colorată în roșu. Apoi, să reprezentăm EMA:study(title="Binance Academy Script", overlay=true) emaLength = input(title="EMA Length", type=input.integer, defval=25, minval=0) emaVal = ema(close, emaLength) rsiLength = input(title="RSI Length", type=input.integer, defval=25, minval=0) rsiVal = rsi(close, rsiLength) colors = close > emaVal and rsiVal > 50 ? color.green : color.red plot(emaVal, "EMA")În cele din urmă, reprezentați lumânările, asigurându-vă că includeți parametrul color (culoare):study(title="Binance Academy Script", overlay=true) emaLength = input(title="EMA Length", type=input.integer, defval=25, minval=0) emaVal = ema(close, emaLength) rsiLength = input(title="RSI Length", type=input.integer, defval=25, minval=0) rsiVal = rsi(close, rsiLength) colors = close > emaVal and rsiVal > 50 ? color.green : color.red plot(emaVal, "EMA") plotcandle(open, high, low, close, color=colors)Scriptul este gata! Adăugați-l pe grafic pentru a-l vedea în acțiune.
Un grafic BTC/BUSD cu indicatorul EMA/RSI.
Gânduri de încheiereÎn acest articol, am analizat câteva exemple de bază despre ceea ce puteți face cu Pine Editor de la TradingView. În acest punct, ar trebui să aveți suficiente cunoștințe pentru a face adnotări simple pe graficele de preț, pentru a obține informații suplimentare de la propriii indicatori.Am prezentat doar câțiva indicatori aici, dar este ușor să creați alții mai complecși – fie selectând scripturile încorporate din New (Nou), fie scriindu-le dvs.Nu aveți inspirație? Următoarele articole vă pot oferi câteva idei pentru următorul dvs. proiect:Un scurt ghid despre indicatorul SAR Parabolic.Un ghid pentru înțelegerea retrasării FibonacciConsultați secțiunea Indicatorii leading și lagging explicați.Indicatorul MACD explicat