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:

  • il valore inserito come prezzo di apertura è molto vecchio e non compare tra le quotazioni recenti del cross. Può verificarsi quindi anche se il prezzo inserito non è molto "distante" da quello attuale e anche se è compreso nello slippage.
  • il prezzo inserito compare tra le quotazioni recenti del broker ma ha uno scostamento più elevato rispetto allo slippage che abbiamo inserito nella chiamata alla funzione OrderSend.

Aggirare questo problema non è molto difficile, è sufficiente utilizzare la funzione RefreshRates() subito prima della chiamata alla OrderSend ed utilizzare direttamente le variabili Bid e Ask per l'ordine che si vuole aprire senza ricorrere all'uso di variabili double memorizzate precedentemente.

Altro accorgimento che si può utilizzare è quello di inserire un valore di slippage sufficientemente alto in modo da non incorrere in questo errore anche se si verificano momenti di alta volatilità del mercato ed il prezzo subisce consistenti variazioni in pochi istanti. Un valore corretto per lo slippage può essere di 5, 10 pips.
Ovviamente uno slippage del genere non è adatto a tutti i tipi di operatività ed è consigliabile informarsi sul comportamento del broker con cui si intende aprire il conto prima di scontrarsi con spiacevoli inconvenienti.

Infine ricordo che è buona prassi verificare sempre l'esito della funzione OrderSend in modo da poter riproporre l'ordine nel caso questo non venisse accettato ad esempio per un requote.

Il seguente pezzo di codice tenta di aprire una posizione long, nel caso in cui non riesca a piazzare l'ordine a mercato stampa l'errore e riprova ad inserire una posizione long:

RefreshRates();
ticket=OrderSend("EURUSD", OP_BUY, Lots, Ask, 3, 0, Ask + TakeProfit * Point, "MicroHedgeSystem", MagicNumber, 0, Green);
if(ticket>0){
if(OrderSelect(ticket, SELECT_BY_TICKET, MODE_TRADES)) Print("BUY order opened : ", OrderOpenPrice());
}
else{
Print("Error opening BUY order : ", GetLastError());
RefreshRates();
ticket=OrderSend("EURUSD", OP_BUY, Lots, Ask, 3, 0, Ask + TakeProfit * Point, "MicroHedgeSystem", MagicNumber, 0, Green);
if(ticket>0){
if(OrderSelect(ticket, SELECT_BY_TICKET, MODE_TRADES)) Print("BUY order opened : ", OrderOpenPrice());
}
}

Articolo liberamente tradotto da OrderSend Error 138 (Requote).
 

2 commenti:

Forex Signals Trader ha detto...

USA Forex Signal Provide best forex signals in the world. USA Forex Signal Provide free forex trading signals daily.
What are the criteria for selecting USA Forex Signal provider for you?
When you add USA Forex Signal provider, lead not look it to your reside account without the compulsion of investigation. These systems are primarily based on complicated statistical mathematics and algorithms in analyzing marketplace trends, predict, and predictions. USA Forex Signal is a worldwide and adeptly-known Forex signals Company. It is worldwide just about 400+ country SMS and worldwide Email coverage Forex Signals Company. It is top forex signals providers. There are lots of things which they manage to pay for to satisfy customer’s obsession and it incorporates the finding out method. These automated upon the web trading services proclamation you to review and trade hundreds of trading systems and Forex signals, stocks, and commodities.
USA Forex Signal: http://www.usaforexsignal.com/

Trader Jonson Gilbard ha detto...

Hot Forex Signal Service.
Hot Forex Signal is the best world winning forex signals providers.
Hot Forex Signal Provide forex signals and trade copier service. Hot Forex Signal Also Provide accurate forex signals, free forex trading signals daily, live forex signals without registration, honest forex signals, reliable forex signals, buy forex signals, forex free signals buy sell, best forex trade copier, and so more service.
Hot Forex Signal Package List Below.
Trial
$ 21.1 for 7 days
Professional
$ 68.5 for 1 month
Most Popular Trade Copier
$ 395.60 for 3 months
Ultimate
$ 179.30 for 3 months
Visit For More Information: hotforexsignal.com

Posta un commento