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

#11 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 29 October 2007 - 06:17 AM

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.


solutia:
extern double MAGIC=............
nu ma ajuta, dupa un timp sigur voi uita ce numere am dat la fiecare, eu caut ceva de genul 111111+symbol+timeframe+primullot(in cazul in care expertul deschide mai multe loturi)=MAGIC
  • 0



#12 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 - 09:52 AM

eu caut ceva de genul 111111+symbol+timeframe+primullot(in cazul in care expertul deschide mai multe loturi)=MAGIC


ceea ce am pus eu iti da symbol+timeframe=MAGIC

toate orderele plasate din acelasi TF si pe aceeasi pereche vor avea acelasi magic, nu conteaza cand le pui, de pe ce computer le pui, cate loturi pui, etc. Iar magicurile vor fi unice, adica alta pereche si/sau alt tf va genera un alt magic.

Nu am inteles la ce iti trebuie 1111?? si la ce iti trebuie primullot?? Cu magicul de mai sus, restul e "orderopentime(), orderopenprice(), orderlots() etc... Chiar ai nevoie de 1111 ala? si de primullot?? Poate ca "primullot" s-ar justifica cand joci combinatii de biduri, dar in acest caz poti sa pui pentru orderele primei combinatii:

OrderSend(.... GetMagic()+100000000....);

Apoi pui plus 200000000 pentru combinatia a doua, etc.

Poti avea in acest fel mai mult de 20 de combinatii de ordere, deoarece GetMagic() genereaza numere intre 124'780'545 si 140'748'992, iar numarul maxim integer care poate fi memorat este 2'147'483'647. Fiecare combinatie poate avea un numar nelimitat de ordere si toate vor avea acelasi magic, in cadrul aceleiasi combinatii. De exemplu toate orderele plasate pe combinatia 5-a in tf-ul M30 pe CHFJPY vor avea magicul 628'778'270 (vezi fisierul csv).

In acest fel un MAGIC dat, poti identifica exact perechea valutara pe care a fost pus, time+framul pe care a fost pus, si combinatia de biduri (numarul ei) care a generat orderul care are magicul respectiv.

Nu ai nevoie sa memorezi toate numerele, faci testul cu "if(ordermagicnumber=getmagic+100000000*combinatie) then..."

Daca cele 20 de combinatii nu te satisfac, poti folosi

OrderSend(.... GetMagic()+20000000....);

(douazeci de milioane in loc de o suta de milioane) si atunci ai de 5 ori mai multe combinatii posibile (mai mult de 100 de combinatii diferite in cadrul aceluiasi TF si aceleiasi perechi, toate unice, pentru ca diferenta dintre cel mai mare si cel mai mic numar generat de GetMagic() este mai mica de 20 milioane).

Asta doar asa ca sa facem teoria chibritului ;), pentru ca sunt ferm convins ca la strategia care vrei tu sa o faci, GetMagic() e arhisuficient, fara bâzdâbâcuri adunate la el...

OrderSend(....GetMagic()....);

si

if (OrderMagicNumber()==GetMagic()) {.....}

sunt cu siguranta mai mult decat suficiente pentru orice implementare. Restul, precum am zis, sunt chestii pe care ti le dau functiile de tranzactionare (OrderXXXX()), ai timpul, loturile, preturile, stopul, targetul.... Nu imi vine sa cred ca ai o strategie asa de complexa incat sa nu poti identifica cu precizie un order hihi.... (daca ai, o vreu si eu ;)
  • 0
There are no shortcuts in forex. You didn't learn to walk without first learning how to crawl.

#13 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 29 October 2007 - 06:13 PM

Multumesc pentru ajutor, acum am picat de la servici (pacat ca nu am acces la net in timpul asta), sunt cam obosit, sper sa inteleg cum sunt generate, daca nu ramane sa-mi bat capul cu ele cand am o zi mai linistita, inca o data sarutmana!

inca nu e o strategie chiar asa de complexa, mai degraba vreau sa fac un "calapod" bun la toate, sa ramana de schimbat numai conditiile de intrare-iesire
  • 0

#14 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 04 November 2007 - 12:43 PM

Hi hi, magicul e extraordinar, multumesc Laur, le invarte le suceste si le nimereste :)

sa nu credeti ca daca zambesc am toate problemele rezolvate, pentru ca in anumite cazuri Stoploss nu mai este fix ca sa nu incalcam riscul recalculam si lotul
eu am incercat asa, dar are o buba, nu ii place ceva si imi intoarce error 131

//+------------------------------------------------------------------+
//| Calculeaza marimea stopului |
//+------------------------------------------------------------------+
double StopLoss()
{
double stop;
stop=iCustom(NULL, 0, "StopLoss",........);
//----
double SL;
SL=MathAbs(stop-Bid);
//----
return(SL);
}
//+------------------------------------------------------------------+
//| Calculeaza marimea lotului |
//+------------------------------------------------------------------+
double LotsOptimized()
{
double lot;
//----
lot=MathMax(MathFloor(AccountEquity()*RiscFactor*1000000/(StopLoss()*MarketInfo(Symbol(),MODE_LOTSIZE)))/100, 0.01);
//----
return(lot);
}


//-----------------------------------

if(tralala :) )

OrderSend(.........,LotsOptimized(),Bid,3,0,stop,.........);
  • 0

#15 tradelover

tradelover

    Big Shark

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

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

Posted 04 November 2007 - 05:09 PM

Salve nicu si mersi de laude :)

functia cu loturile lucreaza corect, presupunand ca ii dai parametrii care ii trebuie. Adica riscul trebuie sa fie un numar subunitar (de exemplu pt risc de 5% se da 0.05 ca parametru), iar stoplossul este in pipsi, adica pentru un stoploss de 150 de pipsi, se da ca parametru 150, si nu 0.0150 (ori in cazul jpy 1.50).

nu stiu ce fel de numar intoarce indicatorul tau custom, adica daca cursul e 1.2345 si stopul e la 1.2395, atunci ce intoarce? iti da valoarea stopului in pretz? adica 1.2395? sau cum? in pipsi? adica 50?

daca intoarce stopul in pipsi (adica 50 de pipsi), atunci calculul SL=MathAbs(stop-Bid) este gresit. Daca intoarce stopul in pretz, atunci linia return(SL) este gresita, tie pentru calcul iti trebuie stopul in pipsi. Oricum ar fi, undeva trebuie inmultit/impartit cu Points.

Bun, acuma o alta observatie, din punct de vedere al eficientei, call-ul dublu din ordersend e total aiurea. Adica ce vreau sa zic, tu faci

OrderSend(.........,LotsOptimized(),Bid,3,0,stop,.........);

Probabil ca ai vrut sa zici

OrderSend(.........,LotsOptimized(),Bid,3,0,StopLoss(),.........);

pentru ca in primul caz variabila stop e definita in interiorul procedurii, ea nu este accesibila in afara ei, poate fi zero, poate fi orice valoare, daca nu iti da vreo eroare cum ca ar fi nedefinita....

Bun, deci probabil ca ai vrut sa zici StopLoss()...

Dar in acest caz tu chemi odata functia StopLoss() din interiorul lui LotsOptimized() si apoi inca odata explicit. Deci iCustom-ul tau se apeleaza de doua ori si executa exact aceleasi calcule pentru fiecare ordersend. Daca iCustom ia un timp "convenabil" de lung, practic viteza de trimitere a orderelor este de doua ori mai mica (calculele necesita un timp dublu)

Asta asa ca observatie....

O alta observatie e ca calculul lotului este exact doar atunci cand joci perechi cu USD la coada (care au un dolar pe pip la minilot sau 10 dolari pe pip la standard). Altfel, calculul lotului este aproximativ. De exemplu la G/J, cu 8 parai si ceva pe pip pe lot standard, riscul va fi mai mic, adica tu ii dai 0.03 risc, dar el va juca E/U cu risc de 3%, dar va juca G/J sau E/F cu un risc de 2.4%, in schimb va juca E/G cu un risc dublu !! Pentru a avea calculul lotului foarte exact pe toate perechile, ar trebui introdus in calcule si valoarea pipului (care se poate afla cu marketinfo). Eu nu am mai continuat treadul ala cu calculele, pentru ca am vazut ca nu interesa pe nimeni, dar mai erau multe chestii de discutat.....
  • 0
There are no shortcuts in forex. You didn't learn to walk without first learning how to crawl.

#16 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 04 November 2007 - 06:25 PM

nu stiu ce fel de numar intoarce indicatorul tau custom, adica daca cursul e 1.2345 si stopul e la 1.2395, atunci ce intoarce? iti da valoarea stopului in pretz? adica 1.2395? sau cum? in pipsi? adica 50?

daca intoarce stopul in pipsi (adica 50 de pipsi), atunci calculul SL=MathAbs(stop-Bid) este gresit. Daca intoarce stopul in pretz, atunci linia return(SL) este gresita, tie pentru calcul iti trebuie stopul in pipsi. Oricum ar fi, undeva trebuie inmultit/impartit cu Points.


iCustom e un Parabolic SAR deci intoarce valoarea stopului in pret sau asa cred ca face


Bun, acuma o alta observatie, din punct de vedere al eficientei, call-ul dublu din ordersend e total aiurea. Adica ce vreau sa zic, tu faci

OrderSend(.........,LotsOptimized(),Bid,3,0,stop,.........);

Probabil ca ai vrut sa zici

OrderSend(.........,LotsOptimized(),Bid,3,0,StopLoss(),.........);

pentru ca in primul caz variabila stop e definita in interiorul procedurii, ea nu este accesibila in afara ei, poate fi zero, poate fi orice valoare, daca nu iti da vreo eroare cum ca ar fi nedefinita....

Bun, deci probabil ca ai vrut sa zici StopLoss()...


nu te contrazic, if(daca as sti nu as intreba), varianta simpla pentru mine ar fi sa-ti trimit un pm cu ce vreau sa faca expertul si sa te rog sa mi-l scrii, dar nu o fac, tocmai pentru a starni si interesul altora.
al doilea motiv e ca daca va necesita schimbari nu as sti ce sa-i fac :)

asa ca vreau nu vreau invat si asta, desi singura mea legatura cu if, &&, ||,...vine de la instalatiile de automatizari electrice :)


later edit:

Hi hi, l-am mai zmotocit, rasucit si pana la urma am gasit unde era beleaua :), mai am un pic de aritmetica cu cat inmultesc cu cat impart sa mearga pe toate perechile la fel

pana la campionatul urmator e gata :D
  • 0

#17 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 03 December 2007 - 10:47 PM

iar m-am incurcat in aritmetica ,o fi berea de vina :)

clasic pentru o intersectie de MA-uri avem:
extern double MASlowPeriod=50;
extern double MAFast=14;

double MASlow, MAFast;
double MASlowp, MAFastp;

MASlow=iMA(NULL,0, MASlowPeriod,0,MODE_EMA,PRICE_CLOSE,1);
MAFast=iMA(NULL,0,MAFastPeriod,0,MODE_EMA,PRICE_CLOSE,1);
MASlowp=iMA(NULL,0, MASlowPeriod,0,MODE_EMA,PRICE_CLOSE,2);
MAFastp=iMA(NULL,0,MAFastPeriod,0,MODE_EMA,PRICE_CLOSE,2);

if((MAFastp < MASlowp && MAFast > MASlow) || (MAFastp >MASlowp && MAFast < MASlow))

face ce avem de facut :)

problema apare cand in loc de linia unui MA vreau sa folosesc un nivel al acelei linii

nivelMA.jpg

linia gri este nivelul -38.2 si 38.2 al MA galben
  • 0

#18 tradelover

tradelover

    Big Shark

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

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

Posted 04 December 2007 - 05:16 AM

Nivele Fibo la MA?? haha, uite unu care vine cu ceva nou... Habar nu aveam ca se pot pune nivele la MA... Well, din cate m-am uitat pe grafic, aceste nivele nu sunt altceva decat translatii verticale ale lui MA, cu numarul de pipsi specificat ca nivel. Nu stiu ce relevantza au ele, pentru ca o miscare de 38 de pipsi la euro nu e la fel ca o miscare de 38 de pipsi la g/j. Personal cred ca utilitatea lor e egala zero. Dar ma rog, treaba ta, clientul nostru - stapanul nostru... :)

Deci

double Level=38.2;

....

if (MAFast+Level*Point<MASlow-Level*Point ....
bla bla, orice alta combinatie de plus si minus vrei, ca nu stiu strategia ta....

ar trebui sa iti rezolve treaba...

Eventual poti integra in calculele initiale, MAFastPlus=MAFast+Leve*Point, MAFastMinus=MAFast-Level*Point, etc, si le folosesti in consecita in if-uri.

Daca vrei sa citesti in mod dinamic din expert nivelele pe care le ai (adica sa le pui din properties la MA, in tabul de Levels, si expertul sa le citeasca de acolo si sa se comporte in consecinta, in functie de cate leveluri pui si de valorile lor) atunci asta este oleaca mai complicat. Pentru indicatori se folosesc level properties, dar in expert nu stiu cum se face, ar trebui verificat daca OBJPROP_FIRSTLEVEL+n merge si pe MA (?!?! in mod normal merge doar pe fibo extensions si fibo retracement, nu stiu daca merge si pe iMA). Ideea e sa faci un indicator separat, care sa iti intoarca nivelele de care ai nevoie, si sa il folosesti in expert cu iCustom, pentru ca in expert nu ai tabul cu levels, el apare doar la indicatori).

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

#19 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 05 December 2007 - 11:04 PM


Multumesc, iar mi-ai limpezit neuronii :) si uite ce scalper a iesit
Attached File  mysimplefx.mq4   2.98KB   147 downloads

nu am istoric mai mare de un an la eur/usd da pe ultimul a cam asa a cules (T=15min)
eurusd.gif
  • 0

#20 dinucu

dinucu

    Forexist in devenire

  • Members
  • Pip
  • 2 posts

  • Tranzactionez din 2007

Posted 27 May 2008 - 01:36 PM

Salutare,

am si eu o rugaminte la programatorii de mql. Doresc sa realizez un expert pe baza unei strategii pe care am dezvoltat-o de-a lungul multor luni, si pe care o folosec manual.

Deci cine imi sare si mie in ajutor sa programeze un EA si ramane si cu strategia.

multumesc in avans.

Imi puteti scrie si pe mail ca poate uit sa intru pe forum: [email protected]
  • 0




0 user(s) are reading this topic

0 members, 0 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.