Cum să adăugați un indicator la Quik, instalați-l astfel încât să fie convenabil!  Totul pentru terminalul QUIK

Cum să adăugați un indicator la Quik, instalați-l astfel încât să fie convenabil! Totul pentru terminalul QUIK

De regulă, cei care încep să tranzacționeze acțiuni încep să studieze cea mai simplă și în același timp eficientă analiză tehnică. Mai mult, după ce s-au familiarizat cu liniile de tendințe, cifrele și așa mai departe, începătorii încep să studieze o secțiune ceva mai complexă, parțial matematică, a TA -. Acesta este numele dat funcțiilor matematice ale prețului și volumului care pot arăta cea mai probabilă dezvoltare ulterioară a mișcării prețurilor.

Există destul de mulți indicatori - există 39 dintre ei în terminalul de tranzacționare QUIK 7. De asemenea, este prezent și Volumul, care nu este un indicator, ci un parametru care caracterizează suplimentar lumânarea de preț. Toți acești indicatori, la rândul lor, sunt împărțiți în indicatori de tendință, oscilatori, plicuri etc. Și adesea începătorii se întreabă ce indicatori să folosească în tranzacționarea lor, deoarece toți au atât avantaje, cât și dezavantaje. Răspunsul la această întrebare și câteva recomandări utile pentru utilizarea indicatorilor în Kwik 7 sunt în articolul nostru.

Pentru început, merită să oferiți câteva recomandări de bază. În primul rând, comercianții începători ar trebui să-și amintească că TA în general și indicatorii în special funcționează mult mai bine pe intervale de timp începând de la oră. Nu ar trebui să încercați imediat să tranzacționați în cursul zilei - acesta este lotul maeștrilor de tranzacționare și este mai bine pentru începători să tranzacționeze pe perioade de timp mai mari.

În al doilea rând, merită să începeți cu acțiuni lichide, deoarece titlurile de valoare din al doilea și din alte eșaloane pot avea grafice prea zimțate - ceea ce înseamnă că există posibilitatea de a avea probleme cu deficitul de lichiditate la închiderea unei poziții.

În al treilea rând, ar trebui să luați în considerare nu numai mișcările prețurilor, ci și volumele care sunt prezente în aceste mișcări. Deoarece dezechilibrul dintre cerere și ofertă este cel care mișcă prețul, capacitatea de a interpreta corect volumele de tranzacționare este extrem de importantă pentru un comerciant.

În al patrulea rând, nu trebuie să separați tehnica și (fondul știrilor, calendarul macrostatisticilor etc.). Aceste tipuri de analize nu se contrazic, ci se completează reciproc.

Indicatori pentru începători

Primul indicator cu care se începe de obicei să se familiarizeze cu lumea indicatorilor tehnici este Moving Average (EMA). Poate fi văzut atât de începători, cât și de profesioniști - nimeni nu se îndoiește că acest indicator oarecum vechi și simplu este în general capabil să genereze profit. Acest lucru este confirmat de rulările pe diverse testere. Este demn de remarcat faptul că este mai bine ca începătorii să folosească acest indicator cu o perioadă mai lungă (de la 100) pentru a învăța cum să vedeți cum se schimbă cele cu adevărat importante și să nu se tulbure din cauza fleacurilor.

Deoarece media mobilă este un indicator de tendință, este mai bine să combinați citirile sale cu oscilatorii. Pentru tranzacționarea pe termen mediu și lung, RSI s-a dovedit extrem de bine. Merită să ne amintim că unul dintre cele mai puternice semnale pentru acest indicator este divergența, a cărei apariție merită într-o mai mare măsură urmărită împreună cu semnalele EMA, de exemplu, schimbări în direcția pantei și intersecția cu prețul.

Un „filtru” extrem de important pentru semnalele acestor indicatori va fi volumul de tranzacționare (poate fi adăugat la graficul de preț selectând-l din lista de indicatori pentru QUIK 7 Volume). Volumul de tranzacționare ar trebui să confirme tendința. Merită să ne amintim că o tendință începe adesea cu o erupție a consolidării la volume mari, ceea ce indică faptul că profesioniștii investesc bani în tendința emergentă și continuă la volume scăzute, ceea ce indică o lipsă de dorință în rândul oponenților tendinței de a lucra împotriva. trendul. Tendința se încheie din nou pe volume crescute. Acest lucru sugerează că prețul a atins un nivel la care nu poate face față cu ușurință.

Pe lângă indicatori, vă recomandăm să nu uitați de metodele TA clasice. Considerăm că trasarea liniilor de tendință este o necesitate - indiferent dacă folosiți indicatori sau nu. Liniile de tendință ne permit să înțelegem acele zone în care este posibilă activitatea maximă a participanților la tranzacționare, deoarece concentrația de ordine în apropierea liniilor de tendință crește de obicei, ceea ce are ca rezultat un volum de tranzacționare crescut la granițele acestora, nu uitați că volumele mișcă piața.

Desigur, ar fi posibilă înlocuirea liniilor de tendință cu un tip de indicator (de exemplu, Benzile Bollinger), dar sunt folosite mult mai mult liniile de trend, care formează o concentrare crescută de comenzi, așa că recomandarea noastră este să folosiți linii de trend. Mai mult, un oarecare ajutor pentru comercianții începători în determinarea momentului de ruptură prin consolidare (sau lateral, care este practic aproape de valoare) poate fi oferit de un indicator precum , care este foarte des folosit de comercianții algoritmici pentru a oficializa spargerea unui plat. Fractalii determină cu precizie creșterile și scăderile actuale ale prețurilor pentru un anumit interval de timp. Mai mult decât atât, este mai bine să folosiți citirile indicatorului Fractali ca o componentă logică, mai degrabă decât ca un , adică pur și simplu pentru a înțelege exact când are loc o erupție. Acest indicator va ajuta comercianții începători să dezvolte o înțelegere corectă a acestui punct.

Pe lângă intrarea într-o poziție, este extrem de important să înțelegeți când este mai bine să luați profit. Aici vine în ajutor indicatorul Parabolic SAR, care este cel mai des folosit tocmai pentru acest rol. Când prețul depășește acest indicator, ar trebui să obțineți profit, cel puțin parțial. Utilizarea acestui indicator pentru a introduce o poziție este mai puțin recomandabilă.

Dar cel mai important lucru este că indicatorii acestor indicatori și alte metode de analiză (nu numai tehnice, ci și fundamentale) trebuie combinați și nu scoși din context. Trebuie să înțelegeți că indicatorii pot arăta că, în anumite momente, evenimentele corespunzătoare din graficul prețurilor sunt destul de probabile, dar nimic mai mult. Comerciantul, la rândul său, trebuie să ia decizii de tranzacționare și să-și controleze riscurile, colectând împreună citirile atât ale TA, cât și ale FA.

Concluzie

Indicatorii ar trebui să fie utilizați în tranzacționarea cu acțiuni atât de către comercianții începători, cât și cu experiență, dar semnalele lor nu trebuie înțelese ca semnale pentru executarea necondiționată a tranzacțiilor. Cea mai bună opțiune este de a combina semnalele indicatoare în QUIK 7 cu situația generală a pieței și regulile de gestionare a riscului și a banilor.

Bună ziua, dragi cititori și oaspeți ai blogului Webmastermaxim.ru. Astăzi vom vorbi despre cum să adăugați un indicator la o diagramă în Quik. Cert este că nu cu mult timp în urmă, am discutat despre indicatorul Zigzag, apoi l-am folosit sub diagramă. Dar în Quik este posibil să instalați indicatorul în Quik direct pe diagramă, ceea ce face lucrul cu acest indicator mult mai ușor.

Am observat deja că Zigzag este un indicator auxiliar care vă va ajuta să învățați cum să identificați vârfurile și fundurile cheie. Mai jos voi oferi link-uri către articole care vorbesc despre asta în detaliu.

Verificați Quik

Astăzi vreau să vă atrag atenția asupra faptului că în terminalul pentru bursă și altele - Quik, este posibil să plasați un indicator direct pe graficul de active. Acest lucru face lucrul cu el mult mai ușor. O face mai vizuală. Iar combinarea vârfurilor diagramei și indicatorului nu mai necesită mult efort.

Alte articole despre Zigzag:

Este foarte ușor de făcut! Prin bifa care este adăugată atunci când setați instrumentul la Activat în Quik. După aceasta, trebuie doar să aplicați setările și acest lucru va fi suficient pentru a începe. Indicatorul nu numai că nu își pierde proprietățile, dar lucrul cu acesta poate deveni mai convenabil. Cred că veți întâlni indicatori care arată mai bine pe grafic decât sub el.

Urmăriți un videoclip despre regulile Quik


Un bun exemplu al acestei aplicații este indicatorul SAR Parabolic din Quik. Da, suntem obișnuiți să vedem asta pe grafic, dar în Quik este continuu. Adică nu există absolut nicio rupere pe el. Acest lucru îl face să pară puțin murdar atunci când este adăugat la diagramă. În timp ce sub grafic, cu puțină îndemânare, arată foarte convingător! Îmi imaginez că va dura puțin timp pentru a exersa utilizarea în acest fel în Quik. Pe scurt, când există un salt în jos și apoi o creștere ușoară, acesta este un semnal de cumpărare, iar un salt în sus și o scădere ușoară este un semnal de vânzare. Totuși, rețineți că acest indicator adăugat sau instalat nu va da un rezultat bun pe termen lung.

Nu uitați că indicatorii sunt doar un sistem auxiliar care vă va ajuta să aflați puțin mai multe despre proprietățile diagramei. Dar folosirea lor pentru prognoză este destul de dificilă.

Total

Experiment! Cred că căutarea ne face specialiști mai buni care sunt capabili să facă mai mult sau chiar să facă o descoperire.

Astfel, astăzi v-am spus despre cum să adăugați corect un indicator la o diagramă în Quik, astfel încât după instalare să fie convenabil să lucrați cu el. Vorbeam despre indicatorul Zigzag. Cred că există multe alte instrumente care pot fi plasate diferit, cu mai multă comoditate.

După cum știți, comercianții din toate piețele folosesc indicatori în plus, popularitatea acestei metode de analiză a atins astfel de proporții încât astăzi nu mai este posibil să găsiți terminale sau aplicații analitice fără un set standard de instrumente.

Cu toate acestea, dacă un speculator din diverse motive decide să schimbe terminalul de tranzacționare, el va întâmpina inevitabil dificultăți, de la diferențe în interfața programului până la o neînțelegere completă a noului limbaj de programare. O situație similară apare atunci când treceți de la MetaTrader (denumit în continuare MT) la Quik, iar prima întrebare a multor comercianți obișnuiți cu MT este întrebarea „cum se instalează indicatorii pentru Quik?”

În primul rând, să ne dăm seama ce înseamnă exact această întrebare. Dacă vă referiți la instalarea indicatorului pe o diagramă, atunci nu este nimic complicat, următorul paragraf al publicației oferă instrucțiuni detaliate pentru configurarea acestuia. Dacă vorbim despre instalarea unui algoritm personalizat care nu este inclus în setul standard, atunci în acest caz totul va fi puțin mai complicat decât în ​​MT.

Cert este că, până în 2013, era deloc imposibil să-ți creezi proprii indicatori în Quik, așa că utilizatorii au fost nevoiți să ceară dezvoltatorilor să adauge instrumentele necesare la o nouă versiune sau actualizare, în timp ce dacă cineva avea nevoie de un algoritm rar și nepopular, ei abia aștepta să apară deloc.

Mai târziu a devenit posibil să vă scrieți propriile indicatoare într-un limbaj de programare numit „Lua”. Pentru ca un astfel de algoritm (fie propriu, fie descărcat din rețea) să apară în Lista rapidă, trebuie să creați un folder special „LuaIndicators” în folderul principal al terminalului, în care vor fi instalate toate astfel de fișiere.

Cum să adăugați indicatori pentru Quik în fereastra de lucru

Pentru a înțelege mai bine succesiunea acțiunilor, să ne uităm la un exemplu de configurare a indicatorului CCI familiar, cu care aproape fiecare utilizator de terminal MT este familiarizat. Dacă vreunul dintre cititori nu are deloc experiență de tranzacționare, chiar și pe conturile demo, vă recomandăm să citiți publicația corespunzătoare sau referința la acest algoritm.

Deci, după ce fereastra de diagramă a instrumentului dorit a fost deschisă, trebuie să utilizați butonul din dreapta al mouse-ului pentru a apela meniul contextual și să faceți clic pe „Adăugați diagramă (indicator)”, așa cum se arată în figura de mai sus. De asemenea, puteți executa comanda din meniul principal „Export de date → Diagrame → Adăugați diagramă (indicator). Rezultatul va fi identic:

S-a deschis o fereastră cu același nume, care prezintă indicatori pentru Quik, o sursă de date și o listă de ferestre în care puteți adăuga algoritmul dorit. Selectați CCI din stânga și, deoarece este un oscilator, în lista de ferestre faceți clic pe elementul „fereastră nouă”. În acest caz, indexul canalului de produse va fi afișat într-o nouă fereastră de subsol. Dacă avem nevoie de o medie mobilă, ar trebui să selectăm „fereastra 1” ca fereastră. După cum puteți vedea, succesiunea acțiunilor este mai complicată decât în ​​MT, dar aceasta este mai mult o chestiune de obișnuință. Apoi, faceți clic pe „ok” și accesați automat fereastra de setări:

În secțiunea „general”, programul solicită utilizatorului să seteze numele ferestrei, opțiunea de prezentare a indicatorului (linie, bară, linie punctată etc.), schema de culori și alte setări minore. „Parametrii” definește perioada (în bare, nu unități de timp) și metoda de calcul a valorilor. În filele „Aditional” și „Levels”, în legătură cu CCI, puteți seta deplasarea diagramei și nivelurile orizontale ale semnalului. Dacă totul a fost făcut corect, obținem următorul rezultat:

Ce altceva ar trebui să luați în considerare atunci când studiați indicatorii pentru Quik

Înainte de a lua o decizie de a trece la Quick, trebuie să țineți cont de câteva puncte importante: în primul rând, indicatorii din acest terminal nu pot fi construiți pe baza altor algoritmi, așa cum se poate face în alte programe, inclusiv. iar în MT. Aceasta înseamnă că unele sisteme construite pe indicatori standard vor trebui rescrise.

În al doilea rând, utilizatorii MT și Quik nu au putut ajunge la o părere comună cu privire la limbajul de programare mai eficient și mai funcțional. Sunt prezentate argumente semnificative pe ambele părți, în special, principalul avantaj al terminalelor MT este conexiunea lor inextricabilă cu limbajele de programare mql (4 și 5), care sunt optimizate special pentru versiunile corespunzătoare ale programului și sunt printre cele mai simple. a învăța „de la zero”.

Pe de altă parte, limbajul Lua folosit pentru a crea indicatori pentru Quik este folosit în multe alte aplicații. Prin urmare, dacă un comerciant o stăpânește, el va putea aplica cunoștințele pentru a rezolva alte probleme, ceea ce nu se poate spune, de exemplu, despre limbajul mql4, al cărui domeniu de aplicare este extrem de limitat.

De asemenea, trebuie să decideți imediat de ce este nevoie de Quick, deoarece nu este potrivit pentru tranzacționarea pe Forex (piața valutară interbancară) și poate fi util doar pentru tranzacționarea pe piața derivatelor în contracte futures valutare, în principal, este folosit de; comerciantii de pe bursa.

Apropo de stocuri, de fapt, totul aici nu este, de asemenea, atât de simplu pe cât pare. Cert este că unii brokeri care oferă acces la piața relevantă încep să implementeze terminalul MT5, așa că mulți clienți care au tranzacționat anterior pe Forex ar putea să nu fie nevoiți să reînvețe și să poată utiliza cu ușurință platforma familiară. Chiar dacă ați folosit anterior MT4 pentru tranzacționare, trecerea de la acesta la MT5 nu va fi dificilă.

Ce concluzii se pot trage?

În concluzie, observăm că orice indicator funcționează excelent în Quick, deoarece utilizatorul primește un flux direct de cotații, ceea ce înseamnă că, spre deosebire de MT4, graficele nu trec prin filtre suplimentare și fiecare tranzacție mică va fi luată în considerare de către algoritm fără excepție.

În plus, în Quik toți indicatorii menționați pentru analiza volumelor funcționează fără eșec, în timp ce în MT4 un comerciant este forțat implicit să se mulțumească cu volume de bifă, și chiar și atunci, de o calitate îndoielnică, deoarece cotațiile trec mai întâi prin filtrele menționate mai sus. a centrelor de tranzacționare. Toate aceste nuanțe sunt punctele forte ale platformei de schimb discutate astăzi în contextul construirii sistemelor de indicatori.

Dar, conform tradiției, există și unele dezavantaje, în special, principalele dezavantaje atât ale rapidului în sine, cât și ale indicatorilor includ dificultatea de a scrie pe acesta din urmă din cauza particularităților limbii Lua. În plus, în timp ce utilizatorii MT4 au câștigat experiență prin crearea și testarea a mii de algoritmi, dezvoltatorii Quick au adăugat pentru o lungă perioadă de timp indicatori doar la cererea și la ordinele utilizatorilor.

Prin urmare, dacă un comerciant a decis „Voi părăsi DC pentru un broker obișnuit și voi transfera strategia pe un nou terminal”, va trebui să cheltuiască o sumă echitabilă de bani chiar și pentru a rescrie indicatorii necesari (munca programatorilor este nu ieftin).

Puteți, desigur, să vă stăpâniți programarea, dar în acest caz va trebui să lucrați cu MT ceva timp până când puteți crea indicatorii necesari pentru Quik, deoarece după ce ați citit mai multe tutoriale despre limbajul Lua, nu veți putea să implementați imediat ideile dvs., fără a permite aceste erori. Sursă:

Butoane sociale pentru Joomla

Popular:

Vă răspund în continuare la întrebări.

Întrebare: Există vreun exemplu simplu cu analiza volatilității și tranzacționarea breakout?

Acum vom scrie acest exemplu. Să presupunem că vrem să cumpărăm o valoare mobiliară atunci când cotațiile trec printr-un anumit nivel superior și să vindem atunci când acesta depășește un anumit nivel inferior. Nivelurile sunt determinate prin adăugarea (pentru nivelul superior) sau scăderea (pentru nivelul inferior) a volatilității medii pentru un anumit număr de lumânări din prețul de închidere al lumânării anterioare.

Pentru a determina volatilitatea medie, vom folosi indicatorul ATR (Average true rage). Este de remarcat faptul că în Quik-e, pentru ca un program pe qpile sau qlua să preia date date dintr-o diagramă, graficul trebuie să fie deschis (inclusiv indicatorul). Deci, să deschidem o diagramă chiar acum, de exemplu, LUKOIL:

Și adăugați un indicator la acesta:

Acolo puteți personaliza și culoarea liniilor:

Parametri, de exemplu, numărul de perioade:

Și introduceți ID-ul:

Identificatorul este necesar pentru a-l putea accesa în program. În viitor, puteți edita parametrii indicatorului făcând clic dreapta pe diagramă și selectând „Parametri diagramă” în meniul pop-up:

În mod similar, puteți edita parametrii lumânărilor (Preț), setând și un identificator pentru acestea:

Acum vom învăța cum să obținem date din grafice. Să începem cu lumânările:

local N = getNumCandles („Prețul meu” )

t , n , i = getCandlesByIndex („Prețul meu” , 0, N - 2, 2)

mesaj („Închidere lumânare anterioară=" .. t [ 0]. închide , 1)

mesaj („Închidere actuală lumânare=" .. t [ 1]. închide , 1)

Acest script va produce două numere: mai întâi închiderea lumânării anterioare și apoi închiderea celei curente:

Și apoi pentru lumânarea actuală:

Este de remarcat faptul că valoarea apropiată a lumânării actuale se schimbă în mod constant, deoarece nu a fost încă formată. Înaltul și scăzutul acestei lumânări se pot schimba și ele. Dar precedentul și toți cei din stânga lor rămân aceleași - sunt deja formați.

Acum să ne uităm la structuri:

local N = getNumCandles („Prețul meu” )

t , n , i = getCandlesByIndex („Prețul meu” , 0, N - 2, 2)

Mai întâi obținem numărul de lumânări. Cert este că funcția getCandlesByIndex necesită indicarea de la ce lumânare din cont primim date, iar numărătoarea începe de la lumânarea din stânga. Are cifra 0, iar cea din dreapta este cea actuala, respectiv N-1 - cu unul mai putin decat numarul de lumanari.

Acum despre sintaxa funcției getCandlesByIndex. Are patru parametri. Primul este identificatorul diagramei, pe care l-am stabilit mai sus. Dacă avem mai multe diagrame, atunci le putem distinge prin acest identificator. Al doilea parametru este numărul de linie pentru lumânări, acesta ar trebui să fie zero. Al treilea este de la ce lumânare începem să primim lumânări, numărul ei. În cazul nostru, acesta este N-2 - vrem să obținem penultima și ultima lumânare. Și, în sfârșit, al patrulea parametru este numărul de lumânări pe care dorim să le primim.

Astfel, dacă dorim să obținem o singură lumânare curentă, putem folosi următorul cod:

Rețineți că funcția getCandlesByIndex returnează trei valori. Primul lucru, așa cum ați înțeles deja, este masa lumânărilor în sine. A doua valoare este numărul de lumânări din tabelul rezultat. S-ar părea, de ce este nevoie? Se pare că cantitatea ar trebui să fie egală cu al patrulea parametru, nu-i așa? Nu intotdeauna. Câte lumânări crezi că va reveni acest design:

Nu 10 deloc, deoarece pornind de la lumânarea N-3 avem doar trei lumânări, așa că programul va scoate:

Dar dacă scriem:

local N = getNumCandles („Prețul meu” )

t , n , i = getCandlesByIndex („Prețul meu” , 0, N - 3, 2)

Acest număr de lumânări va fi egal cu 2.

Dar care este această a treia valoare returnată? Și aceasta este așa-numita legendă - semnătura diagramei:

În mod implicit, acesta este numele lucrării, dar îl puteți edita și pune propriul nume.

În mod similar, putem prelua date din indicator:

local N = getNumCandles ("MyATR" )

t , n , i = getCandlesByIndex ("MyATR" , 0, N - 2, 2)

mesaj („Valoare anterioară a indicatorului” .. t [ 0]. închide , 1)

mesaj („Valoarea indicatorului curent” .. t [ 1]. închide , 1)

Astfel, putem obține valorile lumânărilor și ale indicatorului și putem calcula nivelurile de spargere.

Următoarea întrebare: cum să tranzacționați la niveluri de breakout? Puteți folosi stop loss-uri. Ei vor funcționa exact în timpul unei erupții: vor cumpăra atunci când există o erupție ascendentă și vor vinde când există o erupție descendentă. Stop loss este plasat aproape exact la fel ca o comandă obișnuită (vezi..aspx?id=773), doar câmpul ACTION este setat la NEW_STOP_ORDER, iar câmpurile STOP_ORDER_KIND, STOPPRICE și EXPIRY_DATE trebuie de asemenea completate.

După sosirea următoarei lumânări, poate fi necesară rearanjarea stop loss-urilor (dacă acestea nu au fost încă declanșate). Pentru a seta stop loss-urile, eliminăm vechile stop-loss-uri și setăm altele noi. Cum se șterge, vezi lecția 6 (). Ordinele stop sunt șterse în același mod ca și cele obișnuite, doar ACTION este setat la KILL_STOP_ORDER.

Pentru a nu mai plasa ordine stop, ne vom aminti numărul comenzii plasate, iar dacă ordinul este șters sau executat, vom elimina acest număr. Pentru a face acest lucru, vom analiza steaguri în procedura OnStopOrder (acesta este un nume predefinit). Cum să analizezi steaguri, vezi lecția 4 ().

Poate apărea întrebarea: Cum să vă asigurați că semnalul este verificat numai la fiecare lumânare nouă? În general, puteți utiliza funcțiile CreateDataSource și SetUpdateCallback, dar vom ajunge la ele mai târziu. Între timp, în cel mai simplu exemplu de tranzacționare pe breakouts cu analiză de volatilitate, care se află în Anexa 1, l-am simplificat: vechile niveluri de breakout sunt amintite în momentul în care sunt plasate ordinele stop. Când nivelurile noi diferă de cele vechi (și acest lucru se poate întâmpla doar cu sosirea unei noi lumânări, deoarece nivelurile sunt calculate pe baza penultima lumânare și nu se schimbă), robotul revizuiește opririle, le elimină dacă este necesar, și stabilește altele noi.

Robotul din exemplu este creat astfel încât să poată cumpăra sau vinde (mărește o poziție). Astfel, dacă prețul merge într-o direcție, atunci poziția crește, dacă merge în sens opus, începe să scadă. Aceasta este o strategie de gestionare a banilor foarte rezonabilă - intrarea treptat într-o poziție. Nu există niciun control asupra cât timp robotul își poate crește poziția, deoarece acesta este un exemplu simplu de antrenament.

Întrebare: Cu toate acestea, lucrul cu un pahar nu este potrivit pentru începători - nu puteți testa un pahar pe istorie, este mai bine să luați în considerare lucrul cu lumânări, de exemplu, o strategie de medie mobilă - cum să obțineți lumânări și valori medii mobile. ... ceea ce nu poate fi evitat atunci când folosiți exemplul dvs. ..

În ceea ce privește lucrul cu lumânări, pot adăuga descrierea funcțiilor CreateDataSource și SetUpdateCallback promise chiar mai sus. Aceste funcții vă permit să creați o funcție CALLBACL și să o legați la o diagramă. Această funcție va fi apelată de fiecare dată când există modificări pe diagramă. Iată un exemplu:

p_classcode = „TQBR” --Cod de clasă

p_seccode = „LKOH” --Cod instrument

Variabile de serviciu

is_run = Adevărat

funcţie cb ( index )

local t = ds : T ( index )

local str = "lumanare nr." .. tostring( index ).. " din " .. tostring( ds : mărimea ()).. "deschis=" .. ds : O ( index )

str = str .. „înalt=" .. tostring( ds : H ( index )).. "low=" .. tostring( ds : L ( index ))

str = str .. "close=" .. tostring( ds : C ( index )).. " volum: " .. tostring( ds : V ( index ))

str = str .. "datetime=" .. tostring( t.zi ).. ".".. tostring( t.lună ).. ".".. tostring( t.an ).. " ".. tostring( t.ora ).. ":".. tostring( t.min )

str = str .. ":".. tostring( t.sec ).. " Și " .. tostring( t.ms ).. "Domnișoară"

mesaj ( str , 1)

funcţie principal ()

ds = CreateDataSource ( p_classcode , p_seccode , INTERVAL_M1 )

ds : SetUpdateCallback ( cb )

in timp ce is_run do

dormi ( 100)

funcţie OnStop ( stop_steag )

is_run = fals

Rulați-l și la fiecare bifă de pe diagramă veți primi un mesaj ca acesta:

Cum putem folosi această funcție pentru a urmări sosirea unei noi lumânări? Foarte simplu. Dacă numărul lumânării curente sau data și ora acesteia s-au schimbat, atunci aceasta este o lumânare nouă.

Întrebare. Nu programarea în sine este interesantă, ci doar logica... și anume, analiza operatorilor de limbaj standard cei mai des folosiți și sintaxa acestora.

De fapt, am analizat deja destul de multe constructe qlua. Dar lucrul cu Windows nu a fost încă rezolvat. Amintiți-vă, pe qpile robotul era numit „servietă” și avea o fereastră specială de masă în care puteau fi afișate diverse informații, de exemplu, informând utilizatorul despre progresul muncii robotului?

De exemplu, așa a arătat acest tabel pentru robotul pe care l-am analizat în lecția Stochastic cu un filtru pe Qpile (partea 2) (http://site/community/article.aspx?id=246):

Pe qlua puteți crea și astfel de ferestre, și nu doar una, ca pe qpile, ci mai multe. Astfel de ferestre se disting prin descriptori. Mânerul este numărul său de identificare, care este returnat de funcția AllocTable(). Odată ce un handle a fost creat folosind funcția AllocTable(), acesta poate fi folosit pentru a crea o fereastră. Mai întâi declarăm anteturile folosind funcția AddColumn, apoi deschidem această fereastră folosind CreateWindow. Apoi îi putem adăuga rânduri, de exemplu, folosind funcția InsertRow.

Să reluăm exemplul, care afișează informații despre lumânarea curentă într-un mesaj de fiecare dată când graficul se schimba. Acum, lăsați-l să ne arate același lucru într-un tabel:

p_classcode = „SPBFUT” --Cod de clasă

p_seccode = „GZZ4” --Cod instrument

Variabile de serviciu

is_run = Adevărat

funcţie cb ( index )

local t = ds : T ( index )

rând = InsertRow ( id , - 1)

local str = tostring( t.zi ).. ".".. tostring( t.lună ).. ".".. tostring( t.an ).. " ".. tostring( t.ora ).. ":".. tostring( t.min ).. ":".. tostring( t.sec )

SetCell ( id , rând , 1, tostring( index ))

SetCell ( id , rând , 2, tostring( ds : O ( index )))

SetCell ( id , rând , 3, tostring( ds : H ( index )))

SetCell ( id , rând , 4, tostring( ds : L ( index )))

SetCell ( id , rând , 5, tostring( ds : C ( index )))

SetCell ( id , rând , 6, tostring( str ))

SetCell ( id , rând , 7, tostring( ds : V ( index )))

mesaj ( str , 1)

funcţie principal ()

id = AlocTable ()

Adăugați o coloană ( id , 1, „Numărul lumânării” , Adevărat, QTABLE_INT_TYPE , 11)

Adăugați o coloană ( id , 2, "deschis" , Adevărat, QTABLE_DOUBLE_TYPE , 10)

Adăugați o coloană ( id , 3, "înalt" , Adevărat, QTABLE_DOUBLE_TYPE , 10)

Adăugați o coloană ( id , 4, "scăzut" , Adevărat, QTABLE_DOUBLE_TYPE , 10)

Adăugați o coloană ( id , 5, "închide" , Adevărat, QTABLE_DOUBLE_TYPE , 10)

Adăugați o coloană ( id , 6, "datatime" , Adevărat, QTABLE_STRING_TYPE , 20)

Adăugați o coloană ( id , 7, "volum" , Adevărat, QTABLE_DOUBLE_TYPE , 15)

mesaj (tostring( CreateWindow ( id )), 1)

ds = CreateDataSource ( p_classcode , p_seccode , INTERVAL_M1 )

ds : SetUpdateCallback ( cb )

in timp ce is_run do

dormi ( 100)

funcţie OnStop ( stop_steag )

is_run = fals

Și iată rezultatul acestui program:

Asa se incheie lectia, dar nu ne luam ramas bun de la tine, pana nu ne reintalnim.

Fișiere atașate