Sari la conținut

O bara noua ??


Postări Recomandate

  • Moderators

Scuze in primul rand pentru ca nu am mai dat pe aici in ultima luna, fiind foarte ocupat, atat acasa (unde proprietarul meu s-a gandit in sfarsit sa dea cu var dupa mai multe insistentze si am avut toata casa cu fundul in sus) cat si la servici. O sa mai revin in viitor cu cateva posturi la sectiunea de strategie unde am inceput sa scriu, dar nu acum, ca nu am timp.

 

In forex stau deocamdata pe o pierdere de vreo 550 de parai luna asta, mult mai bine totusi decat la inceputul lunii, cand stateam pe un minus de vreo 4 ori mai mare. Tot vorbeam de ofensiva japoneza, haha, pana la urma a venit, si am reusit sa recuperez pe ultimele scaderi ale lui G/J, am avut noroc si am iesit la timp.

 

Bun. Acum vreo 20 de minute m-a gabjit pe messenger Fata Morgana si am avut o mica discutie despre crearea unui indicator care sa dea alerte/semnale cand se schimba bara. Ideea e ca esti la computer, ai semnal de la EA, dar zici ca astepti inchiderea barei intai, si joci dupa aia, daca semnalul se mai mentine inca. O masura foarte buna si precauta! Dar incepi sa te joci Mario (o mai fi existand??), sa lucrezi ceva serios pt bossul tau, ori sa vorbesti pe messenger, si semnalul trece. Cand iti aduci aminte au trecut deja 3-4 bare. Mi-a zis ca unii au mai incercat si nu au reusit. Asta mi-a adus aminte de un tread vazut de mine pe forumul de la FD Group, unde se discuta despre "trading NY session". Omu ala muncea serios sa testeze daca minutul este zero, daca valoarea de open e la fel cu aia precedenta, etc, pt a vedea daca a aparut o bara noua sau nu, cand toata tarasenia se putea face intr-o singura linie de cod. La vremea respectiva mi-am pus mainile in cap, si chiar am facut un expert care tranzactiona dupa ideea de acolo, in cateva linii de cod, punea si bidurisi tragea si grafice (din pacate expertul nu m-a multumit in materie de performanta, daca il vrea cineva pot sa il pun pe forum). Exista si prin multe alte locuri pe forumuri programatori/traderi care, pentru a afla cand se schimba bara, testeaza daca minutul este zero, ori daca valoarea de open este la fel cu aia precedenta, etc. Programatorii respectivi dovedesc neprofesionalism si lipsa de intelegere a modului cum functioneaza metataderul si limbajul MQL2. Probabil ca unii dintre ei sunt economisti, medici, ori au alte profesii, in care si eu daca as incepe sa imi dau cu parerea i-as face sa rada cu gura pana la urechi... Fiecare cu domeniul lui :D

 

Deci metoda cu memorarea valorii de open a barei si compararea ei de fiecare data cu valoarea curenta e buna, dar va da gres cand piata se misca foarte putin si doua bare se deschid la aceeasi valoare. La fel, a testa daca minutul e zero, implica teste aditionale (pentru cazul in care vin mai multi ticksi in primul minut) si nu functioneaza pe timeframeuri mai mici de o ora. Ar trebui sa testam daca secunda e zero si minutul e zero, dar atunci pierdem bara daca nu vin ticksi destul de des.

 

Metoda "babeasca" e sa testam numarul de bare din chart, care este memorat in variabila Bars. Aceasta creste cu 1 la aparitia unei noi bare. Din nefericire, numarul de bare este limitat. Exista o setare in MT4 care spune cate bare se pot memora intr-un chart, si atunci cand numarul respectiv este atins, se va incepe "eliminarea" barelor vechi. Deci daca numarul maxim de bare in chart este setat la 300, atunci indicatorul nostru va functiona pt primele 299 de bare, dar de la a 300-a incolo, fiecare bara noua care se adauga la chart in dreapta va produce eliminarea barei celei mai vechi din stanga, in in asa fel incat numarul de bare va fi intotdeauna tot 300, facand testul nostru inutil.

 

Deci nu este (nu pare) o problema usoara, iar MT4 nu ofera o functie care sa ne spuna cand a aparut o bara noua pe chart.

 

Dar.... aici exista un dar... Este nevoie de asemenea functie?

 

Din fericire, NU! Pentru ca atunci cand cream un indicator, valorile indicatorului sunt memorate intr-o matrice (array) corespunzator fiecarei bare. De exemplu, daca indicatorul se numeste A, si aceasta matrice este A, atunci A[0] va tine minte valoarea indicatorului pt bara cea mai recenta, A[1] va fi bara dinnainte, si asa mai departe. De ce programatorii lui MT4 au ales aceasta varianta "inversa", este simplu de spus: putem intotdeauna accesa datele cele mai recente folosind aceleasi valori ale indecsilor din paranteza patrata. Daca am fi construit matricea in ordine normala, adica crescand indecsii ori de cate ori aparea o bara, atunci indexul valorii celei mai recente ar depinde de numarul de bare disponibile, ori acest numar nu este niciodata cunoscut, charturile fiind livrate de catre serverul brokerului, si avand numere diferite de bare pentru valute diferite. Deci cel mai logic este sa memoram barele in ordine inversa, adica indecsii celor mai noi bare sa fie cei mai mici. Asta inseamna ca de fiecare data cand apare o bara noua, metatraderul TREBUIE SA MUTE toata aceasta matrice, pentru a face loc noii bare. De exemplu daca am avut 10 bare, atunci bara cea mai veche era A[9], urmatoarea A[8] si asa mai departe, cea mai noua bara, cea care tocmai se construieste si inca nu s-a inchis, este A[0]. Adica am 10 sertare, asezate la rand, cel mai propiat de mine este A[0] si el contine samburii de la maslinele (ticksii) pe care tocmai le-am mancat. Cand sertarul se umple, atunci iau un nou sertar, pe care il asez intre mine si primul sertar, apoi ca sa am acelasi loc (spatiu) in jurul meu pe care il aveam inainte, imping tot sirul de sertare cu un metru mai incolo si schimb toate etichetele. Sertarul care a fost al 10-lea, la 10 metri distanta de mine, va fi acum al 11-lea, la 11 metri distanta, si va fi notat A[10]. Cel care a fost al noulea, va fi acum al 10-lea, notat A[9]. Cel care a fost primul, cel mai apropiat de mine, a fost notat cu A[0] si tocmai s-a umplut cu samburi de masline, acum este al doilea din rand si este notat cu A[1]. A mai aparut in plus un sertar nou, care este acum primul in lista, este notat cu A[0] si ESTE GOL!!!! Primul tick care vine, este primul sambure de maslina pe care il scuip in sertar.

 

Easy huh? Pentru demonstratie, am creat un indicator (foarte impropriu spus) care tocmai asta face, testeaza daca primul sertar e gol, si daca da, atunci am o bara noua, in care nu a venit nici un tick. Sertarul e gol, nu am scuipat samburii de la masline in el. Atunci indicatorul da o alarma si canta un cantec. Pentru a-l folosi, copiati fisierul .mt4 in "...expertsindicators", iar fisierul .wav in folderul de sunete ("...sounds"), unde "..." este locul in care aveti instalat MT4.

 

Apoi il testati folosind un expert oarecare, ca azi nu sunt tickuri (haha, thanks FM, eu stateam ca prostul si asteptam tickuri, daca nu imi spuneai ca e sambata azi, eram ferm convins ca e vineri!).

 

Spor la pipsi!

Link spre comentariu
Distribuie pe alte site-uri

  • Răspunsuri 3
  • Creat
  • Ultimul Răspuns

Top autori în acest subiect

Zile populare

Top autori în acest subiect

Fiecare cu domeniul lui :D

multumesc ca m-ai scapat, sunt unul din cei care am incercat si nu mi-a reusit(nu sunt programator), chiar te-am pomenit dimineata intr-o discutie cu Fata Morgana, i-am zis "tradelover sigur gaseste solutia"

Imediat il descarc si eu sa vad cum trebuia facut, asta asa ca imi place sa-mi bat capul chiar daca nu e domeniul meu :D

 

Multumim inca o data si cand ai timp mai treci pe la noi.

Link spre comentariu
Distribuie pe alte site-uri

  • 4 luni mai târziu...

Alătură-te conversației

Poți posta acum și să te înregistrezi mai târziu. Dacă ai un cont, autentifică-te acum pentru a posta cu contul tău.

Vizitator
Răspunde la acest subiect...

×   Alipit ca text avansat.   Alipește ca text simplu

  Doar 75 emoji sunt permise.

×   Linkul tău a fost încorporat automat.   Afișează ca link în schimb

×   Conținutul tău precedent a fost resetat.   Curăță editor

×   Nu poți lipi imagini direct. Încarcă sau inserează imagini din URL.

  • Navigare recentă   0 membri

    • Nici un utilizator înregistrat nu vede această pagină.

×
×
  • Creează nouă...

Informații Importante

Am plasat cookie-uri pe dispozitivul tău pentru a îmbunătății navigarea pe acest site. Poți modifica setările cookie, altfel considerăm că ești de acord să continui.