Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Продавай продукты прямо в MetaTrader. Миллионы трейдеров ждут этого!
Олег Кобенко
30
Олег Кобенко 2015.12.22 17:27 

Первый вопрос который хотелось бы спросить это:

1. Как нарисовать вертикальную линую с заданным периодом(скажем каждые два часа 1 вертикальную линию) определенного цвета..

 подскажите плиз..я только начал кодить в MQL .. в стандартном учебнике я этого не нашел а в гугле есть но почти не то что надо ..вот собственно что нашел:

string Name = "OptArea";
if (ObjectFind(Name)==-1) ObjectCreate(Name, OBJ_VLINE, WindowOnDropped(), Time[10], 0);
ObjectSet(Name, OBJPROP_TIME1, Time[10] );
ObjectSet(Name, OBJPROP_COLOR, Orange );

 непонятно как указать время(в каком формате) и зачем нужна строчка с номером 3

Alexey Viktorov
5197
Alexey Viktorov 2015.12.22 17:33  
ixtorio:

Первый вопрос который хотелось бы спросить это:

1. Как нарисовать вертикальную линую с заданным периодом(скажем каждые два часа 1 вертикальную линию) определенного цвета..

 подскажите плиз..я только начал кодить в MQL .. в стандартном учебнике я этого не нашел а в гугле есть но почти не то что надо ..вот собственно что нашел:

 непонятно как указать время(в каком формате) и зачем нужна строчка с номером 3

Этот кусок кода создаёт вертикальную линию на десятом баре только в том случае, если её нет.

А потом на каждом тике пытается её переставить на тот-же десятый бар. И только при появлении нового бара перестановка линии будет выполнена удачно.

А документацию читал?

Олег Кобенко
30
Олег Кобенко 2015.12.22 19:34  

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

datatime dt1=TimeCurrent();

получаю что то вроде 10/10/10 10:10:10 как теперь прибавить к этому скажем два часа?

и еще вот так делаю

int OnInit()
  {
//--- ПЕРЕМЕННЫЕ ---------------------------------------
      datetime time=TimeCurrent();
      string Opn = "Открыть";
      string Cls = "Закрыть";
//--- ИНДИКАТОРНЫЕ ФУНКЦИИ -----------------------------
      ObjectCreate(Symbol(), Opn, OBJ_VLINE, 0, time, 0);
      ObjectSet(Opn, OBJPROP_COLOR, Pink);
      ObjectSet(Opn, OBJPROP_WIDTH, 2);
//--- --------------------------------------------------
      return(INIT_SUCCEEDED);
  }

 и почему то линия появляется красного цвета а не розового=(

помогите плиз... 

Олег Кобенко
30
Олег Кобенко 2015.12.22 20:56  

попробовал вот так 

 

      ObjectCreate(Opn,OBJ_VLINE, WindowOnDropped(), time, 0);
      ObjectSet(Opn, OBJPROP_COLOR, Pink);
      ObjectSet(Opn, OBJPROP_STYLE, STYLE_SOLID);

 не помогло ...

Алексей Тарабанов
7220
Алексей Тарабанов 2015.12.22 21:07  
ixtorio:

попробовал вот так 

 

 не помогло ...

И не поможет. Инициализация не подразумевает Ваших действий. 
Alexey Viktorov
5197
Alexey Viktorov 2015.12.22 21:16  
ixtorio:

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

получаю что то вроде 10/10/10 10:10:10 как теперь прибавить к этому скажем два часа?

и еще вот так делаю

 и почему то линия появляется красного цвета а не розового=(

помогите плиз... 

В той-же документации написано что время представлено в виде секунд прошедших с 01.01.1970, следовательно к полученному количеству секунд можно прибавить сколько душе заблагорассудится, или вычесть столько-же тех-же самых секунд.
Евгений
367
Евгений 2015.12.23 03:24  

  

     

Справочник MQL4 Стандартные константы, перечисления и структуры Константы объектов Типы объектов OBJ_VLINE


Вертикальная линия.

ObjVLine

Пример

Следующий скрипт создает и перемещает на графике вертикальную линию. Для создания и изменения свойств графического объекта написаны специальные функции, которые вы можете использовать "как есть" в своих собственных программах.  Здесь.

Олег Кобенко
30
Олег Кобенко 2015.12.23 09:08  

еще непонято как избавиться от старого индикатора в мета трейдере.. удалил его из папки а он до сих пор светится в списке в программе в менюшке где все индикаторы

помогите плиз а то кажется мне все мои грабли только в этом и были. 

просто я как бы компилирую новый , вставляю его в папку а он в терминале не обновляется... 

или подскажите как правильно его засунуть а потом удалить... в гугле сказано что нужно кинуть в папку с терминалом в

\experts\indicators ... он установился а как его снести незнаю

Евгений
367
Евгений 2015.12.23 11:14  

 1. Тема ветки -- "Учусь кодить под MetaTrader 4".

 Остальные вопросы,к данной теме не относящиеся, отправляешь в другие тематические ветки, или в ветку "Любой вопрос новичка, чтоб не захламлять форум." или  создаешь новую ветку, например, "Как избавиться от старого индикатора в мета трейдере.."

 2.Тема состоит из вопросов, относящихся к данной теме, желательно, в порядке по мере поступления. Вопросы должны решаться оперативно, поэтому подготавливаются заранее.(формулировка вопроса и план его решения).
Очень эффектно смотрятся уже решённые вопросы, упорядоченные по подразделам темы. Документация MQL4  и Учебник MQL4 -- яркие и близкие тому примеры

 3. Итак, вопрос первый (1 пост ветки) :
 -- 1. Как нарисовать вертикальную линию с заданным периодом(скажем каждые два часа 1 вертикальную линию) определенного цвета..(формулировка вопроса)
 План решения:
 - а) собираем максимум полезной информации по данному вопросу.
     Логичнее сразу обратиться к Документации MQL4  и Учебнику MQL4 .
 -б) Решаем, пишем код  "на бумаге" в редакторе Едиторе, т.е. подготавливаем наш программный код ,одновременно создавая скрипт
 - в) Компилируем,получая машинный код, и проверяем код скрипта до исчезновения ошибок
 - г) Проверяем, тестируем скрипт в Терминале на логические ошибки.
 - д) Подготавливаем код к публикации в соответств. ветке
 - е) И снова здравствуйте -- публикация кода с комментариями , обсуждение.


/
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий