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

 
Valeriy Yastremskiy:

че то не понимаю, может не про то окно. Я про окно чарта, где бары. Эти двигаются. Есть еще окна диалогов при загрузке советников индикаторов, окна алертов, месседжа, но они все двигаются. Про какое окно речь? Библа диалога не причем. у меня тоже без библиотек в 4ке 

Вот окно сова


Его и хочу двигать по графику когда надо.

 
MakarFX:

Вот окно сова


Его и хочу двигать по графику когда надо.

Это не окно, панель. Двигать можно, не подскажу даже с кодом. Код нужен, и перерисовывать в общем. Найти где рисуется панель и задаются координаты, далее по событиям мышкой, прицепили (нажали) двинули, стерли нарисовали новую. Как то так. Но не рисователь я совсем.

 
Valeriy Yastremskiy:

При удалении в советнике чистить коммент не надо, а в индикаторе надо. Так задумано?

Адекватный программист как минимум напишет

void OnDeinit(const int reason)
{
     Comment( "" );
}
Если были использованы комментарии, то он их почистит после себя. А многие начинающие на это не обращают внимание. Вот и весь секрет.
 
Здравствуйте.
Не подскажите ли (формулу) как рассчитать цену для определенного уровня (с учетом открытых позиций)? Чтоб рассчитать на какой цене будет маржин кол и стоп аут. 
 
Konstantin Nikitin:

Адекватный программист как минимум напишет

Если были использованы комментарии, то он их почистит после себя. А многие начинающие на это не обращают внимание. Вот и весь секрет.

Так и написал, и написал об этом выше.) Вопрос был зачем разное поведение в советниках и индикаторах. Есть  ли скрытый смысл или исторически сложилось от разные команд писателей)

 
Konstantin Nikitin:

Адекватный программист как минимум напишет

Если были использованы комментарии, то он их почистит после себя. А многие начинающие на это не обращают внимание. Вот и весь секрет.
Вообще-то нет явных общих требований по этому поводу.
 
Andrey Sokolov:
Вообще-то нет явных общих требований по этому поводу.

Я разве говорил о требования? Я лишь сказал, что кто-то учитывает данный момент, а кто-то нет.

 
Konstantin Nikitin:

Я разве говорил о требования? Я лишь сказал, что кто-то учитывает данный момент, а кто-то нет.

не так

 

в библиотеке  EASY AND FAST https://www.mql5.com/ru/articles/3527 реализована возможность запускать окно программы в подокне индикатора путем загрузки файла "SubWindow.mq5", в mql5 все работает, в mql4 тоже содержание все компилируется без ошибок но подокно не открывается, что можно сделать?


//+------------------------------------------------------------------+
//|                                                    SubWindow.mq5 |
//|                        Copyright 2016, MetaQuotes Software Corp. |
//|                                              http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "2016, MetaQuotes Software Corp."
#property link      "http://www.mql5.com"
#property indicator_separate_window
#property indicator_plots   0
#property indicator_buffers 0
#property indicator_minimum 0.0
#property indicator_maximum 0.0
//--- Имя программы
#define PROGRAM_NAME ::MQLInfoString(MQL_PROGRAM_NAME)
//--- Идентификатор события для изменения высоты подокна эксперта
#define ON_SUBWINDOW_CHANGE_HEIGHT (38)
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit(void)
  {
//--- Короткое имя индикатора
   ::IndicatorSetString(INDICATOR_SHORTNAME,PROGRAM_NAME);
//--- Инициализация прошла успешно
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Деинициализация                                                  |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int    rates_total,
                const int    prev_calculated,
                const int    begin,
                const double &price[])
  {
//--- Если инициализация прошла успешно
   if(prev_calculated<1)
      //--- Отправим сообщение эксперту, чтобы получить от него размер для подокна
      ::EventChartCustom(0,ON_SUBWINDOW_CHANGE_HEIGHT,0,0.0,PROGRAM_NAME);
//---
   return(rates_total);
  }
//+------------------------------------------------------------------+
//| ChartEvent function                                              |
//+------------------------------------------------------------------+
void OnChartEvent(const int    id,
                  const long   &lparam,
                  const double &dparam,
                  const string &sparam)
  {
//--- Обработка события изменения высоты подокна эксперта
   if(id==CHARTEVENT_CUSTOM+ON_SUBWINDOW_CHANGE_HEIGHT)
     {
      //--- Принимать сообщения только от имени эксперта
      if(sparam==PROGRAM_NAME)
         return;
      //--- Изменить высоту подокна
      ::IndicatorSetInteger(INDICATOR_HEIGHT,(int)lparam);
      //--- Обновить график
      ::ChartRedraw();
     }
  }
//+------------------------------------------------------------------+
 

Всем привет!

Пытаюсь прикрутить к (любому)индикатору проверку на счет!

bool VerifityToSchet()
  {
   if(AccountNumber() != account)
     {
      Print("На данном счете индикатор работать не будет, вы его приобрели незаконным путем!!!");   
     }else
     {
     Print("На данном счете индикатор авторизован");
     }
   return(false);
  } 

естественно включаю его в init() и в start(), но при перезапуске терминала, он ругается на то что счет недействителен!

Что не так делаю?

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