Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 1127
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
А теперь читаем нормальную документацию от МТ5 теперь некоторые старые функции работают именно как написано в ней, так как документация от мт4 устаревшая и там много еще не исправлено.
GetLastError
Возвращает содержимое системной переменной_LastError.
int GetLastError();
Возвращаемое значение
Возвращает значение последнейошибки, произошедшей во время исполнения mql5-программы.
Примечание
После вызова функции содержимое переменной _LastError не обнуляется. Чтобы обнулить эту переменную, необходимо вызвать функциюResetLastError()
Смотри также
Коды возврата торгового сервера
Ну Я с 1997 года)
Смотрите, есть тик и с ним сигнал, и если получили ошибку, то её нужно обработать. Обработали и снова запрос, но перед запросом можно обнулить переменную с ошибкой, тогда при следующем запросе если есть ошибка, то она снова попадёт в переменную, но если ошибки нет - будет "0"
Можно переменную не обнулять, тогда в неё попадёт новое значение. В любом случае вас не должна интересовать ошибка которая была в прошлый раз на прошлом тике, вы должны обработать только то, что есть "сейчас"
Ну так опять же, это на mql5. А мне надо на mql4
Продублирую свой вопрос в этой ветке, так-как в ветке по mql5 помочь не смогли - ответ никто не знает.
Имеется вот такая функция и работает в советнике/скрипте
{
double One_Lot=0.0;
double price=0.0;
double volume=0.0;
double MinLot=SymbolInfoDouble(symbol,SYMBOL_VOLUME_MIN);
double Free=AccountInfoDouble(ACCOUNT_FREEMARGIN);
double Step=SymbolInfoDouble(symbol,SYMBOL_VOLUME_STEP);
if(action==ORDER_TYPE_BUY)price=SymbolInfoDouble(symbol,SYMBOL_ASK);
if(action==ORDER_TYPE_SELL)price=SymbolInfoDouble(symbol,SYMBOL_BID);
if(!OrderCalcMargin(action,symbol,1.0,price,One_Lot))return(MinLot);
if(One_Lot!=0 && Step!=0)volume = MathFloor(Free*Percent/100.0/One_Lot/Step)*Step;
if(volume!=0)return(volume);
return(MinLot);
}
Вопрос: как получить максимально возможный лот в индикаторе, OrderCalcMargin почему-то не работает в индикаторе? В мт4 прекрасно работает "MarketInfo(symbol,MODE_MARGINREQUIRED)", но в мт5 её нет, зато есть есть какой-то огрызок OrderCalcMargin который не работает в индикаторе, и разработчик ничего не делает по этому поводу.
Спасибо!
как сделать?
чтобы при
OnDeinit(REASON_CHARTCHANGE)
продолжить работу как обычно, не сбрасывая настройки (полностью игнорировать данную причину, это инфопанель с уровнями)
как сделать?
чтобы при
OnDeinit(REASON_CHARTCHANGE)
продолжить работу как обычно, не сбрасывая настройки (полностью игнорировать данную причину, это инфопанель с уровнями)
Никак.
не, ну есть же способы как то это обойти
забивать уровни в код для каждого инструмента из 40 существующих это как минимум мне лень.
проще сделать автоматом и клацать ТФ с символами как угодно.
и параллельно ищу способ указать значения мувинга старших ТФ на младшемне, ну есть же способы как то это обойти
забивать уровни в код для каждого инструмента из 40 существующих это как минимум мне лень.
проще сделать автоматом и клацать ТФ с символами как угодно.
и параллельно ищу способ указать значения мувинга старших ТФ на младшемНастройки записать в файл, а в ините - считывать. Деинит обойти никак не получится, он разрешения не спрашивает.
а почему бы не обойти деинит через запись в файл если такое вообще возможно? например в случае деинициализаи инициировать запуск с предыдущими параметрами