Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Вы должны включить стандартную библиотеку.
EX:
Error=GetLastError();
Print("ERROR = ", ErrorDescription(Error));ErrorDescription(), если функция возвращает строку в стандартной библиотеке.
Надеюсь, это поможет.спасибо за помощь wolfe
это работа~ ~
И я обнаружил, что код можно найти в образце родного скрипта "trade.mq4".
когда при открытии/закрытии/изменении ордера возникает ошибка, она имеет код,
error=GetLastError();
Print("LastError = ",error)
но я хочу вывести строку error_string~~.
что это за предложение???
СПАСИБОВы должны включить стандартную библиотеку.
EX:
Error=GetLastError();
Print("ERROR = ", ErrorDescription(Error));[/PHP]
ErrorDescription() is a function that returns a string in the standard library.
[PHP]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;
//---- 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);
}
Надеюсь, это поможет.
Нужна помощь - проверка на равенство
Мне нужна помощь в кодировании.
Мне нужна проверка эквити для будущей реализации на различных ea.
Например:
Проверять пересечение ema и открывать ордер по правилу "ea cross" только если эквити не меньше чем -x$.
О, в следующий раз я не буду приводить пример.
Я не хочу делать ema cross ea.
Мне нужно увидеть, как я могу написать проверку эквити на метатрейдере.
О, в следующий раз я не буду приводить пример.
Я не хочу делать ema cross ea
Мне нужно посмотреть, как я могу написать проверку эквити на metatrader.Как насчет
Comment("My Equity = "AccountEquity()");
Кто-нибудь может ответить мне на вопрос по MQL4?
Я хотел спросить, есть ли в MQL4 способ иметь функциональность, подобную eval(), где вы можете иметь строку, содержащую код MQL4, и чтобы она оценивалась как код, а не как строка?
О, простите, я неправильно выразил свое мнение.
Я хочу закодировать (но не могу) что-то, что остановит торговлю советника (или часть торговли), если эквити будет меньше определенного значения.
Спасибо за помощь Roger09, но мне не нужно отображать эквити на графике.
Вопрос по таймфреймам
В советнике я использую iCCI с 1-часовым таймфреймом следующим образом
cci = iCCI(NULL,PERIOD_H1,CCIPeriod,PRICE_TYPICAL,1);
Если я запущу советника в 1H, я получу конкретное значение. Если я запущу советника в 15M, я ожидаю получить то же значение.
На IBFX я получаю то же значение. На Alpari - нет.
Кажется странным
Ингвар
В советнике я использую iCCI с часовым таймфреймом, например.
cci = iCCI(NULL,PERIOD_H1,CCIPeriod,PRICE_TYPICAL,1);
Если я запущу советника в 1H, я получу конкретное значение. Если я запущу советника в 15M, я ожидаю получить то же значение.
На IBFX я получаю то же значение. На Alpari - нет.
Кажется странным.
ИнгварВызывая PERIOD_H1 в вызове индикатора, вы должны получить только данные H1. Это странно.
Помогите пожалуйста. Пытаюсь получить данные по закрытым сделкам.
Я пытаюсь получить данные из закрытых сделок. Мой код работает нормально, пока я торгую только одной парой, но при нескольких парах он как-то обламывается.
for(i=OrdersHistoryTotal(); i>0; i--)
{
if(totalOrders==0 && Magic==OrderMagicNumber() &&
OrderSelect(i-1 , SELECT_BY_POS,MODE_HISTORY)==true)
{
CloseTime = OrderCloseTime();
OpenTime = OrderOpenTime();
OrderLots = OrderLots();
Ticket = OrderTicket();
}
Может ли кто-нибудь помочь мне с этим, пожалуйста? Он дает правильное значение для последней закрытой сделки, если Magic совпадает, но если последняя закрытая сделка - другая валютная пара, то он дает мне неправильные данные тикета.
Большое спасибо,
Стив