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

 
Anton Ohmat:


ENUM_POSITION_TYPE pos_type = PositionGetInteger (POSITION_TYPE);

Swears implict enum conversation, what did I do wrong? (I understand the essence of the error, can it be performed somehow differently?)

ENUM_POSITION_TYPE pos_type = (ENUM_POSITION_TYPE)PositionGetInteger (POSITION_TYPE);
 
Alain Verleyen:
Спасибо!!!
 

Зачем терминал показывает разную цену одного объекта, расположенного горизонтально?


 
Подскажите как получить минимально допустимый стоп по символу SymbolInfoDouble - не нахожу в справке, что конкретно тут запросить
 
Anton Ohmat:
Подскажите как получить минимально допустимый стоп по символу SymbolInfoDouble - не нахожу в справке, что конкретно тут запросить

Надо искать в SymbolInfoInteger. Когда получите ноль и ошибку, переходите в тему "вопросы новичков" и там будут следующие подсказки.

SYMBOL_TRADE_STOPS_LEVEL

Минимальный отступ в пунктах от текущей цены закрытия для установки Stop ордеров

int

 
Aleksey Vyazmikin:

Зачем терминал показывает разную цену одного объекта, расположенного горизонтально?


В тултипе показывается текущее положение курсора мыши, а не уровень графического объекта.

Тултип появляется не при точном позиционировании курсора на неком объекте, а при близости менее 5 пикселей

 
Slava:

В тултипе показывается текущее положение курсора мыши, а не уровень графического объекта.

Тултип появляется не при точном позиционировании курсора на неком объекте, а при близости менее 5 пикселей

Но какой в этом прок трейдеру? Куда полезней знать цену, по которой расположен объект...

 

Хочу понять правильное ли поведение 

Это основной файл его имя TEST.mq5 в нем есть дефайн file этот дефайн используется в подключаемом файле "test_file_.mqh"

//+------------------------------------------------------------------+
#define  file   __FILE__ 
#include  "test_file_.mqh"
//+------------------------------------------------------------------+
int OnInit()
  {
   Print(func());
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
void OnTick()
  {
  }
//+------------------------------------------------------------------+

Подключаемый файл просто возвращает то что содержится в дефайне

//+------------------------------------------------------------------+
//|                                                   test_file_.mqh |
//|                        Copyright 2018, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+

string func()
{
return file;
}

Я ожидал что вернется имя главного файла TEST.mq5 так как макрос объявлен в самом начале кода в главном файле.

Я ожидал что вернется имя файла в котором обьявлен дефайн.


Но возвращается значение из подключаемого файла  test_file_.mqh и значение  test_file_.mqh

Правильно ли это ?


В справке написано "Имя текущего компилируемого файла" главный фал так же является текущим.

 
Vladimir Pastushak:

Хочу понять правильное ли поведение 

Это основной файл его имя TEST.mq5 в нем есть дефайн file этот дефайн используется в подключаемом файле "test_file_.mqh"

Подключаемый файл просто возвращает то что содержится в дефайне

Я ожидал что вернется имя главного файла TEST.mq5 так как макрос объявлен в самом начале кода в главном файле.

Я ожидал что вернется имя файла в котором обьявлен дефайн.


Но возвращается значение из подключаемого файла  test_file_.mqh и значение  test_file_.mqh

Правильно ли это ?


В справке написано "Имя текущего компилируемого файла" главный фал так же является текущим.

Мне кажется такое поведение логичным, т.к. вы в дефайне вы производите замену переменной макросом __FILE__, который подставляется и вычисляется самостоятельно внутри подключаемого файла

Вот так получается норм:

//+------------------------------------------------------------------+
string main_file_name=__FILE__;
#define file main_file_name
#include  <test_file_.mqh>
//+------------------------------------------------------------------+
int OnInit()
  {
   Print(func());
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
void OnTick()
  {
  }
//+------------------------------------------------------------------+
Причина обращения: