Новая версия платформы MetaTrader 5 build 2190 - страница 9

 

При открытии терминала уже не раз замечал, что слетают наборы индикаторов в текущем профиле.

Где и как смотреть причину этого?

 
Vasiliy Pushkaryov:

При открытии терминала уже не раз замечал, что слетают наборы индикаторов в текущем профиле.

Где и как смотреть причину этого?

старинный баг платформы, всплывающий от билда к билду, и за это превращённый в фичу: при важной смене состава индикаторов надо штатно закрыть и открыть терминал :-)

то есть через меню выйти и заново запустить.

 
Maxim Kuznetsov:

старинный баг платформы, всплывающий от билда к билду, и за это превращённый в фичу: при важной смене состава индикаторов надо штатно закрыть и открыть терминал :-)

то есть через меню выйти и заново запустить.

Спасибо. В следующий раз попробую, а то уже поцеплял через шаблон.
 
fxsaber:

Возможно, ни у одного меня открыто много Терминалов и ME.

Хотелось бы в выделенных местах иконок открытых Терминалов/ME видеть хотя бы последние несколько цифр счета, к которому подключены.

Для ME - то же самое: номер счета, к которому подключен соответствующий Терминал. Если же ME открыт без своего Терминала - ничего не добавлять в иконку.


Сейчас путаница. Переключаюсь через ALT+TAB, там побольше информации, но все равно неудобно. Ну а мышкой - полный провал: нужно подводить и смотреть всплывающее сообщение. С ME же и это не помогает.

Установите прогу редактор иконок Microangelo и нарисуйте любые значки себе, я например не стал сильно заморачиваться и просто поменял цвета в стандартных значков.  P.S. прога глюченная лучше сохраняться почаще.
Файлы:
1.jpg  23 kb
 
Stanislav Korotky:

Есть старая проблема, но воспроизводится и на билде 2190. Прошу разработчиков прояснить ситуацию - баг ли это в терминале, на сервере у брокера или что-то еще.

У одного брокера функция OrderCalcMargin возвращает 0-ую маржу для символов UKBrent и USCrude (для других символов, включая форекс, cfd, фьючерсы маржа возвращается). При этом код ошибки - 0 (нет ошибки). Вызов OrderCheck позволяет нормально узнать маржу, но эта функция не всегда подходит в качестве обходного маневра из-за следующего нюанса.

OrderCalcMargin - единственная, которая позволяет узнать маржу при запрещенной автоторговле (а это бывает полезно знать при ручной торговле), т.к. OrderCheck в этом случае перестает работать - возвращает ошибку 4752. Поэтому весьма желательно, чтобы OrderCalcMargin нормально отрабатывала для всех символов, а если уж помещала 0 в выходной параметр, то и возвращала бы false и делала доступным понятный код ошибки через GetLastError. Сейчас вообще не понятно, что происходит. Ошибок в логах нет.

Было такое дело пол года назад, необходимо было чтобы робот расчитывал объем сам , помниться написано было примерно так  
if (!OrderCalcMargin(ORDER_TYPE_BUY, _Symbol, 1.0 , c_sym.Ask(), margin_buy)) { Alert("Не удалось вычислить маржу"); return; }
LotsBuy = AccountInfoDouble(ACCOUNT_MARGIN_FREE) * 0.01 * RiskPercent / NormalizeDouble(margin_buy, 2);
Попробовал, вышло что один робот предсказуемо давал zero divided и удалялся безшумно даже DeInit вроде молчал. Тот что стоял на паре содержащую NZD, уже забыл какой именно. Ну я поставил проверку если
margin_buy == 0
то return. Я сейчас не очень точно помню но по моему первый тик после выходных, первый тик после переинициализации, первый тик после нового дня (тут не точно) выдавал 0 потом нормально расчитывался. Может чем то поможет.Брокер робофорекс, так было на всех счетах, центовых, реал и демо, одинаково. Это было токо на 1-2 парах с NZD, на всех остальных не было ни разу нуля. Просто мне это быстро стало ненужным, лучше для меня оказалось вводить объем лота вручную постоянный.
 
Мне нужно сгенерировать TesterPass-событие. Делаю так
double OnTester()
{
  const int Data[]; // 'Data' - 'const' variable must be initialized
  
  return(FrameAdd(NULL, 0, 0, Data));
}


Компилятор вместо Warning выдает Error. Не слишком строго?

 
fxsaber:
Мне нужно сгенерировать TesterPass-событие. Делаю так


Компилятор вместо Warning выдает Error. Не слишком строго?

Не в качестве под....ки, а может я плохо чего-то понимаю: Что означает const перед объявлением переменной? Мне кажется что значение этой переменной не может быть изменено. В вашем случае массиву не присвоено никаких значений, да и размер массива нулевой. Что в него можно засунуть если его как-бы нету?
 
Alexey Viktorov:
Не в качестве под....ки, а может я плохо чего-то понимаю: Что означает const перед объявлением переменной? Мне кажется что значение этой переменной не может быть изменено. В вашем случае массиву не присвоено никаких значений, да и размер массива нулевой. Что в него можно засунуть если его как-бы нету?

В него - ничего. Подсунуть его - см. исходник.

 
fxsaber:

В него - ничего. Подсунуть его - см. исходник.

А какой глубокий смысл сувать его куда-то с нулевым размером, да ещё и с запретом менять сам массив? Ну на мой взгляд, так явно этого делать не следует. Соответственно и предупреждения будет слишком мало.

 
Alexey Viktorov:

А какой глубокий смысл сувать его куда-то с нулевым размером, да ещё и с запретом менять сам массив? Ну на мой взгляд, так явно этого делать не следует. Соответственно и предупреждения будет слишком мало.

Сигнатуру FrameAdd посмотрите.

Причина обращения: