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

 
avralkosmos #:
Всем привет! Подскажите. МТ5 в балансе постоянно какие то расчеты ведет непонятные. То прибавляет, то убавляет. Баланс постоянно меняется. Вследствии этого риск менеджер просто работает ***. Брокер открывашка. Секция срочный рынок. По темам нет времени лазить. Скинте ссылку если есть такой вопрос уже. Спасибо!

Это известная проблема. МТ5 не умеет нормально работать с ФОРТС, MQ считает это нормальным.

Так что только терпеть или не пользоваться.

Кстати, отсюда же практическая невозможность использования Сигналов на ФОРТС.

 
JRandomTrader #:

Это известная проблема. МТ5 не умеет нормально работать с ФОРТС, MQ считает это нормальным.

Так что только терпеть или не пользоваться.

Кстати, отсюда же практическая невозможность использования Сигналов на ФОРТС.

Я вышел из этой проблемы создав свою структуру цены и анализ еквити на инструмент. И теперь не обращаю внимание на эту проблему. Плюс появилась возможность контролировать брокера. 

 
Спасибо! НУ, брокер, вроде не косячит. Еше раз, спасибо!
 
Andrey Sokolov #:

Тут опечатка 


Спасибо, поправили

 
x572intraday #:

 Насколько я понимаю, все L0X в enum LIST {} независимы. Однако стоит некоторым элементам перечисления назначить одно и то же значение (666), как комментарий по умолчанию перестаёт отображаться корректно, подхватывая почему-то комментарий (и, видимо, значение, хотя трудно это утверждать, так как они одинаковые и понять невозможно) от первого элемента с тем же значением (см. последние три строки в enum LIST {}).

 Хуже того, при попытке изменить в Настройках программы дефолтовое отображение 7-ой строки с "ITEM 6" на "ITEM 7" и 8-ой на "ITEM 8", которые изначально заложены в комментариях к коду, они настойчиво сбиваются обратно на "ITEM 6":

Перечисление (по другому именованная константа) во внутреннем представлении всего лишь int число

Имя подбирается по значению, и первым подходящим именем для 666 является LO6

Исправлять данное поведение не планируем.

 
Ilyas #:

Перечисление (по другому именованная константа) во внутреннем представлении всего лишь int число

Имя подбирается по значению, и первым подходящим именем для 666 является LO6

Исправлять данное поведение не планируем.

Можно уточнить? Имя подбирается методом поиска в массиве значений? Что первое встретилось, то и будет?

 
Всем доброго времени суток! Когда в эксперте используется несколько таймфреймов, то при тестировании в визуальном режиме мы тоже видим несколько графиков. Можно ли как-нибудь сделать то же самое, но не с разными таймфреймами одного символа, а с разными символами? Мой эксперт запускается на графике пользовательского символа, но при этом мне хотелось бы посматривать, что в этот момент происходит на других символах (из которых состоит пользовательский).
 
SuhanovDM94 #:
Всем доброго времени суток! Когда в эксперте используется несколько таймфреймов, то при тестировании в визуальном режиме мы тоже видим несколько графиков. Можно ли как-нибудь сделать то же самое, но не с разными таймфреймами одного символа, а с разными символами? Мой эксперт запускается на графике пользовательского символа, но при этом мне хотелось бы посматривать, что в этот момент происходит на других символах (из которых состоит пользовательский).

В OnInit() запросите время бара или какую цену и будет вам открыт график символа.

 
Alexey Viktorov #:

В OnInit() запросите время бара или какую цену и будет вам открыт график символа.

Вот это класс! Заработало, спасибо большое)

 
Добрый день! Нужна ли в коде строка PositionSelectByTicket... Если нужна, то как корректнее записать внутри нее тикет, через PositionGetTicket(i) или оставить PositionGetInteger(POSITION_TICKET) ? Заранее благодарю!
#define EXPERT_MAGIC 261                // MagicNumber эксперта
input string    Symbol_T  = "XAUUSD";   // глобальная переменная для задаваемого символа

......

void OnTick()
{
   ......

   //Проверка наличия открытой позиции, чтобы не пытаться открыть ее заново
   bool   BuyOpened   = false;  
   bool   SellOpened  = false;
   for(int i = PositionsTotal()-1; i >= 0; i--)
   {
      if(PositionGetTicket(i) > 0 && PositionGetString(POSITION_SYMBOL) == Symbol_T && PositionGetInteger(POSITION_MAGIC) == EXPERT_MAGIC)
      {      
         if(PositionSelectByTicket(PositionGetInteger(POSITION_TICKET)) == true) 
         {
            if((ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_BUY)
            {
               BuyOpened = true;
            }     
            else if((ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_SELL)
            {
               SellOpened = true;
            }
         }
      }
   }

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