Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Пожалуйста помогите.
Сделаете скрипт то что в этом странице https://www.mql5.com/ru/articles/1368 для тестирование в не стандарт ТФ
меня не получается с скриптом
Пишем скрипт для сохранения данных с графика в файл *.csv (файл s_ExportChartToCSV_v1.mq4 приложения):
Исполняем скрипт на графиках нестандартных таймфреймов. В результате работы скрипта в каталоге experts/filies получаем стандартные файлы *.csv с данными нестандартных таймфреймов.
Если есть ордер, от закрытия которого прошло 60 минут но менее 10 часов, то выводится лот, время и цена закрытия этого ордера. Этапы проектирования:
Сообщение нужно через время кратное 60 минут. Получается всего 10 раз вывести сообщение по каждому закрытому ордеру
Вариант 4. Советник каждую минуту проверяет историю и при совпадении условий выводит информацию об ордерах
Как выбрать вариант 4? Вы наверное ошиблись с файлом. Вот что внутри
Вы пришли за помощью - помогают тем, кто что-то делает. Составил Вам план работы и написал начальный вариант. Пишите дальше
Имейте в виду что функция ( OrdersTotal() ) видит все ордера, любые магики, другие символы,отложенные и рыночные
Мне нужно чтобы оно открывало 3 ордера но также была возможность поставить 3 стоп приказа и 3 тейк профита. Вы написали что функция учитывает все ордера. Стоп лосс и тейк профит это тоже отложенные ордера или нет. Я поэксперементировал с функцией OrdersTotal но мне не понятно сколько ордеров оно открывает. Вот моё условие.
Я нашёл такой код
Может его можно использовать только мне не понятны значения строк. Можно использовать этот код если его переделать под моё условие?
Вы пришли за помощью - помогают тем, кто что-то делает. Составил Вам план работы и написал начальный вариант. Пишите дальше
Понятно, скажите, как отсчитывать время кратное 60 минут. Чтобы сигналить через 60, 120, 180 минут
Время в MQL - это Unix time stamp, т. е. количество секунд, прошедшее с 01.01.1970. Чтобы отсеять от даты/времени секунды, оставив минуты, нужно разделить на 60 без остатка, а потом умножить на 60. Соответственно, отсеять минуты и секунды можно, разделив на 3 600 (60 секунд в минуте и 60 минут в часе) без остатка, а затем умножить на 3 600:
Время в MQL - это Unix time stamp, т. е. количество секунд, прошедшее с 01.01.1970. Чтобы отсеять от даты/времени секунды, оставив минуты, нужно разделить на 60 без остатка, а потом умножить на 60. Соответственно, отсеять минуты и секунды можно, разделив на 3 600 (60 секунд в минуте и 60 минут в часе) без остатка, а затем умножить на 3 600:
Благодарю, однако вопрос остался.
Взять к примеру, врем закрытия позиции =T_Close. как от него отсчитывать каждые 60 минут.
Вот такое условие если текущее время равно T_Close+60 минут или T_Close+120 минут или T_Close+180 минут и так далее
Если правильно понял, то нужно так:
Вот как это условие записать по грамотному? Вдруг нужно будет сигналить каждые 45 минут это всё переписывать.
и так сигналить будет 3 раза а мне нужно 10 вот чтобы десять раз не писать T_Close+60==dtTime|| как нужно сделать?
Вдруг нужно будет сигналить каждые 45 минут это всё переписывать.
и так сигналить будет 3 раза а мне нужно 10 вот чтобы десять раз не писать T_Close+60==dtTime|| как нужно сделать?
Время между сигналами вывести в настроечные параметры или сделать именованной константой. Это чтобы не искать постоянно, где эта пауза в коде прописана. А чтобы проверять истечение времени, нужно запомнить время последнего сигнала и сравнивать разницу текущего времени и последнего сигнала с заданной паузой между сигналами. Если разница больше, чем пауза, то сигналить и снова запоминать время.
Если нужно вывести сигнал ограниченное количество раз, то просто добавить счетчик сигналов.
Бывают значения по умолчанию а бывает нужно записывать самому. Возвращаемые значения есть всегда как определить чему они равны эти значения? К примеру у меня есть такой код
в моём случае возвращаемым значением будет имя переменной ticket почему именно так функция hfjfu() имеет тип void в справочнике сказано что этот тип может быть без возвращаемого правда я наоборот записал.
Вернуть имя переменной без особых ухищрений весьма затруднительно. Да и не нужно никому иметь имя переменной в качестве возвращаемого значения. Обычно возвращают значение переменной. В приведенном коде функция hfjfu() ничего не возвращает (у нее тип void). Поэтому указание команды return в конце ее выполнения не имеет никакого смысла. Если убрать эту строку, то ничего не изменится.
Чтобы функция вернула результат, нужно указать ее тип отличным от void:
Игорь, у Вас на глазах был взломан редактор связей ред (link editor) Метаквотов.
Время между сигналами вывести в настроечные параметры или сделать именованной константой. Это чтобы не искать постоянно, где эта пауза в коде прописана. А чтобы проверять истечение времени, нужно запомнить время последнего сигнала и сравнивать разницу текущего времени и последнего сигнала с заданной паузой между сигналами. Если разница больше, чем пауза, то сигналить и снова запоминать время.
Если нужно вывести сигнал ограниченное количество раз, то просто добавить счетчик сигналов.