Orderclose error 138

orderclose error 138

OrderSend error 131: invalid trade volume OrderSend error 138: requote OrderSend error 4051: invalid function parameter value. ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+TakeProfit*Point,"macd sample",16384,0,Green); Print("Error opening BUY order: ",GetLastError());. This error only occurs in MT4 as MetaTrader 5 mainly uses a different OrderSend error code system. Error 138 means that the broker responded to.

watch the thematic video

Solución error #1273 - Unknown collation: ‘utf8mb4_unicode_ci’

EA code question about CloseOrders

I changed the Alert to Print so I could see it in the tester

There is NO CloseOrders

However, orderclose error 138, when the tester starts I get numerous line items in the journal which says this:
2011.09.01 20:03:24 TestGenerator: unmatched data error (volume limit 99 at 2011.08.25 20:15 orderclose error 138 don’t recall it saying this before.

Anyhow here is the code now:

//---- input parameters
extern double TakeProfit=300.0;
extern double Lots=0.1;
extern double StopLoss=20.0;
extern int MagicNumber=12345;

//++++ These are adjusted for 5 digit brokers.

int pips2points; // slippage 3 pips 3=points 30=points
double pips2dbl; // Stoploss 15 pips 0.0015 0.00150
int Digits.pips; // DoubleToStr(dbl/pips2dbl, Digits.pips)

//±-----------------------------------------------------------------+
//
// http://mt4ordersenderror.blog.fc2.com/ (OrderStopLoss()==0)) ^~~~~~~~~~~~~ prog.cpp:143:38: error: ‘OrderTicket’ was not declared in this scope run-time error 91 if(!OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,OrderTakeProfit(),0,Red)) ^~~~~~~~~~~ prog.cpp:143:92: error: ‘OrderTakeProfit’ was not declared in this scope if(!OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,OrderTakeProfit(),0,Red)) ^~~~~~~~~~~~~~~ prog.cpp:143:112: error: ‘Red’ was not declared in this scope if(!OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,OrderTakeProfit(),0,Red)) pkg add error ^~~ prog.cpp:143:26: error: ‘OrderModify’ was not declared in this scope if(!OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,OrderTakeProfit(),0,Red)) ^~~~~~~~~~~ prog.cpp:144:52: error: ‘GetLastError’ was not declared in this scope Print("OrderModify error ",GetLastError()); ^~~~~~~~~~~~ prog.cpp:144:25: error: ‘Print’ was not declared in this scope Print("OrderModify error ",GetLastError()); ^~~~~ prog.cpp:144:25: note: suggested alternative: ‘int’ Print("OrderModify error ",GetLastError()); orderclose error 138 orderclose error 138 ^~~~~ int


//+------------------------------------------------------------------+
int init()
{
//----
//---- codes returned from trade server
// OrderSend error 130: invalid stops
OrderSend( Symbol(), OP_BUY, 0.1, Ask, 30, Ask - ( 10 * Point ), 0 );
// OrderSend error 131: invalid orderclose error 138 volume
OrderSend( Symbol(), OP_BUY, 0.001, Ask, 30, orderclose error 138, 0, 0 );
// OrderSend error 134: not enough money
OrderSend( Symbol(), OP_BUY, 30.0, Ask, orderclose error 138, 30, 0, 0 );
// OrderSend error 138: requote
OrderSend( Symbol(), orderclose error 138, OP_BUY, 0.1, Ask + ( 1000 * Point ), 30, 0, 0 );
//---- mql4 errors
// OrderSend error 4051: invalid function parameter value
OrderSend( Symbol(), 7, 0.1, Ask, 30, 0, orderclose error 138, 0 );
// OrderSend error 4107: invalid price parameter for trade function
OrderSend( Symbol(), OP_BUY, orderclose error 138, 0.1, Ask + ( 5 * Point / 10 ), 30, 0, 0 );
//----
return(0);
orderclose error 138 Copyright 2014, BLT.

Orderclose error 138 - think

http://www.metaquotes.net/ 次へ
OrderSend, OrderModify, OrderClose error のエラーコードから原因を探る
2014/01/26 19:00

MT4でEAを開発・運用をしていると様々なエラーに遭遇することがあります。
私の経験では、オーダー系の関数(OrderSend, OrderModify, OrderClose)のエラーが多いです。

なぜなら、FX会社によって、オーダーの仕様が異なったり、開発でうっかりミスをするからです。^^
特に新規注文を発注するOrderSend関数は、仕様に影響する部分が多く、よくエラーに遭遇します。

例えば下記のようなエラーです。

画像

このようなエラーは、下記mq4をコンパイル後、バックテストすると簡単に再現できます。


OrderSend error.mq4
//+------------------------------------------------------------------+
//
//+------------------------------------------------------------------+
string ErrorDescription(int error_code)
{
string error_string;
//----
switch(error_code)
{
//---- codes returned from trade server
case 0:
case 1: error_string="no error"; break;
case 2: error_string="common error"; break;
case 3: error_string="invalid trade parameters"; break;
case 4: error_string="trade server is busy"; break;
case 5: error_string="old version of the client terminal"; break;
case 6: error_string="no connection with trade server"; break;
case 7: error_string="not enough rights"; break;
case 8: error_string="too frequent requests"; break;
case 9: error_string="malfunctional trade operation (never returned error)"; break;
case 64: error_string="account disabled"; break;
case 65: error_string="invalid account"; break;
case 128: error_string="trade timeout"; break;
case 129: error_string="invalid price"; break;
case 130: error_string="invalid stops"; break;
case 131: error_string="invalid trade volume"; break;
case 132: error_string="market is closed"; break;
case 133: error_string="trade is disabled"; break;
case 134: error_string="not enough money"; break;
case 135: error_string="price changed"; break;
case 136: error_string="off quotes"; break;
case 137: error_string="broker is busy (never returned error)"; break;
case 138: error_string="requote"; break;
case 139: error_string="order is locked"; break;
case 140: error_string="long positions only allowed"; break;
case 141: error_string="too many requests"; break;
case 145: error_string="modification denied because order too close to market"; break;
case 146: error_string="trade context is busy"; break;
case 147: error_string="expirations are denied by broker"; break;
case 148: error_string="amount of open and pending orders has reached the limit"; break;
case 149: error_string="hedging is prohibited"; break;
case 150: error_string="prohibited by FIFO rules"; break;
//---- mql4 errors
case 4000: error_string="no error (never generated code)"; break;
case 4001: error_string="wrong function pointer"; break;
case 4002: error_string="array index is out of range"; break;
case 4003: error_string="no memory for function call stack"; break;
case 4004: error_string="recursive stack overflow"; break;
case 4005: error_string="not enough stack for parameter"; break;
case 4006: error_string="no memory for parameter string"; break;
case 4007: error_string="no memory for temp string"; break;
case 4008: error_string="not initialized string"; break;
case 4009: error_string="not initialized string in array"; break;
case 4010: error_string="no memory for array\' string"; break;
case 4011: error_string="too long string"; break;
case 4012: error_string="remainder from zero divide"; break;
case 4013: error_string="zero divide"; break;
case 4014: error_string="unknown command"; break;
case 4015: error_string="wrong jump (never generated error)"; break;
case 4016: error_string="not initialized array"; break;
case 4017: error_string="dll calls are not allowed"; break;
case 4018: error_string="cannot load library"; break;
case 4019: error_string="cannot call function"; break;
case 4020: error_string="expert function calls are not allowed"; break;
case 4021: error_string="not enough memory for temp string returned from function"; break;
case 4022: error_string="system is busy (never generated error)"; break;
case 4050: error_string="invalid function parameters count"; break;
case 4051: error_string="invalid function parameter value"; break;
case 4052: error_string="string function internal error"; break;
case 4053: error_string="some array error"; break;
case 4054: error_string="incorrect series array using"; break;
case 4055: error_string="custom indicator error"; break;
case 4056: error_string="arrays are incompatible"; break;
case 4057: error_string="global variables processing error"; break;
case 4058: error_string="global variable not found"; break;
case 4059: error_string="function is not allowed in testing mode"; break;
case 4060: error_string="function is not confirmed"; break;
case 4061: error_string="send mail error"; break;
case 4062: error_string="string parameter expected"; break;
case 4063: error_string="integer parameter expected"; break;
case 4064: error_string="double parameter expected"; break;
case 4065: error_string="array as parameter expected"; break;
case 4066: error_string="requested history data in update state"; break;
case 4099: error_string="end of file"; break;
case 4100: error_string="some file error"; break;
case 4101: error_string="wrong file name"; break;
case 4102: error_string="too many opened files"; break;
case 4103: error_string="cannot open file"; break;
case 4104: error_string="incompatible access to a file"; break;
case 4105: error_string="no order selected"; break;
case 4106: error_string="unknown symbol"; break;
case 4107: error_string="invalid price parameter for trade function"; break;
case 4108: error_string="invalid ticket"; break;
case 4109: error_string="trade is not allowed in the expert properties"; break;
case 4110: error_string="longs are not allowed in the expert properties"; break;
case 4111: error_string="shorts are not allowed in the expert properties"; break;
case 4200: error_string="object is already exist"; break;
case 4201: error_string="unknown object property"; break;
case 4202: error_string="object is not exist"; break;
case 4203: error_string="unknown object type"; break;
case 4204: error_string="no object name"; break;
case 4205: error_string="object coordinates error"; break;
case 4206: error_string="no specified subwindow"; break;
default: error_string="unknown error";
}
//----
return(error_string);
}
エラー内容は全て英語ですが、簡単な内容ですので理解できるかと思います。^^
ErrorDescription関数の使い方や、冒頭にあるような主なエラーの解決方法については、また次回ご紹介します。

http://blog-imgs-57.fc2.com/m/t/4/mt4ordersenderror/OrderSend_error.png

カテゴリ:MQL4 .mq4


前へ
//+------------------------------------------------------------------+
int init()
{
//----
//---- codes returned from trade server
// OrderSend error 130: invalid stops
OrderSend( Symbol(), OP_BUY, 0.1, Ask, 30, Ask - ( 10 * Point ), 0 );
// OrderSend error 131: invalid trade volume
OrderSend( Symbol(), OP_BUY, 0.001, Ask, 30, 0, 0 );
// OrderSend error 134: not enough money
OrderSend( Symbol(), OP_BUY, 30.0, Ask, 30, 0, 0 );
// OrderSend error 138: requote
OrderSend( Symbol(), OP_BUY, 0.1, Ask + ( 1000 * Point ), 30, 0, 0 );
//---- mql4 errors
// OrderSend error 4051: invalid function parameter value
OrderSend( Symbol(), 7, 0.1, Ask, 30, 0, 0 );
// OrderSend error 4107: invalid price parameter for trade function
OrderSend( Symbol(), OP_BUY, 0.1, Ask + ( 5 * Point / 10 ), 30, 0, 0 );
//----
return(0);
}
//+------------------------------------------------------------------+
// expert deinitialization function orderclose error 138

0 Comments

Leave a Comment