Ошибки, баги, вопросы - страница 1330

 

Почему при компиляции индикатора, все настройки в этом индикаторе, которые стоят на графиках сбрасываются по умолчанию?

 
iZer0:

Добрый день! Сориентируйте нуба пожалуйста. Используется MT5 не для торговли, а как источник неких "случайных" данных (и не спрашивайте даже зачем - не моя прихоть). Возможно ли получить исторические данные измеряемые в тиках (нужны данные изменения bid и ask несколько раз в секунду). Куда копать ? Я знаю что при тестировании индикатора MT5 выкачивает данные - как это использовать ?

Стоит задача написать кастомный индикатор который текущие тики передает определенному сервису (это не проблема). Нигде не нашел как получить исторические данные в тиках а не в M1. 

В тестере можно получить внутрибарные М1 тики Вid. Они моделируются терминалом. Насколько случайно? Не знаю. Говорю про МТ4. На МТ5 должно быть тоже.
OnTick()
{Print("Bid=",Bid);}

Во вкладке "Журнал" тестера стратегий смотрите значение цены и время прихода.

Файлы:
2107.PNG  7 kb
 

MT4/845, Windows 7/64bit. Сделал скрипт:

#property strict
double value=1/2;
//---
void OnStart()
  {
   Print("value = ",DoubleToString(value));
  }

В логах печатает:

2015.07.22 10:13:26.134    Test EURUSD,H1: value = 0.00000000

а ведь должно быть 0.50000000.

 
Надо писать 1.0/2 или 1/2.0 или 1.0/2.0 тогда будет то что ожидается.
 
Аноним:
Надо писать 1.0/2 или 1/2.0 или 1.0/2.0 тогда будет то что ожидается.
Да, ваш совет помог. Хотя казалось бы что и без .0 должно было бы работать.
 

Почему метаквоты отключили функцию закачки котировок с сервера дилера? Теперь закачать можно только с метаквотов.

Но и это не удается сделать, т.к. выдает сообщение, что котировки отсутствуют.

Конечно отсутствуют, ведь откуда у метаквот котировки с суффиксами?

Например суффиксы в названии валютных пар используют фортфс, робофорекс, екснесс и т.д.

 
Maxim Khrolenko:
Да, ваш совет помог. Хотя казалось бы что и без .0 должно было бы работать.
Неявное преобразование double в int.
 

Разный результат: так сомнительный результат

#import "Test.ex5"
        void f( uint, uint );
#import
        void f( uint, int  )   { Print( __FUNCSIG__ ); }
void OnStart()
{
        uint a = 0;
        f( 1, a ); //вызывается f(uint,int) - что само по себе сомнительно
}
а так - нормальный
        void f( uint, uint )    { Print( __FUNCSIG__ ); }
        void f( uint, int  )    { Print( __FUNCSIG__ ); }
void OnStart()
{
        uint a = 0;
        f( 1, a ); //вызывается f(uint,uint) - нормально
  
}
а какая разница?
 
A100:
а так - нормальныйа какая разница?
По хорошему если я правильно понимаю компилятор вообще должен ругнуться и не скомпилить. Т.к. там uint uint, там uint int, а в функцию передаются int, uint, неопределенность однако.
 
Аноним:
По хорошему если я правильно понимаю компилятор вообще должен ругнуться и не скомпилить. Т.к. там uint uint, там uint int, а в функцию передаются int, uint, неопределенность однако.

https://www.mql5.com/ru/docs/basis/function/functionoverload

Цитата: "Найденная функция должна быть наилучшим выбором среди остальных вариантов хотя бы по одному аргументу, и, в то же время, по остальным аргументам она должна подходить не хуже остальных."

Так какой здесь наилучший выбор для вызова f(int,uint)?

Подсказка: остальной аргумент в данном случае - первый 

Документация по MQL5: Основы языка / Функции / Перегрузка функций
Документация по MQL5: Основы языка / Функции / Перегрузка функций
  • www.mql5.com
Основы языка / Функции / Перегрузка функций - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
Причина обращения: