Обновление платформы MetaTrader 4 билд 625: Журналы в MetaTrader Market и новый MetaViewer - страница 26

 
Omm:

кнопка "AutoTrading" вообще ни на что не влият. OrderSend отправляет в любом случае.

Куда отправляет?
 

подскажите если мы структуру обьявим за пределами ОнТик

Она будет иметь статические данные ?

И если мы объявим структуру внутри ОнТик, что будет происходить с данными и самое главное как будет потребляться ресурсы ???

Какой из вариантов наиболее правильный ?

//+------------------------------------------------------------------+
void OnTick()
  {
   struct test
     {
      double            rez;
     };
   test tets;
  }
//+------------------------------------------------------------------+

или

//+------------------------------------------------------------------+
struct test
  {
   double            rez;
  };
test tets;
//+------------------------------------------------------------------+
void OnTick()
  {
tets.rez=1;
  }
//+------------------------------------------------------------------+

или

//+------------------------------------------------------------------+
struct test
  {
   double            rez;
  };
//+------------------------------------------------------------------+
void OnTick()
  {
test tets; //будет ли в данном случае при приходе нового тика обнуляться структура ?
  }
//+------------------------------------------------------------------+
 
stringo:
Куда отправляет?

если отжать кнопку, то журнал забит ошибкой 4109.

как сделать, чтобы советник не пытался исполнить ordersend при отжатой кнопке?

 
Omm:

если отжать кнопку, то журнал забит ошибкой 4109.

как сделать, чтобы советник не пытался исполнить ordersend при отжатой кнопке?

Проверять в советнике состояние IsTradeAllowed().
 
Omm:

если отжать кнопку, то журнал забит ошибкой 4109.

как сделать, чтобы советник не пытался исполнить ordersend при отжатой кнопке?

Как минимум, два варианта:

1. Проверять разрешение для торговых операций перед OrderSend при помощи IsTradeAllowed()

2. После выполнения OrderSend и получения однократной ошибки 4109 перестать вовсе (или на время) совершать торговые операции.

Также раньше состояние кнопки "Автоторговля" можно было контролировать при помощи функции IsExpertEnabled(). В новых билдах не проверял, как работает эта функция.

 

ну ok. придётся опять делать очередные лишние движения.

а объясните мне, зачем это сделали, чтобы советник постоянно работал?

мне казалось идёт борьба за ресурсы, раньше я мог просто отжать кнопку и оно не работало, а теперь получается, что советник нагружает проц в любом случае.

 
antt:
Проверять в советнике состояние IsTradeAllowed().

Есть предложение для разработчиков - если получили 4109 и после этого состояние глобальной кнопки или флага "Разрешить торговлю" в настройках эксперта не менялось - не выводить больше 4109 в лог для данного эксперта.

Есть куча старых экспертов, которые доступны только в ex4 и там IsTradeAllowed не пропишешь, а лог будет забит ошибкой 4109 и это некрасиво.

 

Уважаемые разработчики!

Обнаружилась неоднозначность работы эксперта в следующей ситуации.

В функции OnInit() эксперта есть блок определения № окна индикатора:

short_name=Short_Name(hist_name, parStoch);//короткое имя индикатора гистограммы

n_Wind=GetIndicatorSubWindowNumber(0,short_name);//функция описана в справке по MQL4

n_Wind=WindowFind(short_name);//№ окна индикатора гистограммы

Print(short_name," n_Wind=",n_Wind);

После перекомпиляции присоединенного к графику эксперта эксперта получаем:

2014.04.02 14:26:32.212 FolowMarket.multySource XAUUSD,H1: Hist-multyPrice(200,50,3,0,CLOSE, HIGH-LOW) n_Wind=-1
2014.04.02 14:26:32.212 FolowMarket.multySource XAUUSD,H1: GetIndicatorSubWindowNumber(): Error = 0

Как видно (n_Wind=-1) окно не найдено, но Error = 0 - ошибки нет.

Теперь открываем окно свойств эксперта, ничего не меняем, закрываем:

2014.04.02 14:30:08.082 FolowMarket.multySource EURAUD,H1: Hist-multyPrice(200,50,3,0,CLOSE, HIGH-LOW) n_Wind=1
Окно нашлось!

 
Обращаюсь к тем, от кого это зависит...с появлением обновления, перестали работать многие советники и индикаторы. После компиляции, работающий ранее индикатор становиться нерабочим. Очень печальный факт. Многие могут просто уйти с Форекса по этой причине.
 
как отключить терминал от обновления?