Sari la conținut

TUNEL EA - am nevoie de ajutor!


Postări Recomandate

  • Moderators

Codul nu este foarte greu de implementat insa trebuie gasite niste puncte de intrare ceva mai specifice pentru a putea testa EA-ul pe backtest. Am sa incerc in weekend daca am timp si daca nu uit sa scriu acest cod. Probabil am sa scriu un ea care sa managerieze aceste pozitii dupa ce punctul initial de intrare este setat manual. Asa ar fi cel mai usor. Daca ai insa alte puncte specifice de intrare in functie de vreun indicator sau ora(am sa implementez probabil varianta cu intrari la deschiderea londrei) te rog sa dai cateva exemple si eu am sa incerc sa le pun in practica.

Link spre comentariu
Distribuie pe alte site-uri

Codul nu este foarte greu de implementat insa trebuie gasite niste puncte de intrare ceva mai specifice pentru a putea testa EA-ul pe backtest. Am sa incerc in weekend daca am timp si daca nu uit sa scriu acest cod. Probabil am sa scriu un ea care sa managerieze aceste pozitii dupa ce punctul initial de intrare este setat manual. Asa ar fi cel mai usor. Daca ai insa alte puncte specifice de intrare in functie de vreun indicator sau ora(am sa implementez probabil varianta cu intrari la deschiderea londrei) te rog sa dai cateva exemple si eu am sa incerc sa le pun in practica.

Merci pentru replay! :-?

Pentru inceput cred ca ar fi bine daca EA-ul ar lucra cu functia <pending order> dupa intrarea manuala, cum te-ai gandit tu, sau sa iei in calcul de la inceput definirea inrtarii ca la Terminator_v2.0 -30min-1h time2 liv7.....myOrderType=1 pentru buy si ...myOrderType=2 pentru sell, astfel pe parcurs putem adauga diferite metode de intrare dupa indicatori sau alte criterii. Am ales EA-ul de mai sus ca are multe posibilitati de ajustare si este compartimentat.

De asemeni e bine de avut ca variabile cu valori initiale:

 

TakeProfit=24;

StopLoss=48;

MaxTrades=3; -Maximum ordinelor deschise

Pips=24; -Distanta in Pips pana la a doua pozitie invers fata de prima(adica pasul 2)

Lots=0.1; -Lotul de start

Multiplier2=2; -Multiplicatorul de exponentiere

AccountisNormal=0; - Zero pentru acont narmal 1 pentru micro(5 digits)

SecureProfit=24; - Daca profitul ajunge la SecureProfit inchide toate ordinele

AccountProtection=1; - 1 enabled, 0 disabled SecureProfit

OrderstoProtect=3; - Nivelul de la care se aplica SecureProfit

OpenOrdersBasedOn=; - Pentru stabilirea metodei de intrare (prima pozitie}

 

Pentru MaxTrade= 1 ar fi bun si un "TrailingStop"de forma ----daca profitul ajunge la "n" pips StopLoss sa urce in "m" pips pe plus,indiferent la cat este fixat initial, dupa care sa urmareasca profitul din "k" in "k" pips(n,m,k variabile initiale prestabilite)----

Ar mai fi de retinut diferenta de spreads la TP, SL, pentru buy si sell astfel incat pozitiile sa se inchida in acelasi timp.

Daca nu m-am facut inteles cu unele lucruri, te rog sa mi le spui!! ;)

Spor la treaba si la pips!!!! ;)

Editat de luke65
Link spre comentariu
Distribuie pe alte site-uri

  • 1 lună mai târziu...

Codul nu este foarte greu de implementat insa trebuie gasite niste puncte de intrare ceva mai specifice pentru a putea testa EA-ul pe backtest. Am sa incerc in weekend daca am timp si daca nu uit sa scriu acest cod. Probabil am sa scriu un ea care sa managerieze aceste pozitii dupa ce punctul initial de intrare este setat manual. Asa ar fi cel mai usor. Daca ai insa alte puncte specifice de intrare in functie de vreun indicator sau ora(am sa implementez probabil varianta cu intrari la deschiderea londrei) te rog sa dai cateva exemple si eu am sa incerc sa le pun in practica.

Criodi, mai este valabil ajutorul tau?

Editat de luke65
Link spre comentariu
Distribuie pe alte site-uri

  • Moderators

Imi cer scuze pentru intarzierea mea, insa din perioada sarbatorilor si pana acum spre sfarsitul lui ianuarie nu am putut sa dedic timp forex-ului aproape deloc. De saptamana viitoare o sa imi reintru incet incet in ritm, iar de la 1 februarie cel tarziu am sa reincep treaba in forta. Promit sa revin asupra acestui topic si asupra acestui program cat de curand. Am deja o structura de baza pe care am inceput-o acum 5-6 saptamani. Am sa revin asupra ei si am sa postez aici rezultatele.

Link spre comentariu
Distribuie pe alte site-uri

  • 2 săptămâni mai târziu...

Salut Criodi!!

Am primit mesajul tau si voi posta aici ,dupa cum am inceput daca nu te deranjeaza.

Iti voi raspunde punctual dar voi reveni mai pe seara ca acum am putina treaba.

Link spre comentariu
Distribuie pe alte site-uri

1. Pentru TP si SL poti sa pui aceiasi valoare (sau variabila sa o numim PIPS) ca tunelul e simetric, cel putin asa l-am gandit si experimentat eu.

2. In expert poti sa faci 2 sectiuni una pentru Buy si alta pentru Sell functie de prima pozitie, iar aici stiu ca este o functie care citeste spread-ul de pe chart, dupa care va ajusta nivelurile de TP si SL pentru fiecare sectiune in parte.

Aici e un indicator care afiseaza spread-ul daca te ajuta cu ceva.

3. Mai exista o problema, eu am experimentat cu factorul de exponentiere 3X, in acest caz TP e la 1x PIPS si SL e la 2x PIPS. Nu am incercat cu alti factori de exponentiere dar cu cat factorul de exponentiere e mai mare tot asa si profitul este mai mare, insa numarul de pozitii este mai mic iar probabilitatea de a nu mai avea margine este mult mai mare.

Daca factorul de exponentiere e 2x atunci se schimba si datele tunelului TP va fi 2x PIPS iar SL va fi 3x PIPS,astfel cand se va inchide pe TP sa fie intradevar profit.

4. Putem renunta la Tp si SL dar atunci mai trebuie o variabila SecureProfit= x, care sa inchida toate pozitiile odata, cand profitul ajunge la +x $. (asta se poate introduce oricum ca o masura de siguranta)

5. Nu am vazut cum ai gandit tu algoritmul expertului, dar cand il vei atasa la topic, il voi studia cu putinele cunostiinte care le am in programare si daca il inteleg, vom mai face modificari.

6. Da , indiferent cum se inchid pozitiile, totdeauna ramane un pending order care trebuie inchis.

E bine ca incepem cu un script simplu, ca mai tarziu dupa ce vedem cum functiuneaza pe perioade mai mari, mai putem sa-l imbunatatim.

Cred ca te-am derutat putin cu ce am incercat sa explic in postul trecut, mai ales ca am trecut gresit Multiplier2=2; -Multiplicatorul de exponentiere, valoarea corecta fiind 3 nu 2.

Voi atasa zilele astea mai multe imagini representative, cu aceasta strategie.

Spread.mq4

Editat de luke65
Link spre comentariu
Distribuie pe alte site-uri

  • Moderators

Am atasat acestui post expertul facut de mine. El nu face decat sa managerieze viitoarele ordine pending ce vor trebui deschise dupa ce userul deschide manual primul ordin. Datele ordinului initial trebuiesc apoi transmise expertului. Ti-am scris acest lucru pe PM, insa ma repet pentru toti ceilalti care poate mai citesc acest topic. Variabilele externe sunt urmatoarele:

 

extern int direction=0;

extern double openprice=0;

extern double takeprofit=0;

extern double stoploss=0;

 

extern int pips=24;

 

extern double lots=0.1;

extern double multiplier=2;

 

direction: 1 = Buy 2 = Sell

openprice,takeprofit,stoploss - datele primului ordin deschis

pips=lungimea canalului

lots=marimea loutului initial

multiplier=factorul de exponentiere

 

In rest am atasat comentarii fiecarei particele de cod, deci cred ca iti va fi destul de usor sa intelegii principiul dupa care funcioneaza.

 

Problema mea era urmatoarea defapt:

Exemplu:

Latimea tunelelului este de 20 pips. La nivelul1 se afla ordinele buy, iar la nivelelul2 se afla cele sell. Ipotetic nivelul superior de TP(ale ordinelor buy)si SL(ale ordinelor Sell) se va afla la 20 de pips deasupra nivelului superior al canalului. Invers pentru cel inferior. Acum apare defapt problema care mi-o pun eu. Pentru ca este obilgatoriu ca ordinele sa se inchida in acelasi timp atunci TP nu va fi niciodata exact. SL se va mentine constant la 40 pips insa TP va fii intodeauna egal cu 20pips-SPREAD(ca suma totala a profitului si nu ca operatie de calcul). Indiferent ca folosim ordinele TP/SL ale metatrader sau folosim nivele imaginare la care expertul va inchide singur ordinele takeprofitul va fii intodeauna mai mic decat lungimea canalului.

Eu din punct de vedere al programarii si al limbajului nu am nici o poblema in a adapta acest nivel in functie de spreadul curent. Voi avea grija ca expertul sa updateze totodata aceste nivele odata cu spreadul care stim cu totii ca este variabil.

Eram curios doar sa aflu ce parere ai tu despre acest lucru.

 

Momentan expertului ii lipseste aceasta parte de cod si practic nu este in stare sa inchida toate ordinele in acelasi timp. Acesta depinde inca de pret - fie acopera spreadul si atinge si nivelele de TP fi incaseaza doar SL-urile si se intaorce inapoi... Am sa adaug asta maine. Deocamdata insa executia programului este perfecta si pare sa isi faca treaba excelent. Defapt codul este extrem de simplu de implementat si nu cred ca vor fi probleme mai departe. Nu l-am terminat azi pentru ca am testat partea de executie a ordinelor. Mi-a luat ceva timp pana am gasit o situatie in care pretul sa se balbaie si sa imi deschida cat mai multe ordine pending :biggrin:

 

Singurul lucru mai avansat ce ar putea fi adaugat expertului este functia prin care acesta va deschide singur ordinul initial. Aici astept idei din partea ta, dar si din partea celor care citesc acest topic. Poate mai e si altcineva interesat de subiect :happy: Ce metode folosesti atunci cand te lansezi in trade ?

FxTunel2.mq4

Editat de Criodi
Link spre comentariu
Distribuie pe alte site-uri

Problema mea era urmatoarea defapt:

Exemplu:

Latimea tunelelului este de 20 pips. La nivelul1 se afla ordinele buy, iar la nivelelul2 se afla cele sell. Ipotetic nivelul superior de TP(ale ordinelor buy)si SL(ale ordinelor Sell) se va afla la 20 de pips deasupra nivelului superior al canalului. Invers pentru cel inferior. Acum apare defapt problema care mi-o pun eu. Pentru ca este obilgatoriu ca ordinele sa se inchida in acelasi timp atunci TP nu va fi niciodata exact. SL se va mentine constant la 40 pips insa TP va fii intodeauna egal cu 20pips-SPREAD(ca suma totala a profitului si nu ca operatie de calcul). Indiferent ca folosim ordinele TP/SL ale metatrader sau folosim nivele imaginare la care expertul va inchide singur ordinele takeprofitul va fii intodeauna mai mic decat lungimea canalului.

Eu din punct de vedere al programarii si al limbajului nu am nici o poblema in a adapta acest nivel in functie de spreadul curent. Voi avea grija ca expertul sa updateze totodata aceste nivele odata cu spreadul care stim cu totii ca este variabil.

Eram curios doar sa aflu ce parere ai tu despre acest lucru.

 

Momentan expertului ii lipseste aceasta parte de cod si practic nu este in stare sa inchida toate ordinele in acelasi timp. Acesta depinde inca de pret - fie acopera spreadul si atinge si nivelele de TP fi incaseaza doar SL-urile si se intaorce inapoi... Am sa adaug asta maine. Deocamdata insa executia programului este perfecta si pare sa isi faca treaba excelent. Defapt codul este extrem de simplu de implementat si nu cred ca vor fi probleme mai departe. Nu l-am terminat azi pentru ca am testat partea de executie a ordinelor. Mi-a luat ceva timp pana am gasit o situatie in care pretul sa se balbaie si sa imi deschida cat mai multe ordine pending :biggrin:

 

Singurul lucru mai avansat ce ar putea fi adaugat expertului este functia prin care acesta va deschide singur ordinul initial. Aici astept idei din partea ta, dar si din partea celor care citesc acest topic. Poate mai e si altcineva interesat de subiect :happy: Ce metode folosesti atunci cand te lansezi in trade ?

 

Am inteles im mare cum functioneaza scriptul, mai ales ca m-au ajutat comentariile tale. :)

La intrare eu folosesc analiza tehnica combinata si cu o analiza fundamentala, dar pentru incepul hai sa facem o intrare la o ora variabila si in directie variabila, de forma:

 

extern int OpenOrdersBasedOn=0; // Metoda pentru a decide Buy sau Sell, pentru valoarea 1 putem selecta OpenOrdersBasedTime

 

extern int StartHour = 0903; // Open Trade time

 

extern int direction=0; // Directia pentru setare manuala Buy sau Sell

 

//--------------------------------------------------------------------+

int OpenOrdersBasedTime()

{

int ct= Hour() * 100 + Minute();

if(ct == StartHour)

//----

return;}

 

unde introduci ciclarile si ce alte variabile le mai poti introduce las la aprecierea ta , dar poti sa te inspiri dupa Terminator_v2.0 -30min-1h time2 liv7 pe care l-am atasat intr-un post anterior.

 

Am atasat un exemplu de Buy prima pozitie, pentru multiplicator 2 si 3, sper ca am calcutat bine, dar daca am gresit ceva te rog sa ma corectezi.

Daca din punct de vedere al programarii si al limbajului nu sunt probleme, poti adapta scriptul la ce ti-am trimis eu si totodata sa faca si modificarea nivelelor de TP si SL la spread-urile curente.

Dupa ce gasesti solutia pentru a inchide toate pozitiile odata, poate atunci putem adauga si un

extern int SecureProfit=n , ca sa inchidem toate pozitiile cand profitul ajunge la n.

BUY 3.DOC

Editat de luke65
Link spre comentariu
Distribuie pe alte site-uri

  • Moderators

Am mai lucrat ceva la expert si am introdus variabila OpenOrdersBasedOn, insa deocamdata nu este valabila decat intrarea live. Adica OpenOrdersBasedOn=0 rezulta intrare in piata la pretul curent in directia aleasa, 1-buy 2-sell. Alte optiuni nu am introdus inca. O sa revin asupra lui in urmatoarele zile in vederea implementarii metodei de intrare in trade propusa de tine (la o ora variabila), plus partea care ar trebui sa inchida ultimul ordin pending ramas dupa ce toate ordinele active se inchid (am scris eu ceva, dar nu functioneaza. Nu am timp sa testez pe indelete EA-ul si din cauza asta il postez aici asa cum este. Daca mai sunt alte probleme posteaza aici).

 

In ceea ce priveste inchiderea oridnelor simultan am adaugat cod care sa managerieze ordinele TP si SL in functie de spread. Am urmarit exact modelul postat de tine si astfel TP-ul se pastreaza defapt constant (pips sau 2xpips), iar SL-ul se updateaza in functie de spread. Astfel teoretic ordinele TP/SL se vor declansa in acelasi timp si pozitiile se vor inchide simultan.

 

Mare grija la spread totusi. La un canal de 20 pips, un spread de 7-8 pips omoara tot profitul. Chiar daca nu intalnim spread atat de mare pe perechile principale in general, la brokerii market makeri perechile GBP de exmplu au spreadul destul de mare.

 

De asemenea scriptul stabileste acum valorile TP/SL in functie de multiplier, 2 sau 3, exact asa cum ai postat tu in documentul acela, 2xpips TP pentru multiplier 2 si TP=pips pentru multiplier 3.

 

In afara de acel ultim order pending care ramane deschis, scriptul pare a fi aproape complet in ceea ce priveste managerierea ordinelor(asta daca nu cumva am gresit eu ceva pe undeva :biggrin: ). Ar mai ramane de adaugat diverse metode de intrare in trade automate desi cred eu ca puterea acestei metode se afla defapt in intrarile manuale. Singurul lucru pe care il poate face EA-ul astfel incat sa ajute traderul cu adevarat e sa managerieze viitoarele ordine pending.

 

Uitate peste cod, testeaza EA-ul si spune-mi ce crezi. Am nevoie sa imi spui in primul rand daca macar ceea ce am scris eu pana acum functioneaza perfect. Mai departe om vedea :happy:.

FxTunel3.mq4

Link spre comentariu
Distribuie pe alte site-uri

L-am probat si functioneaza perfect, exact cum ai descris tu, corecteaza si nivelele de TP si SL. :biggrin:

Dupa rezolvarea problemei cu inchiderea ultimului pending order, ar mai fi inchiderea simultana a tuturor ordinelor, pentru securizarea profitului la n$(sau pips) si bineinteles stabilite metodele de intrare pentru teste. Pana acuma e bine si dupa aia vorba ta mai departe om vedea, la teste. :happy:

Editat de luke65
Link spre comentariu
Distribuie pe alte site-uri

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.