Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 1388

 
Artyom Trishkin:

Попробуйте.

Пробую. Первое впечатление что 3 или 4 инструмента подгружает, а нужно 10
Истории подгружены у всех.
 
Valeriy Yastremskiy:
Пробую. Первое впечатление что 3 или 4 инструмента подгружает, а нужно 10
Истории подгружены у всех.

Тогда не знаю - очень давно четвёрку не открывал

 

Открыл мт4 чтобы по-быстрому проверить алгоритм.

Очень странно, что в тестере работает правильно, а после установки на реал - реверс сделок. Код простейший, всего 2 индикаторных буфера


 
MakarFX:
Большое спасибо за помощь. Переделал это участок кода- и с включенным ценовым фильтром отложки стали устанавливаются без ошибок. Пропускаются только те сигналы когда отложка ещё висела. Как и было задумано. Ещё раз большое спасибо))) У меня только вопрос- бывают места когда сигнал был, а отложка не выставилась, и при этом никаких ошибок нет. Значит в этом месте просто не было подходящих условий и это нормально- можно жить спокойно?))) и висящих отложак в этом месте тоже не было...
 
DanilaMactep:
Большое спасибо за помощь. Переделал это участок кода- и с включенным ценовым фильтром отложки стали устанавливаются без ошибок. Пропускаются только те сигналы когда отложка ещё висела. Как и было задумано. Ещё раз большое спасибо))) У меня только вопрос- бывают места когда сигнал был, а отложка не выставилась, и при этом никаких ошибок нет. Значит в этом месте просто не было подходящих условий и это нормально- можно жить спокойно?))) и висящих отложак в этом месте тоже не было...
Если не было подходящих условий и это нормально - можно жить спокойно
 
Artyom Trishkin:

Тогда не знаю - очень давно четвёрку не открывал

Ошибся, данные с других инструментов тестер берет текущие. Как раз отсюда (с других инструментов) можно посчитать разницу от текущего времени. Если близко от текущего, и истории подгружены можно сделать сдвиг до времени тестера. Костыль еще тот.)

 

Вопрос: создаётся панель с размером 370, как изменить размер на 200 при сжатии графика ?

#property strict

#property indicator_chart_window
#property indicator_buffers 0
#property indicator_plots   0

#include "PanelDialog.mqh"
//+------------------------------------------------------------------+
//| Global Variables                                                 |
//+------------------------------------------------------------------+
CPanelDialog ExtDialog;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit(void)
  {
//--- create application dialog
   if(!ExtDialog.Create(0,"Spread",0,12,12,250,370))
     return(INIT_FAILED);
//--- run application
   if(!ExtDialog.Run())
     return(INIT_FAILED);
//--- ok
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//--- destroy application dialog
   ExtDialog.Destroy(reason);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const int begin,
                const double &price[])
  {
//---
 
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+
//| ChartEvent function                                              |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,
                  const long &lparam,
                  const double &dparam,
                  const string &sparam)
  {
   ExtDialog.ChartEvent(id,lparam,dparam,sparam);
  }
//+------------------------------------------------------------------+
 
Vitaly Muzichenko:

Вопрос: создаётся панель с размером 370, как изменить размер на 200 при сжатии графика ?

А как определить сжатие графика?
 
MakarFX:
А как определить сжатие графика?
   if(id==CHARTEVENT_CHART_CHANGE) {
      // ChartGetInteger(0,CHART_HEIGHT_IN_PIXELS); // Высота графика
   }
 
Vitaly Muzichenko:

Если сжатие по высоте

   int ChartHigh=(ChartGetDouble(0,CHART_PRICE_MAX,0)-ChartGetDouble(0,CHART_PRICE_MIN,0))/Point; //высота графика в пунктах
   if(ChartHigh>500)  
      ExtDialog.Create(0,"Spread",0,12,12,250,200)
   else
      ExtDialog.Create(0,"Spread",0,12,12,250,370)

если сжатие по ширине

   if(ChartGetInteger(0,CHART_SCALE,0)>2) 
      ExtDialog.Create(0,"Spread",0,12,12,250,200)
   else
      ExtDialog.Create(0,"Spread",0,12,12,250,370)
по ширине можно еще CHART_VISIBLE_BARS
Причина обращения: