Jump to content


[01 martie 2015] Vamist este prima si cea mai mare comunitate Forex din Romania. A luat nastere in 2005 si de-a lungul timpului a trecut prin mai multe transformari. Acum, dupa 10 ani, primim orice fel de traderi si investitori. Deci, indiferent daca tranzactionezi sau investesti in actiuni, valute, marfuri sau orice alt instrument, bine ai venit!

Vamist se transforma in comunitatea traderilor retail. Aceasta versiune a forumului va fi in continuare accesibila pentru oricine, dar numai in format read only.

Noua adresa este vamist.ro. Te asteptam acolo la discutii generale despre trading.

Photo
- - - - -

Nu sunt programator, asa ca cer ajutor


  • Please log in to reply
38 replies to this topic

#1 nicugh

nicugh

    Forexist activ

  • Members
  • PipPipPipPipPip
  • 117 posts
  • Gender:Male
  • Location:Roman
  • Interests:Instalatii incalzire, climatizare, ventilatie, sisteme solare, consultanta si executie.

  • Tranzactionez din 2005

Posted 07 October 2007 - 06:19 PM

Buna, bine v-am regasit,
in primul rand felicitari lui Stefan si membrilor vamist pentru ce ati realizat in ultimile 6 luni, cam atat a fost pauza, conditii de munca in deplasare, no net, no trade

si daca tot avem MQL deschid un topic pentru cei ca mine care mai butoneaza cate un EA si nu sunt programatori sa puna intrebari, iar pe cei care cunosc limbajul ii rog sa ne raspunda chiar daca uneori vor fi banale

deci ce ma doare if(se deschide o noua bara atunci mergi mai departe);

am "ohno" a lui tradelover dar nu stiu cum m-as putea folosi de el
  • 0



#2 TheEconomist

TheEconomist

    Forexist activ

  • Members
  • PipPipPipPipPip
  • 135 posts
  • Gender:Male
  • Location:Medgidia, Constanta, Romania
  • Broker curent GFT UK
  • Strategie/tehnica folosita Vand volatilitate

Posted 07 October 2007 - 08:15 PM

Buna, bine v-am regasit,
in primul rand felicitari lui Stefan si membrilor vamist pentru ce ati realizat in ultimile 6 luni, cam atat a fost pauza, conditii de munca in deplasare, no net, no trade

si daca tot avem MQL deschid un topic pentru cei ca mine care mai butoneaza cate un EA si nu sunt programatori sa puna intrebari, iar pe cei care cunosc limbajul ii rog sa ne raspunda chiar daca uneori vor fi banale

deci ce ma doare if(se deschide o noua bara atunci mergi mai departe);

am "ohno" a lui tradelover dar nu stiu cum m-as putea folosi de el


E simplu.

Pui un int LastBars=0; inainte de toate;

dupa aia faci asa

int init()
{
...
LastBars=Bars;
...
}


int start()
{
...
if (Bars!=LastBars)
{
....faci ce ai de facut
....
LastBars=Bars;
}
....
return(0);
}
  • 0
MQL4 Level 70 Archmage

#3 nicugh

nicugh

    Forexist activ

  • Members
  • PipPipPipPipPip
  • 117 posts
  • Gender:Male
  • Location:Roman
  • Interests:Instalatii incalzire, climatizare, ventilatie, sisteme solare, consultanta si executie.

  • Tranzactionez din 2005

Posted 07 October 2007 - 08:53 PM

E simplu.

Pui un int LastBars=0; inainte de toate;

dupa aia faci asa

int init()
{
...
LastBars=Bars;
...
}


int start()
{
...
if (Bars!=LastBars)
{
....faci ce ai de facut
....
LastBars=Bars;
}
....
return(0);
}



multumesc, a functionat, am scapat de error 1 la un trailigstop ;)
  • 0

#4 Stefan

Stefan

    Owner

  • Management
  • PipPipPipPipPipPipPipPipPip
  • 1620 posts
  • Gender:Male
  • Location:Internet
  • Interests:Tehnologie, afaceri si investitii, fotografie

  • Tranzactionez din 2007

Posted 08 October 2007 - 08:50 AM

Buna, bine v-am regasit,
in primul rand felicitari lui Stefan si membrilor vamist pentru ce ati realizat in ultimile 6 luni, cam atat a fost pauza, conditii de munca in deplasare, no net, no trade

si daca tot avem MQL deschid un topic pentru cei ca mine care mai butoneaza cate un EA si nu sunt programatori sa puna intrebari, iar pe cei care cunosc limbajul ii rog sa ne raspunda chiar daca uneori vor fi banale

deci ce ma doare if(se deschide o noua bara atunci mergi mai departe);

am "ohno" a lui tradelover dar nu stiu cum m-as putea folosi de el


Multumim pentru aprecieri si bine ai revenit pe forum!
  • 0

#5 tradelover

tradelover

    Big Shark

  • Moderators
  • PipPipPipPipPipPipPipPipPip
  • 1421 posts
  • Gender:Male
  • Location:ChiangMai Thailand

  • Tranzactionez din 2005
  • Strategie/tehnica folosita mușcă și fugi...

Posted 08 October 2007 - 11:31 AM

Salve Nicu, si bine ai revenit!! Tot bear? Tot bear? ;)

E bine ce a zis TheEconomist. Rutina face parte din categoria "chestii simple si rapide, dar nu foarte precise" ;)

Este mult mai simplu ca ceea ce am facut eu, si mult mai rapida. Drawbackul ar fi atunci cand se umple chartul. Pentru ca MT4 poate stoca un numar limitat de bare in chart, care se poate seta din "Tools/Options/Charts/Max bars in chart". Pe TF-uri mici se umple foarte repede (am vorbit de asta in postul cu newbar). Si cand se umple (de exemplu daca e setat la 1000 si TF e 1 minut, e plin tot timpul!!!) atunci variabila Bars ramane tot timpul la 1000. Barele noi care vin vor impinge afara din chart bara cea mai veche. Caz in care pozna lui TheEc nu mai merge.

Alte variante simple:

1. Daca faci un indicator, cel mai simplu e

if (buffer[0]==emptyvalue)
{faci ce ai de facut, inclusiv calcului lui buffer[0];}

asta functioneaza intotdeauna corect, nu are nici un drawback daca faci indicatori, pentru ca bufferul indicatorului este deplasat la stanga cu fiecare bara noua (automat) iar bara goala care se creeaza are valoarea "emptyvalue". Imediat ce ai pus ceva in ea (zero, ori orice alta valoare diferita de emptyvalue), bara nu mai e noua. Drawbackul este ca nu o poti folosi la un expert ori script, pentru ca expertul/scriptul nu are buffere. Bufferele sunt doar pt indicatori.

2. Pe TF mai mare ca un minut functioneaza foarte bine o chestie babeasca de genul

if (low[0]=high[0])
{ faci ce ai de facut;}

Metatrader nu transmite ticksi care au aceeasi valoare cu tickul precedent, pentru cei mai multi dintre borkeri (inclusiv IBFX si MQ). Asta inseamna ca primul tick care vine si creeaza bara are high si low egale. Al doilea tick va fi intotdeauna mai sus sau mai jos, deci bara nu mai e noua. Dezavantajul e ca unii brokeri transmit ticksi si daca cursul sta pe loc, cu conditia ca pretul de ask sa varieze (spreadul) ori volumele sa varieze. In acest caz bara va fi considerata de mai multe ori ca "noua" (daca pretul de bid sta pe loc, pt MT cursul este acelasi, ca el arata bidul pe chart).

3. O varianta mai proasta este testarea volumelor (if (vol[0]=1)).

Asta functioneaza in 99% din cazuri. Totusi, uneori piata o ia razana (la stiri) si primul tick care vine face volumele 5, sau 10, sau chiar mai mult. In acest caz bara va fi omisa.

4. O varianta ca aceea a lui TheEc, dar in loc de bars sa testezi Time[0] este mai profesionala si merge intotdeauna.

pui in init(): OldTime=Time[0];

pui in start():

if (OldTime !=Time[0])
{ OldTime = Time[0];
faci de ai de facut
}

timpul deschiderii ultimei bare (Time[0]) se schimba la fiecare bara. Asta ar fi metoda cea mai buna. Singurul drawback este acela ca atunci cand lansezi expertul prima bara se pierde (nu se considera). Dar toate barele care vin dupa nu vor fi omise si nu vor fi luate de doua ori, nici nu da gusi cand se umple chartul cu bare. Asa ca drawbackul este "foarte" minor.

Mai sunt si alte metode.

Pentru IBFX eu folosesc Variantele 2 si 4. Varianta 2 nu mi-a dat niciodata gusi, pentru ca IBFX nu transmite ticksi daca pretul nu variaza la bid. Daca doar spreadul variaza, dar bidul sta pe loc, IBFX nu transmite nimic (nu veti vedea pe tick chart paliere orizontale la bid! Uneori vedeti paliere orizontale la Ask, daca de exemplu cursul variaza de la 1.2345/49 la 1.2346/49. Adica bidul creste cu 1 si spreadul scade cu 1, atunci Ask-ul face palier orizontal pe tick chart)
  • 0
There are no shortcuts in forex. You didn't learn to walk without first learning how to crawl.

#6 TheEconomist

TheEconomist

    Forexist activ

  • Members
  • PipPipPipPipPip
  • 135 posts
  • Gender:Male
  • Location:Medgidia, Constanta, Romania
  • Broker curent GFT UK
  • Strategie/tehnica folosita Vand volatilitate

Posted 08 October 2007 - 11:48 AM

atunci variabila Bars ramane tot timpul la 1000. Barele noi care vin vor impinge afara din chart bara cea mai veche. Caz in care pozna lui TheEc nu mai merge.


Mea culpa, a functionat pe backtest, asa ca n-am avut rabdarea sa forward test care i-ar fi limita....probabil parea a merge, imi aduc aminte ca se cam opreau pe testarea vizuala, dar credeam ca din cauza pierderii ;)
  • 0
MQL4 Level 70 Archmage

#7 nicugh

nicugh

    Forexist activ

  • Members
  • PipPipPipPipPip
  • 117 posts
  • Gender:Male
  • Location:Roman
  • Interests:Instalatii incalzire, climatizare, ventilatie, sisteme solare, consultanta si executie.

  • Tranzactionez din 2005

Posted 08 October 2007 - 06:18 PM

Salve Nicu, si bine ai revenit!! Tot bear? Tot bear? ;)


Buna Laur, deocamdata in stand by, un bid nejucat e un bid nepierdut, int-un fel o pornesc iar de la capat, bine ca m-am putut abtine si nu am jucat in perioada asta.
multumesc pentru ajutor, am ales varianta 2, if(Low[0]==High[0]).


Tin pumnii stransi pentru "stitch"
  • 0

#8 nicugh

nicugh

    Forexist activ

  • Members
  • PipPipPipPipPip
  • 117 posts
  • Gender:Male
  • Location:Roman
  • Interests:Instalatii incalzire, climatizare, ventilatie, sisteme solare, consultanta si executie.

  • Tranzactionez din 2005

Posted 28 October 2007 - 02:56 PM

revin cu o intrebare, de data asta legata de magicnumber, in varianta simpla avem:
#define MAGIC 1111111

if(OrderMagicNumber()!=MAGIC)
//--facem ce avem de facut

probema apare cand vrem sa folosim expertul in acelasi timp pe mai multe perechi si timeframe, ar fi necesar ca MAGIC sa fie generat de simbol si timeframe,
care ar fi solutia problemei?



... despre moneymanagement nu mai intreb ca solutia exista deja aici http://forum.vamist....loti-t1187.html
  • 0

#9 ener

ener

    Forexist activ

  • Members
  • PipPipPipPipPip
  • 234 posts
  • Gender:Male
  • Location:bucharest

Posted 28 October 2007 - 10:05 PM

pai tu magic numberul il dai cand plasezi ordinul, magic numberul se foloseste cand folosesti mai multe multi experti si nu vrei ca unu din experti sa se bage peste ordinele celuilalt.
tu cu un expert tranzactionezi o singura pereche pe un singur tf.
solutia pentru problema ta ar fi cred definirea unui magic number diferit pentru fiecare pereche, iar acel magic number sa fie dat ca parametru la initializare.
  • 0
putting on a winning trade requires absolutely no skill

Stage Two Trader - Conscious Incompetence

#10 tradelover

tradelover

    Big Shark

  • Moderators
  • PipPipPipPipPipPipPipPipPip
  • 1421 posts
  • Gender:Male
  • Location:ChiangMai Thailand

  • Tranzactionez din 2005
  • Strategie/tehnica folosita mușcă și fugi...

Posted 29 October 2007 - 06:05 AM

Partea cu TF e usor de facut, pentru ca TF e numeric. Adica el are valorile 1, 5, 15, 30, 60, 240, 1440, etc. si il poti folosi direct ca magic number.

Partea cu perechea e oleaca mai complicata, pentru ca perechea e string, si trebuie sa definesti un cod care sa iti transforme literele in cifre. Poti folosi (de)codificarea in ascii (adica parsezi numele perechii si inlocuiesti literele cu codul ascii corespunzator), dar in acest caz numarul generat nu iti mai incape in locatia pentru integer. O alta varianta e sa aduni literele la un loc (codul lor ascii) dar in acest caz unele perechi (ori alte instrumente) vor genera (probabil) acelasi cod, caz in care unicitatea nu mai e asigurata. De ce zic asta? Adunand codurile ascii pt EUR si pt USD, de exemplu, gasesti aceeasi suma, pentru ca U=U, iar E+R=(D+1)+(S-1)=D+S, deoarece E=D+1 si S=R+1 in codul ascii. Ar trebui facuta o chestie mai intortocheata, de exemplu o suma CRC.

Arunca o privire in fisierul atasat. Este un script demonstrativ care genereaza magic-numbers in functie de perechea si timeframul pe care este tras. Se copiaza in directorul de scripturi. Valoarea pt chartul curent este scrisa in log, cu Print(), dar in acelasi timp, ca demonstratie, se creaza un fisier .csv (in folderul de fisiere, experts/files) numit magics.csv, care contine codurile pentru toate perechile si tf-urile. Daca vrei sa verifici ca ele sunt unice, incarci acest fisier in excel, il sortezi dupa magic (click pe data, in meniul excel, click sort) si verifici ochiometric. Daca apare in excel ceva de genul "1.234E15" trebuie sa faci coloana mai mare sa incapa toate cifrele, atunci vei vedea numerele in clar. Daca ai cont mini, fa o verificare, pentru ca eu nu am cont mini, iar "m"-ul de la sfarsit va schimba codurile. Asta e in vantajul tau, daca folosesti mai multe conturi si vrei sa vezi care ordere sunt deschise pe mini si care pe standard (asta nu se poate cu metatrader, dar se poate daca aduci de la metaquotes un programel numit "MultiTerminal" care iti permite sa te logezi la mai multe conturi simultan).

Una dintre cele doua functii (care urmeaza dupa start() adica) se pot copy/paste in expertul tau si se pot folosi cum crezi de cuviinta. Eventual algoritmul de generare de magicuri se poate schimba, dar daca il schimbi tre sa verifici intotdeauna ca numerele generate sunt unice, si trebuie sa te asiguri ca ele sunt destul de mari ca sa nu se incurce cu alte eventual magicuri pe care le dai manual (in anumite situatii poate ai nevoie de magicuri manuale) si care de obicei sunt mai mici.

Attached File  Magic_Code.mq4   3.54KB   131 downloads

Pipsuiala spornica!
  • 0
There are no shortcuts in forex. You didn't learn to walk without first learning how to crawl.




1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users

Tranzactiile forex implica un grad ridicat de risc. Informatiile de pe acest site NU reprezinta recomadari de tranzactionare sau investitii.
Administratorii vamist.ro nu-si asuma responsabilitatea pentru eventualele probleme sau pierderi materiale aparute in urma utilizarii informatiilor de pe site.