domenica 11 marzo 2012

OrderSend Error 138

L'errore 138 è un errore che si incontra tipicamente quando si utilizza denaro reale e non su conti demo oppure in fase di backtest.

Come al solito andiamo a cercare il suo significato nella documentazione ufficiale di metatrader:

ERR_REQUOTE - 138: The requested price has become out of date or bid and ask prices have been mixed up. The data can be refreshed without any delay using the RefreshRates function and make a retry. If the error does not disappear, all attempts to trade must be stopped, the program logic must be changed.

Che in parole povere indica che il prezzo di mercato che abbiamo inserito nella funzione OrderSend non è più valido rispetto all'attuale prezzo del cambio, comunemente questo comportamento viene chiamato requote.

Ci sono 2 motivi principale per cui questo può accadere:
 

sabato 10 marzo 2012

Metatrader error 131

L'errore 131 è uno degli errori più frequenti che si incontrano quando si testano gli expert advisor di metatrader.

Nella documentazione ufficiale di metatrader troviamo questa definizione:

Error 131 - ERR_INVALID_TRADE_VOLUME: Invalid trade volume, error in the volume granularity. All attempts to trade must be stopped, and the program logic must be changed.

Questo significa che l'ea sta cercando di piazzare a mercato un ordine con un volume non valido, nella chiamata alla orderSend stiamo quindi passando un valore non corretto al terzo parametro:

int OrderSend( string symbol, int cmd, double volume, double price, int slippage, double stoploss, double takeprofit, string comment=NULL, int magic=0, datetime expiration=0, color arrow_color=CLR_NONE)

Generalmente è un errore che viene restituito quando tentiamo di usare frazioni di lotto non consentite negli account standard ma può capitare di avere lo stesso problema anche sui mini-conti.

Ma come superare questo problema e passare alla funzione dei valori corretti in modo che gli ordini inseriti vengano effettivamente aperti?