Sari la conținut

Creare expert pe baza unui indicator


Postări Recomandate

Scripturile se executa manual, se instaleaza in alt folder decat indicatorii, si ruleaza o singura data. Pune tu indicatorul in folderul scripts si incearca sa-l rulezi, si o sa vezi ca nu e "un fel de script". Vorba bancului, vreau si o a doua parere.

 

Din documentatia Metaquotes:

Script is a program intended for a single execution of some actions. Unlike Expert Advisors, Scripts are not run tickwise, but on request.

Scripts are stored in terminal_dictionary\experts\scripts.

 

 

Scripts are executed once and deleted automatically after they have completed their operation, or when the current chart has been closed or changed its status, or when the client terminal has been terminated. Scripts are not launched at the terminal restart since information about them is not saved.

 

In alta ordine de idei, astea ce-or fi?

 

//---- buffers

 

 

int i;

 

double R1, R2, R3 ;

 

double X05 ;

double X06 ;

double X07 ;

double X08, XRN ;

double xRet ;

double xRetPct;

 

string tChartPeriod ;

Link spre comentariu
Distribuie pe alte site-uri

Am pus script intre ghilimele si am argumentat si ce ce am spus "script".Arunca un pe IndicatorBuffers.

 

In alta ordine de idei, astea ce-or fi?

Variabilele cu X0 din cate am cautat prin cod nu mai sunt folosite.(am cautat 5 si 7).Ai putea sa comentezi liniile alea si sa vezi daca merge codul fara.(si cred ca merge).

 

Ne poti spune ce face indicatorul?

Link spre comentariu
Distribuie pe alte site-uri

  • Moderators

Calculele acestea:

 nHH      =  Highest(NULL,0,MODE_HIGH,myBars,myShift); 
 nLL      =  Lowest(NULL,0,MODE_LOW,myBars,myShift); 
 
 myUpper      = High[nHH]; 
 myLower      = Low[nLL]; 

      
 work     = ( myUpper  - myLower ) * myWindow  ; 
   
 goShort  = myLower  + work   ;
 goLong   = myUpper  - work   ; 
+ variabilele externe:

extern double    myUpper      = 0 ; // se poate inlocui cu o cotatie de pret care va constitui maximul
extern double    myLower      = 0 ; // minimul
extern double    myWindow     = 0.60 ; // 60% - explic mai jos la ce foloseste
extern int       myBars       = 34 ; //perioada pe care cauta maxim si minim
extern int       myShift      = 1 ;
sunt singurele bucati de cod care conteaza cu adevarat. Restul de cod e folosit doar pentru desen. (Comentariile sunt puse de mine aici pentru postarea aceasta, nu apar in cod)

 

Indicatoul cauta maximul si miminul pe perioada introdusa de utilizator, care vor constitui nivelele de suport (minimul) si rezistenta (maximul), iar mai apoi pune o linie orizontala de short la minim + 60%(myWindow) din distanta dintre maxim si minim si o linie orizontala de long la maxim-60% din distanta anterior mentionata.

 

hawkman nu stiu unde ai gasit indicatorul asta, dar dupa cum ma asteptam se dovedeste a fi o mare balarie. Nu stiu ce expert profitabil ar putea iesi din el. Dar daca ai tu vreo super strategie testata, retestata, forward testata, backtestata, care aduce profit folosind numai amarata asta de formula atunci te invit sa o postezi aici pe forum, caz in care probabil te voi ajuta cu implementarea expertului. Dar daca vrei sa faci un expert dupa indicatorul acesta doar asa... de amorul artei iti sugerez sa inveti singur mql, ca nu vad de ce si-ar pierde cineva vremea cu un astfel de indicator.

Link spre comentariu
Distribuie pe alte site-uri

Am pus script intre ghilimele si am argumentat si ce ce am spus "script".Arunca un pe IndicatorBuffers.

 

In alta ordine de idei, astea ce-or fi?

Variabilele cu X0 din cate am cautat prin cod nu mai sunt folosite.(am cautat 5 si 7).Ai putea sa comentezi liniile alea si sa vezi daca merge codul fara.(si cred ca merge).

 

Ne poti spune ce face indicatorul?

 

Calculeaza suport si rezistenta in mod dinamic si ofera puncte de intrare si de reversal cu risk/reward ratio. Merge pe orice perioada si orice instrument (si prin merge pe orice instrument inteleg ca are o precizie formidabila). Se pare ca ai avut dreptate la faza cu variabilele (am sters cateva din ele si merge si fara ele) dar totusi nu e script. Daca-l copiezi in indicators/scripts, il compilezi si incerci sa-l rulezi n-o sa dea nici un rezultat.

In fine, asta conteaza mai putin. Asa cum am spus, m-ar interesa un expert care pornind de la valorile calculate de indicator, sa execute ordinele automat. Asta ar elimina din ecuatie emotiile si incetineala in executie cauzata de lag si executia manuala. M-as fi apucat sa-l convertesc singur, dar talentul meu e la limbi straine, nu la programare.

post-4095-047315200 1278147105_thumb.jpg

Link spre comentariu
Distribuie pe alte site-uri

Calculele acestea:

 nHH      =  Highest(NULL,0,MODE_HIGH,myBars,myShift); 
 nLL      =  Lowest(NULL,0,MODE_LOW,myBars,myShift); 
 
 myUpper      = High[nHH]; 
 myLower      = Low[nLL]; 

      
 work     = ( myUpper  - myLower ) * myWindow  ; 
   
 goShort  = myLower  + work   ;
 goLong   = myUpper  - work   ; 
+ variabilele externe:

extern double    myUpper      = 0 ; // se poate inlocui cu o cotatie de pret care va constitui maximul
extern double    myLower      = 0 ; // minimul
extern double    myWindow     = 0.60 ; // 60% - explic mai jos la ce foloseste
extern int       myBars       = 34 ; //perioada pe care cauta maxim si minim
extern int       myShift      = 1 ;
sunt singurele bucati de cod care conteaza cu adevarat. Restul de cod e folosit doar pentru desen. (Comentariile sunt puse de mine aici pentru postarea aceasta, nu apar in cod)

 

Indicatoul cauta maximul si miminul pe perioada introdusa de utilizator, care vor constitui nivelele de suport (minimul) si rezistenta (maximul), iar mai apoi pune o linie orizontala de short la minim + 60%(myWindow) din distanta dintre maxim si minim si o linie orizontala de long la maxim-60% din distanta anterior mentionata.

 

hawkman nu stiu unde ai gasit indicatorul asta, dar dupa cum ma asteptam se dovedeste a fi o mare balarie. Nu stiu ce expert profitabil ar putea iesi din el. Dar daca ai tu vreo super strategie testata, retestata, forward testata, backtestata, care aduce profit folosind numai amarata asta de formula atunci te invit sa o postezi aici pe forum, caz in care probabil te voi ajuta cu implementarea expertului. Dar daca vrei sa faci un expert dupa indicatorul acesta doar asa... de amorul artei iti sugerez sa inveti singur mql, ca nu vad de ce si-ar pierde cineva vremea cu un astfel de indicator.

 

Pentru ca n-am zis neaparat sa mi-l faca cineva pr gratis. Probabil ca ar fi trebuit sa specific asta ca sa nu primesc raspunsuri din astea acide. In al doilea rand, cred ca glumesti la faza cu backtestingul. Lucrul pe cadavre merge la medicina nu aici. In ce priveste faza cu balaria, cred ca te inseli foarte tare. L-am urmarit foarte mult timp, chiar daca nu am tranzactionat inca dupa el si e extrem de precis (la pip chiar) indiferent de instrument sau perioada (merge si pe indici si orice altceva, CFD-uri, commodities). Se poate vedea din screenshot.

Link spre comentariu
Distribuie pe alte site-uri

  • Moderators

Indicatorul acesta este foarte usor de testat cu PaperTrader-ul. Ramane inca intrebarea unde intri si unde iesi din tranzactii. De exemplu ce faci daca cursul este intre liniile din mijloc, pui pendinguri acolo unde zice "go long" si "go short"? Si vei intra in tranzactie in prima directie care "bate"? (adica limit ordere?), ori mergi doar cu trendul principal? Presupunand ca ai intrat in tranzactie, unde iesi? adica joci doar intre liniile din mijloc, ori pui SL/TP pe liniile exterioare? Daca pui pe liniile exterioare, atunci pui exact pe ele, ori oleaca in interior/exterior? Ori pui stopul in spatele liniei exterioare (adica spre exterior, daca e suport, rezistenta, atunci o sa se intoarca pe ea, nu?) si pui targetul spre interior (daca se duce spre target dar se intoarce fara sa il atinga, pentru ca e si spreadul la mijloc, adica daca ai SL/TP pe euro de 10 pipsi, si spreadul este 2, atunci in favoarea ta trebuie sa se miste 10 pipsi, dar impotiva ta o sa te scoata dupa 8 pipsi). Si asa mai departe.

 

Faptul ca tu dai un indicator, nu inseamna ca - gata! - ai si strategia. Indicatorul e o gusa, cum spunea si Ciordi si altii mai sus. Nu face nimic interesant, iti da doar iluzia ca "merge perfect", pentru ca muta liniile alea dupa miscarea cursului, in asa fel incat in orice moment te uiti la el, el arata perfect pe grafic, "la precizie de pip". Dupa ce vei acumula ceva experienta in trading, o sa realizezi ca in forex nu exista "precizie de pip", e doar o iluzie. Deschide ST si pune un expert vid pe visual testing, adauga indicatorul tau pe chart si da-i o serie de F12, si o sa vezi singur ce magarie face. In orice moment static, arata perfect. Cand chartul se misca, toata treaba se schimba.

 

Pentru cine s-a jucat cu PT-ul meu, este foarte usor de testat acest indicator, folosind pending order mobil, trebuie doar sa aveti grija sa puneti un nou order pending cand se inchide cel vechi, pentru ca PT nu deschide ordere, doar manageriaza orderele vechi. Dati la default moving TP si default moving SL metodele OBJ(x,y) si folositi liniile de RES si SUP. Nici macar nu conteaza unde puneti pendingul, el va fi mutat la pozitia corecta la urmatorul tick (urmatoarea apasare de F12). Dati o serie de F12 pana se inchide orderul, apoi puneti altul, buy sau sell in functie de pozitia cursului fata de linia verde si linia rosu inchis, e doar un drag cu mouseul a unuia dintre cele doua butoane de sell si buy, care sunt tot timpul selectate, nu conteaza unde faceti drag-ul. La urmatorul tick orderul este pozitionat corect, daca ati scris metodele corect. Cand se inchide un order, puneti altul. Orderul nou va sta in pending pana da cursul peste el (si se va muta cu linia verde, daca e buy, ori cu cea rosie daca e sell.

 

Am testat cateva variante, una cu ambele ordere puse tot timpul, una folosind doar stop ordere (adica daca cursul era dedesuptul liniei verzi, puneam buystop pe linia verde, daca era deasupra liniei rosii puneam sell stop pe linia rosie) si una cu limit ordere (adica daca cursul era sub linia rosie, puneam sell limit pe linia rosie, invers pt buy la verde, iar daca cunsul era intre linii, puneam ambele limite). Am testat cu stopuri in afara si in interior, dupa cum am explicat mai sus (la asta am folosit metode ca OBJ(x+p) dar uneori am mai mutat stopurile cu mana, nu stiu de ce uneori nu se mutau imediat, ci dupa o perioada, dar asta nu a influentat rezultatul testului prea mult.

 

Un exemplu arata asa, pe euro M30, aproape la final de test:

post-1272-048109400 1278175098_thumb.jpg

 

(pentru cine nu stie cum functioneaza PT, sagetutele rosii sunt locurile unde s-a mutat pendingul, pentru ca s-au mutat liniile indicatorului, iar liniile punctate orizontale dintre sagetute sunt perioadele pe care pendingul a stat pe grafic inainte de a se activa)

 

La inceput se vad doua buyuri care castiga, apoi un sell care pierde grass, pe la mijloc mai sunt niste tranzactii marunte apoi un sell care castiga, iar pe final se mai vede un buy care castiga, dar inainte de a castiga a fost la apa rau, doar la cativa pipsi de stop (cand a fost in desfasurare, linia albastra era mai jos, sub deep-ul de pe 29 la ora 17, deci caderea de pe 30 la ora 3:00-3:30 a fost doar la cativa pipsi de stop, apoi a revenit si a castigat ceva pipsi. La sfarsit de tot se mai vede un sell, care pierde FOARTE gras, pe ultima urcare (linia roie punctata e ascunsa de curs, dar daca va uitati atenti se vede, in plus se vede sageata rosie de inchidere in varful ultimei candele. Acel sell a fost deschis pe candela precedenta, in dreptul liniei orizontale verzi. Pare un pic ciudat un sell deschis pe linia de go long, dar nu uitati ca pe candela precedenta, adica inainte de crestere, acolo era de fapt linia rosie!!! Adica de sell.

 

De asta si spuneam, legat de dinamica, cand te uiti la graficul static totul arata perfect. Dar in miscare, dezastru. E la fel ca la strategiile cu crossuri de MA-uri, cand te uiti pe grafic se pare ca daca intrai pe crosuri faceai o gramada de bani, doar ca in timp real crosurile nu se produc acolo, adica cand vezi crossul, cursul e deja la mama naibi. Asa si aici, liniile alea pe grafic nu inseamna nimic, candela urmatoare poate sa le mute la mama naibii. Bineinteles ca atat inainte de mutare cat si dupa, ele vor fi potrivite pe grafic "la pip", ca asa sunt trasate.

 

Ca sa nu mai lungesc vorba, strategia este perdanta oricum ai lua-o si oricum ai invarti-o, oricum ai pune stopurile si targeturile. Mai degraba face ceva profit daca tranzactionezi intre liniile din mijloc, adica cand taie linia rosie in jos intri short, cand taie linia verde in sus intri long, si iesi imediat la cealalta linie din mijloc, fara sa astepti sa se duca la extreme. Asa face mai multe tranzactii cu plus decat cu minus, dar pe ansamblu face tot pierdere, pentru ca RR-ul este subunitar (daca pastram stopul pe linia exterioara, ca altfel incasam o gramada de stopuri).

 

Pacat ca nu mai am toate equity grafurile, daca nu era de plasat ordere manual cu PT le mai faceam odata, dar asa, grrr, o grama' de munca. Ultimul equity il am totusi:

 

post-1272-070552100 1278176822_thumb.jpg

 

Merge in jos, ca si celelalte...

Editat de tradelover
uitasem atasurile, grrr
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.