Eliminazione ordini pendenti

Sezione dedicata a metatrader (ed altre piattaforme) ed al suo linguaggio di programmazione per il trading automatico

Moderatore: Dainesi

LucaMQL4
Messaggi: 89
Iscritto il: 15/02/2016, 23:11

Re: Eliminazione ordini pendenti

Messaggio da LucaMQL4 » 19/11/2017, 20:50

Ne ho preso uno così a campione, io continuo a non capire il problema e a non riuscire quindi a risolverlo

2017.11.19 19:47:40.378 2015.03.16 00:00:00 yyyy EURUSD,Daily: Valore ADX: 73.9849
2017.11.19 19:47:40.378 2015.03.16 00:00:00 yyyy EURUSD,Daily: Minimo Assoluto: 1
2017.11.19 19:47:40.378 2015.03.16 00:00:00 yyyy EURUSD,Daily: Massimo Assoluto: 5
2017.11.19 19:47:40.378 2015.03.16 00:00:00 yyyy EURUSD,Daily: Bid-(TP): 1.0321
2017.11.19 19:47:40.378 2015.03.16 00:00:00 yyyy EURUSD,Daily: Bid+(SL): 1.0656
2017.11.19 19:47:40.378 2015.03.16 00:00:00 yyyy EURUSD,Daily: Ask-(TP): 1.06617
2017.11.19 19:47:40.378 2015.03.16 00:00:00 yyyy EURUSD,Daily: Ask-(SL): 1.03267
2017.11.19 19:47:40.378 2015.03.16 00:00:00 yyyy EURUSD,Daily: PrezzoMin: 1.04617
2017.11.19 19:47:40.378 2015.03.16 00:00:00 yyyy EURUSD,Daily: PrezzoMax: 1.09059

Sponsor

Sponsor
 

LucaMQL4
Messaggi: 89
Iscritto il: 15/02/2016, 23:11

Re: Eliminazione ordini pendenti

Messaggio da LucaMQL4 » 19/11/2017, 20:59

Se può servire qualche altro dato a campione:

2017.11.19 19:57:15.266 2015.01.12 07:20:00 yyyy EURUSD,Daily: OrderSend error 130
2017.11.19 19:57:15.266 2015.01.12 07:20:00 yyyy EURUSD,Daily: OrderSend error 130
2017.11.19 19:57:15.266 2015.01.12 07:20:00 yyyy EURUSD,Daily: Valore ADX: 82.618
2017.11.19 19:57:15.266 2015.01.12 07:20:00 yyyy EURUSD,Daily: Minimo Assoluto: 2
2017.11.19 19:57:15.266 2015.01.12 07:20:00 yyyy EURUSD,Daily: Massimo Assoluto: 5
2017.11.19 19:57:15.266 2015.01.12 07:20:00 yyyy EURUSD,Daily: Bid-(TP): 1.17674
2017.11.19 19:57:15.266 2015.01.12 07:20:00 yyyy EURUSD,Daily: Bid+(SL): 1.19538
2017.11.19 19:57:15.266 2015.01.12 07:20:00 yyyy EURUSD,Daily: Ask-(TP): 1.19595
2017.11.19 19:57:15.266 2015.01.12 07:20:00 yyyy EURUSD,Daily: Ask-(SL): 1.17731
2017.11.19 19:57:15.266 2015.01.12 07:20:00 yyyy EURUSD,Daily: PrezzoMin: 1.17536
2017.11.19 19:57:15.266 2015.01.12 07:20:00 yyyy EURUSD,Daily: PrezzoMax: 1.19757

2017.11.19 19:57:15.266 2015.01.12 07:00:00 yyyy EURUSD,Daily: OrderSend error 130
2017.11.19 19:57:15.266 2015.01.12 07:00:00 yyyy EURUSD,Daily: OrderSend error 130
2017.11.19 19:57:15.266 2015.01.12 07:00:00 yyyy EURUSD,Daily: Valore ADX: 82.618
2017.11.19 19:57:15.266 2015.01.12 07:00:00 yyyy EURUSD,Daily: Minimo Assoluto: 2
2017.11.19 19:57:15.266 2015.01.12 07:00:00 yyyy EURUSD,Daily: Massimo Assoluto: 5
2017.11.19 19:57:15.266 2015.01.12 07:00:00 yyyy EURUSD,Daily: Bid-(TP): 1.17658
2017.11.19 19:57:15.266 2015.01.12 07:00:00 yyyy EURUSD,Daily: Bid+(SL): 1.19522
2017.11.19 19:57:15.266 2015.01.12 07:00:00 yyyy EURUSD,Daily: Ask-(TP): 1.19579
2017.11.19 19:57:15.266 2015.01.12 07:00:00 yyyy EURUSD,Daily: Ask-(SL): 1.17715
2017.11.19 19:57:15.266 2015.01.12 07:00:00 yyyy EURUSD,Daily: PrezzoMin: 1.17536
2017.11.19 19:57:15.266 2015.01.12 07:00:00 yyyy EURUSD,Daily: PrezzoMax: 1.19757

Avatar utente
carlo10
Messaggi: 2019
Iscritto il: 08/05/2014, 21:17

Re: Eliminazione ordini pendenti

Messaggio da carlo10 » 19/11/2017, 21:37

Mi sembra che i prezzi che stai stampando siano troppo precisi per essere utilizzati come TP o SL, dovresti troncare l'ultimo decimale se non ricordo male.

LucaMQL4
Messaggi: 89
Iscritto il: 15/02/2016, 23:11

Re: Eliminazione ordini pendenti

Messaggio da LucaMQL4 » 19/11/2017, 21:54

niente .. continua a persistere il maledetto error 130

LucaMQL4
Messaggi: 89
Iscritto il: 15/02/2016, 23:11

Re: Eliminazione ordini pendenti

Messaggio da LucaMQL4 » 19/11/2017, 21:57

di solito usando la funzione point il problema non persisteva mai, ma ora siccome il metodo di applicazione degli stop è differente come hai notato vado tremendamente in difficoltà

Avatar utente
carlo10
Messaggi: 2019
Iscritto il: 08/05/2014, 21:17

Re: Eliminazione ordini pendenti

Messaggio da carlo10 » 20/11/2017, 9:14

Riprova con un decimale in meno su tutte le variabili che passi alla ordersend, puoi utilizzare la funzione NormalizeDouble: https://docs.mql4.com/convert/normalizedouble

LucaMQL4
Messaggi: 89
Iscritto il: 15/02/2016, 23:11

Re: Eliminazione ordini pendenti

Messaggio da LucaMQL4 » 20/11/2017, 11:03

niente ... continua a dare error 130 all '80% degli ordini , e nel backtest non rispetta gli stop,o megli sembra che non li consideri proprio nonostante sul grafico sono ben segnalate, allego foto di una parte del backtest. praticamente l'anomalia che spesso si verifica è che chiude l'ordine al prezzo di apertura dello stesso.
Ho provato anche a cambiare broker ma niente da fare

nel codice ho provato come mi hai detto:

Codice: Seleziona tutto

double asksl=NormalizeDouble(Ask-(SL),4);
double asktp=NormalizeDouble(Ask+(TP),4);
double bidsl=NormalizeDouble(Bid+(SL),4);
double bidtp=NormalizeDouble(Bid-(TP),4);
double prezzoMAX=NormalizeDouble(PrezzoMax,4);
double prezzoMIN=NormalizeDouble(PrezzoMin,4);



 if(DayOfWeek()==LUN &&  ADX>V_ADX  && OrdersTotal()==0 ){

   
   printf("Ask-(SL): %g ",asksl);
   printf("Ask-(TP): %g ",asktp);
   printf("Bid+(SL): %g ",bidsl);
   printf("Bid-(TP): %g ",bidtp);
   printf("prezzomax: %g ",prezzoMAX);
   printf("prezzomin: %g ",prezzoMIN);
 

    Ticket=OrderSend(Symbol(),OP_BUYLIMIT,Lotti,prezzoMIN,0,asksl,asktp,"Buy Limit",Magic_Number1,0,clrYellow);

   Ticket=OrderSend(Symbol(),OP_SELLLIMIT,Lotti,prezzoMAX,0,bidsl,bidtp,"Sell Limit",Magic_Number2,0,clrOrange);

    }
    
   
Allegati
Immagine.png
Immagine.png (46.55 KiB) Visto 29 volte

Avatar utente
PlSoft
Messaggi: 160
Iscritto il: 20/12/2015, 21:12
Località: Suzzara

Re: Eliminazione ordini pendenti

Messaggio da PlSoft » 20/11/2017, 11:09

Ciao

Prova con questo codice
Allegati
Cattura.JPG
Cattura.JPG (70.41 KiB) Visto 29 volte

LucaMQL4
Messaggi: 89
Iscritto il: 15/02/2016, 23:11

Re: Eliminazione ordini pendenti

Messaggio da LucaMQL4 » 20/11/2017, 11:47

PlSoft ha scritto:
20/11/2017, 11:09
Ciao

Prova con questo codice
Ma quelli che tu chiami per intero StopLoss Takeprofit come li hai definiti? li tipicizzi semplicemente e poi?

Mentre il Dig lo inizializzo a 4?

Avatar utente
PlSoft
Messaggi: 160
Iscritto il: 20/12/2015, 21:12
Località: Suzzara

Re: Eliminazione ordini pendenti

Messaggio da PlSoft » 20/11/2017, 11:51

Sono numeri interi esempio:

input int StopLoss=50;
input int TakeProfit=50;

int Dig=MarketInfo(Symbol(),MODE_DIGITS);

Rispondi