Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 948

 

Подскажите, как примерно будет выглядеть следующая конструкция:

1) Сгенерировался новый тик - выполнилось условие, например, на этом тике будет отрисовываться указание паттерна и будет подан алерт

2) Нужно после выполнения условия выше остановить выполнения множества повторений одного и того же действия вышеописанного дествия до периода времени, равного:

TimeCurrent() <= (time[index] + PeriodSeconds(PERIOD_CURRENT))

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

Реальная ли такая конструкция?

 
clickaider:

Подскажите, как примерно будет выглядеть следующая конструкция:

1) Сгенерировался новый тик - выполнилось условие, например, на этом тике будет отрисовываться указание паттерна и будет подан алерт

2) Нужно после выполнения условия выше остановить выполнения множества повторений одного и того же действия вышеописанного дествия до периода времени, равного:

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

Реальная ли такая конструкция?

Вы уже почти всю логику сами написали..

 
Artyom Trishkin:

Вы уже почти всю логику сами написали..

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

 
clickaider:

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

  1. Сгенерировался новый тик - выполнилось условие, например, на этом тике будет отрисовываться указание паттерна и будет подан алерт.
    1. Нужна функция получения условия с установкой флага отработки этого условия последующими двумя пунктами
    2. Нужна функция отрисовки паттерна
    3. Нужна функция отсылки алерта (не обязательно функция - есть стандартные функции для только алерта, только e-mail и только push)
  2. Нужно после выполнения условия выше остановить выполнения множества повторений одного и того же действия вышеописанного дествия до периода времени, равного...
    1. Если стоит флаг, что три вышеперечисленных действия из пункта 1 уже выполнены, то ничего не делать - идём к пункту 3, иначе - идём на пункт 1
  3. Как только бар сменяется на следующий, вновь возобновить работу условия до следующего временного периода, описанного выше
    1. Нужна функция определения нового бара. Как только новый бар определили - идём на пункт 1. Иначе - идём на пункт 2.
 

Прошу помощи.

У меня имеется список enum

enum ENUM_Target_NAME 
  {
   arr_Buy,
   arr_Sell,
   arr_Svod,
   arr_Regr,
   arr_200,
   arr_100,
   Target_25_iD,
   Target_50_iD,
  };
input ENUM_Target_NAME Target=ENUM_Target_NAME(5);

Мне нужно, что бы значения стали типа string, т.е. стали текстом, такой подход не помогает

(string)Target

получаю просто номер значения переменной из списка, а нужен текст - реальное название из списка, к примеру "arr_100".

Как это сделать?

 
Aleksey Vyazmikin:

Прошу помощи.

У меня имеется список enum

Мне нужно, что бы значения стали типа string, т.е. стали текстом, такой подход не помогает

получаю просто номер значения переменной из списка, а нужен текст - реальное название из списка, к примеру "arr_100".

Как это сделать?

EnumToString()

 
Artyom Trishkin:

EnumToString()

Спасибо!

 
Nauris Zukas:

Можете дать силку на документацию что означает эти символы <> ?

Это шаблонный метод. Тип параметра в нем будет подобран согласно переданному типу в этих скобках. Тип определяется статически, на этапе компиляции программы. Более подробно об этом можно почитать в "шаблонах функций и классов": https://www.mql5.com/ru/docs/basis/oop/templates 

Документация по MQL5: Основы языка / Объектно-ориентированное программирование / Шаблоны функций
Документация по MQL5: Основы языка / Объектно-ориентированное программирование / Шаблоны функций
  • www.mql5.com
Перегруженные функции обычно используются для выполнения похожих операций над различными типами данных. Простой пример такой функции в MQL5 - ArraySize(), которая возвращает размер массива любого типа. На самом деле эта системная функция является перегруженной, и вся реализация такой перегрузки спрятана от разработчика программ на MQL5: То есть...
 
Nauris Zukas:

Добрый день! Я сделал .mqh для обработки данных и хранение в ресурсе. Всё работает, но есть нюанс, если скомпилировать индикатор, то .mqh сбрасывается и заново делает вес процесс для хранение. Цель - пока есть данные в ресурсе они не сбрасывается. Где ошибка, как исправить?

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

 
Vasiliy Sokolov:

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

Ясно, спасибо!