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

[Удален]  
alexl:
Вы уверены, что правильно заполняете поля торгового запроса ? Проверили у себя-не воспроизводится.
То-есть, когда Вы у себя установили для ордера ORDER_TIME_SPECIFIED по запросу у того же ордера получаете ORDER_TIME_SPECIFIED?
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Tapochun:
То-есть, когда Вы у себя установили для ордера ORDER_TIME_SPECIFIED по запросу у того же ордера получаете ORDER_TIME_SPECIFIED?
Отписали вам в сервисдеске
 


Помогите разобратся пожалуйста:

На символе GBPNZD (или если совсем точно GBPNZG@)...

... терминал говорит что SwapType "GBP" тоесть "Base",

  ... а тестовой скрипт - что "SYMBOL_SWAP_MODE_CURRENCY_MARGIN"   ? ? ?


На баг похоже.. али чего недоглядел?


Брокер AGMMarkets, демо акаунт... Скрипт прикрепил...

Спасибо!
Файлы:
[Удален]  
MetaQuotes:

Обновление платформы MetaTrader 5 build 1035: Построитель опционных стратегий и доступ к тикам

MQL5: Добавлена функция работы с тиковой историей CopyTicks. Функция позволяет получить массив тиков, накопленных терминалом за текущую рабочую сессию. Глубина получаемых тиков ограничена последними 2 000.

Лучше поздно услышать и сделать, чем никогда... Наконец, появился неоспоримый пункт преимущества MT5 перед штатными возможностями MT4 (сторонние востребованные MQL4-решения сбора тиков без пропусков давно существуют). А сколько копий было сломано...

Сейчас самые шустрые выложат свои варианты сборщиков тиков, которые, конечно, актуальны будут только для FOREX, т.к. тиковые биржевые данные обязаны быть свободно доступными законодательно.

Поэтому логично напрашивается возможность вставить собранные тики в тестер. В MT4-тестере - без проблем. MT5 - никак. Хорошо бы еще один плюсик для MT5 реализовать.

Понятно, что доступ к тикам был сделан для реал-тайм торговли. И пользователи других платформ теперь не могут смеяться "в MT даже тики не посмотреть и скальпинг через одно место". Однако, сразу чувствуется ставший еще бОльшим перекос между возможностями реал-тайм торговли и тестером.

Хорошо бы предпринять действия для уменьшения этой зияющей пропасти между ними. Т.е. снова услышать сделать.
 

Здравствуйте уважаемые форумчане. Есть одна не понятная ситуация.

Собственно дело в том, что ни как не получается заставить функцию ChartOpen(), в тестере (визуализаторе), открыть пару тройку графиков.

В обычном режиме все работает, но в тестере она постоянно возвращает не ноль как написано в справке, а одно и тоже число 16388.

Буду очень благодарен, если кто подскажет что не так. Тестовый робот прилагаю.

Файлы:
 

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

Можно конечно предложить все писать в файл, но тогда какой смысл в глобальных переменных, если они ведут себя почти как обычные? Похожее явление происходит и с объектами на чартах. Может как то можно принудительно делать автосохранение среды? 

 

кто в курсе, OnChartEvent работает в тестере?

void OnChartEvent(const int id,
                  const long &lparam,
                  const double &dparam,
                  const string &sparam)

что-то у меня не хочет

 
sanyooooook:

кто в курсе, OnChartEvent работает в тестере?

что-то у меня не хочет

В мт4 работает.
 
sanyooooook:

кто в курсе, OnChartEvent работает в тестере?

что-то у меня не хочет

В МТ5 тоже работает.
 

делаю вот так, но ни чего не печатает:

//+------------------------------------------------------------------+
//|                                             CheckObjectClick.mq4 |
//+------------------------------------------------------------------+
#property copyright ""
#property link      "https:/"
#property version   "1.00"
#property strict
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
string           InpName="Button";            // Имя кнопки
ENUM_BASE_CORNER InpCorner=CORNER_LEFT_LOWER; // Угол графика для привязки
string           InpFont="Arial";             // Шрифт
int              InpFontSize=14;              // Размер шрифта
color            InpColor=clrBlack;           // Цвет текста
color            InpBackColor=C'236,233,216'; // Цвет фона
color            InpBorderColor=clrNONE;      // Цвет границы
bool             InpState=false;              // Нажата/Отжата
bool             InpBack=false;               // Объект на заднем плане
bool             InpSelection=false;          // Выделить для перемещений
bool             InpHidden=true;              // Скрыт в списке объектов
long             InpZOrder=0;                 // Приоритет на нажатие мышью

int OnInit()
  {
//---
   ButtonCreate(0,StringConcatenate(InpName,"LIMIT"),0,20,25,55,20,InpCorner,"LIMIT",InpFont,InpFontSize,
                InpColor,clrLime,InpBorderColor,InpState,InpBack,InpSelection,InpHidden,InpZOrder);
   ButtonCreate(0,StringConcatenate(InpName,"STOP"),0,80,25,60,20,InpCorner,"STOP",InpFont,InpFontSize,
                InpColor,clrRed,InpBorderColor,InpState,InpBack,InpSelection,InpHidden,InpZOrder);
   
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   
  }
//+------------------------------------------------------------------+
void OnChartEvent(const int id,
                  const long &lparam,
                  const double &dparam,
                  const string &sparam)
  {
//---
   if(id==CHARTEVENT_OBJECT_CLICK)
   {
      string clickedChartObject=sparam;
      if(clickedChartObject=="ButtonLIMIT")
      {
        Print(1);
      }
      if(clickedChartObject=="ButtonSTOP")
      {
        Print(2);
      }
   }
   //int Click=EventChartCustom(id,CHARTEVENT_OBJECT_CLICK);
  }
  bool ButtonCreate(long              chart_ID=0,               // ID графика
                  string            name="Button",            // имя кнопки
                  int               sub_window=0,             // номер подокна
                  int               x=0,                      // координата по оси X
                  int               y=0,                      // координата по оси Y
                  int               width=50,                 // ширина кнопки
                  int               height=18,                // высота кнопки
                  ENUM_BASE_CORNER  corner=CORNER_LEFT_UPPER, // угол графика для привязки
                  string            text="Button",            // текст
                  string            font="Arial",             // шрифт
                  int               font_size=10,             // размер шрифта
                  color             clr=clrBlack,             // цвет текста
                  color             back_clr=C'236,233,216',  // цвет фона
                  color             border_clr=clrNONE,       // цвет границы
                  bool              state=false,              // нажата/отжата
                  bool              back=false,               // на заднем плане
                  bool              selection=false,          // выделить для перемещений
                  bool              hidden=true,              // скрыт в списке объектов
                  long              z_order=0)                // приоритет на нажатие мышью
  {
//--- сбросим значение ошибки
   ResetLastError();
//--- создадим кнопку
   if(ObjectFind(name)<0)
   {
     ObjectCreate(chart_ID,name,OBJ_BUTTON,sub_window,0,0);
   }
//--- установим координаты кнопки
   ObjectSetInteger(chart_ID,name,OBJPROP_XDISTANCE,x);
   ObjectSetInteger(chart_ID,name,OBJPROP_YDISTANCE,y);
//--- установим размер кнопки
   ObjectSetInteger(chart_ID,name,OBJPROP_XSIZE,width);
   ObjectSetInteger(chart_ID,name,OBJPROP_YSIZE,height);
//--- установим угол графика, относительно которого будут определяться координаты точки
   //ObjectSet(name,OBJPROP_CORNER,corner);Print(GetLastError());
   ObjectSetInteger(chart_ID,name,OBJPROP_CORNER,corner);

//--- установим текст
   ObjectSetString(chart_ID,name,OBJPROP_TEXT,text);
//--- установим шрифт текста
   ObjectSetString(chart_ID,name,OBJPROP_FONT,font);
//--- установим размер шрифта
   ObjectSetInteger(chart_ID,name,OBJPROP_FONTSIZE,font_size);
//--- установим цвет текста
   ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
//--- установим цвет фона
   ObjectSetInteger(chart_ID,name,OBJPROP_BGCOLOR,back_clr);
//--- установим цвет границы
   ObjectSetInteger(chart_ID,name,OBJPROP_BORDER_COLOR,border_clr);
//--- отобразим на переднем (false) или заднем (true) плане
   ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
//--- переведем кнопку в заданное состояние
   ObjectSetInteger(chart_ID,name,OBJPROP_STATE,state);
//--- включим (true) или отключим (false) режим перемещения кнопки мышью
   ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
   ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
//--- скроем (true) или отобразим (false) имя графического объекта в списке объектов
   ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
//--- установим приоритет на получение события нажатия мыши на графике
   ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
//--- успешное выполнение
   return(true);
  }