Изучаем и пишем вместе на MQL5

 

Предлагаю желающим попробовать сообща изучать ПЯТЕРКУ.

К сожалению, в основной ветке, где идет бета тестинг мало что помогает освоению нового языка.

Там действительно идет тестирование на предмет багов и ветка предназначена для ПРОФИ.

Остальным 90% программистов предлагаю обсуждать более "понятные" темы.

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

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

Приходится реализовывать все через эксперт. Прикрепляю его для ознакомления и принятия  предложений (не критики:-). Описание реализованого и что будет, чуть позже.

Пока удалось реализовать в нем процентов 15 от того, что было в четверке.

Кратенько, что пытаюсь реализовать:

1) борьба с 3/5 знаком. Для тех, кто торгует по "взрослому" пятый знак, как собаке пятая нога. Лично мне он мешается. И для себя я оптимизирую вывод информации и управление позициями и ордерами как-будто их 4

2) вывод всей возможной информации по инструментам, ордерам и др. прямо на график.  Очень удобно и наглядно, особенно по F11.

3) графическое отоброжение позиции и  сделок текущего инструмента на графике, а так же инфо по всем позициям в левом нижнем углу

Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Способы привязки объектов
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Способы привязки объектов
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы объектов / Способы привязки объектов - Документация по MQL5
 

Тема закрыта, не знаю как и можно ли удалять?

 

Прошу протестировать следующий скрипт по удалению трендовых линий (код представлен в 2-х вариантах):

 

 void OnStart()
{ bool ticket;string name;int obj_total=ObjectsTotal(0,0,OBJ_TREND);
for(int i=0;i<obj_total;i++){
name = ObjectName(0,i,0,OBJ_TREND);
ticket=ObjectDelete(0,name);
if(!ticket){Alert("Delete TrendLine error #",GetLastError());return;}
}//for(int i=0;i<ObjectsTotal(0,0,OBJ_TREND);i++)
}

и другой вариант:

 

void OnStart()

{ bool ticket;string name;int obj_total=ObjectsTotal(0,0,OBJ_TREND);int i=0;
while(obj_total>0){
name = ObjectName(0,i,0,OBJ_TREND);
ticket=ObjectDelete(0,name);
if(!ticket){Alert("Delete TrendLine error #",GetLastError());return;}
  obj_total=ObjectsTotal(0,0,OBJ_TREND);i++;
}//while
}
Почему -то, например из десяти линий, он удаляет несколько и зависает. В МТ4 все работает - удаляются все и мгновенно.
 

Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов - Документация по MQL5
 

В общем-то, оба варианта неправильные.  Обход объектов в любом списке желательно организовывать с конца. Не пишу слово "всегда", потому как могут быть и случаи, когда это не так.

Пожелание: оформляйте код правильно, используйте сочетание кнопок Ctrl+,  в MetaEditor 5 для форматирования кода(одновременное нажатие кнопки Ctrl и запятой), тогда он будет лучше читаемым. Попробуйте этот вариант:

 void OnTick()
  {
//---
   void OnStart()
     {
      bool ticket;
      string name;
      int obj_total=ObjectsTotal(0,0,OBJ_TREND);
      for(int i=obj_total-1;i>=0;i--)
        {
         name=ObjectName(0,i,0,OBJ_TREND);
         ticket=ObjectDelete(0,name);
         if(!ticket)
           {
            Alert("Delete TrendLine error #",GetLastError());
            return;
           }
     }
//---
  }
MQL5.community - Памятка пользователя
MQL5.community - Памятка пользователя
  • 2010.02.23
  • MetaQuotes Software Corp.
  • www.mql5.com
Вы недавно зарегистрировались и у вас возникли вопросы: Как вставить картинку в сообщение на форуме, как красиво оформить исходный код MQL5, где находятся ваши Личные сообщения? В этой статье мы подготовили для вас несколько практических советов, которые помогут быстрее освоиться на сайте MQL5.community и позволят в полной мере воспользоваться доступными функциональными возможностями.
 
Rosh :

В общем-то, оба варианта неправильные.  Обход объектов в любом списке желательно организовывать с конца. Не пишу слово "всегда", потому как могут быть и случаи, когда это не так.

Пожелание: оформляйте код правильно, используйте сочетание кнопок Ctrl+,  в MetaEditor 5 для форматирования кода(одновременное нажатие кнопки Ctrl и запятой), тогда он будет лучше читаемым. Попробуйте этот вариант:


  Спасибо. Работает. Насчет оформления - я оформляю тоже с отступами. Конкретно в данном сообщении я вставил код как обычный текст, поэтому получилось без отступа.

MQL5.community - Памятка пользователя
MQL5.community - Памятка пользователя
  • 2010.02.23
  • MetaQuotes Software Corp.
  • www.mql5.com
Вы недавно зарегистрировались и у вас возникли вопросы: Как вставить картинку в сообщение на форуме, как красиво оформить исходный код MQL5, где находятся ваши Личные сообщения? В этой статье мы подготовили для вас несколько практических советов, которые помогут быстрее освоиться на сайте MQL5.community и позволят в полной мере воспользоваться доступными функциональными возможностями.
 

А возможно сию аказию:

//+------------------------------------------------------------------+
//|                                                                                   |

//+------------------------------------------------------------------+


заменить на:

/*------------------------------------------------------------------+
                                                                 

//+----------------------------------------------------------------*/


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

Документация по MQL5: Основы языка / Типы данных / Целые типы / Символьные константы
Документация по MQL5: Основы языка / Типы данных / Целые типы / Символьные константы
  • www.mql5.com
Основы языка / Типы данных / Целые типы / Символьные константы - Документация по MQL5
 
Boroff :

А возможно сию аказию:

//+------------------------------------------------------------------+
//|                                                                                   |

//+------------------------------------------------------------------+


заменить на:

/*------------------------------------------------------------------+
                                                                 

//+----------------------------------------------------------------*/


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


Прям в едиторе поправить шаблон под себя, например:

...\mt5\MQL5\Templates\Expert.mqt

(не помешает и сохранить копию, например под русским названием Эксперт.mqt)



ЗЫ: попутно вопрос разработчикам.

А можно ли помимо #header# добавить ещё типа #filename#
так будет проще и гибче сформировать шапку под свои нужды...

 

Прям в едиторе поправить шаблон под себя, например:

...\mt5\MQL5\Templates\Expert.mqt

(не помешает и сохранить копию, например под русским названием Эксперт.mqt)

 

Я у себя подобных каталогов и файлов не нашел, или их самому создавать нужно?

 
vdv2001 :

Прям в едиторе поправить шаблон под себя, например:

...\mt5\MQL5\Templates\Expert.mqt

(не помешает и сохранить копию, например под русским названием Эксперт.mqt)

 

Я у себя подобных каталогов и файлов не нашел, или их самому создавать нужно?


Они есть!

надо поставить птичку в контекстном меню "Показать все файлы" ("Show All Files").

Учите матчасть.. ;)

 
kombat :


Они есть!

надо поставить птичку в контекстном меню "Показать все файлы" ("Show All Files").

Учите матчасть.. ;)


ага, и ещё заодно кинуть поиск по всему диску... а то может это всё лежать в самом неожиданном месте :)
 
Выложите плз пример этого файла.. весь комп обыскал, mqt файлов не нашел :(