Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Всем привет.Помогите и мне с этой переменной.При компиляции сова пишет:
'Market_Info' - function not defined АТС.mq4 1561 11
'0.1' - constant expression is not integral АТС.mq4 1563 12
'0.001' - constant expression is not integral АТС.mq4 1565 12
Вот строки кода:
switch(MarketInfo(Pairs[0],MODE_LOTSTEP))
{
case 0.1: int digit=1; break;
case 0.01: digit=2; break;
case 0.001: digit=3; break;
default: digit=3 ;
}
if (buys!=0) {Object_field("l_pips2"," Покупок: "+buys+", Лотов: "+DoubleToStr(buy_lots,digit)+", "+DoubleToStr(BuyValProfit,0)+"/"+DoubleToStr(BuyPipsProfit,0)
+" пп.", 180, 360, 10, "Consolas Bold", CLR_NONE, DeepSkyBlue);}
else ObjectDelete("l_pips2");
if (sells!=0) {Object_field("s_pips2"," Продаж: "+sells+", Лотов: "+DoubleToStr(sell_lots,digit)+", "+DoubleToStr(SellValProfit,0)+"/"+DoubleToStr(SellPipsProfit,0)
+" пп.", 180, 380, 10, "Consolas Bold", CLR_NONE, Orange);}
else ObjectDelete("s_pips2");
в документации https://docs.mql4.com/ru/basis/operators/switch
При использовании функции MarketInfo с целью определения цены пункта GOLD,
цена возвращается ошибочная! Проверил налицие данной ошибки на нескольких ДЦ.
Везде одно и тоже. В чем дело? Ошибка терминала?
Во вложении пример кода, иллюстрирующий ошибку.
Сегодня столкнулся с этой проблемой (брокер InstaForex), и был в шоке, когда мой робот открыл сделку на GOLD в 62 раза большим объёмом, чем положено. Сейчас сделка торгуется в небольшом минусе, жду, когда выйдет в плюс (если выйдет), и постараюсь поскорее закрыть её. У меня счёт рублёвый, а функция MarketInfo(Symbol(), MODE_TICKVALUE) для инструмента GOLD, похоже, всегда выдаёт результат в долларах, отсюда и такой чудовищный объём сделки. Постараюсь сегодня исправить.
К счастью, сделку удалось закрыть с плюсом (не настолько большим, как размер лота, но приятным), робота отключил до устранения проблемы. Планирую проверять валюту депозита, и если она RUR, то нужно умножить результат функции на котировку USDRUR.
Сегодня столкнулся с этой проблемой (брокер InstaForex), и был в шоке, когда мой робот открыл сделку на GOLD в 62 раза большим объёмом, чем положено. Сейчас сделка торгуется в небольшом минусе, жду, когда выйдет в плюс (если выйдет), и постараюсь поскорее закрыть её. У меня счёт рублёвый, а функция MarketInfo(Symbol(), MODE_TICKVALUE) для инструмента GOLD, похоже, всегда выдаёт результат в долларах, отсюда и такой чудовищный объём сделки. Постараюсь сегодня исправить.
Не надо сочинять ерунды.
MODE_TICKVALUE
16
Размер минимального изменения цены инструмента в валюте депозита
Я неоднократно проверял, всегда в валюте депозита.
Не надо сочинять ерунды.
MODE_TICKVALUE
16
Размер минимального изменения цены инструмента в валюте депозита
Я неоднократно проверял, всегда в валюте депозита.
Я здесь не для того, чтобы "сочинять". Ваше право, как поступить: проигнорировать факт, потому что не понимаете, как такое может быть, или попробовать разобраться. А функцию MarketInfo(Symbol(), MODE_TICKVALUE) я проверил, она действительно для GOLD даёт результат в долларах на рублёвом счёте. С другими инструментами проблемы не возникает.
Кстати, вы забыли уточнить, на каком брокере проверяли. Я думаю, это ошибка не MetaQuotes, а брокера (написал в службу поддержки, жду ответа от них).