Ответ
 
Опции темы
10.05.2016, 14:29
Аватар для Vanek_V
Vanek_V Интересующийся
Регистрация: 23.03.2015 / Сообщений: 3
Поблагодарили 0 раз(а) / Репутация: 1

По умолчанию ПОМОГИТЕ НАЧИНАЮЩЕМУ


Подскажите пожалуйста как в MQL 4 прописать условие, чтобы советник проверял динамику рынка в определенный промежуток времени (например, нахождение точек экстремума только в период с 01:00 до 13:00 каждого дня, а не за весь день)?
Если можно пропишите кодом.
Заранее спасибо.
Vanek_V вне форума Ответить с цитированиемОтветить с цитированием  
10.05.2016, 17:53
Аватар для officialboob
officialboob Элитный участник
Регистрация: 13.07.2013 / Адрес: Moscow / Сообщений: 2,269
Поблагодарили 1,302 раз(а) / Репутация: 1261
Сообщение от Vanek_V Посмотреть сообщение
Подскажите пожалуйста как в MQL 4 прописать условие, чтобы советник проверял динамику рынка в определенный промежуток времени (например, нахождение точек экстремума только в период с 01:00 до 13:00 каждого дня, а не за весь день)?
Если можно пропишите кодом.
Заранее спасибо.

Активация функции:

PHP код:
if(isTradeTimeInt(01,00,13,00)) {

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



Функция:

PHP код:
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 30.04.2009                                                     |
//|  Описание : Возвращает флаг разрешения торговли по времени. *испр.         |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    hb - часы времени начала торговли                                       |
//|    mb - минуты времени начала торговли                                     |
//|    he - часы времени окончания торговли                                    |
//|    me - минуты времени окончания торговли                                  |
//+----------------------------------------------------------------------------+
bool isTradeTimeInt(int hb=0int mb=0int he=0int me=0) {
  
datetime dbde;           // Время начала и окончания работы
  
int      hc;               // Часы текущего времени торгового сервера

  
db=StrToTime(TimeToStr(TimeCurrent(), TIME_DATE)+" "+(string)hb+":"+(string)mb);
  
de=StrToTime(TimeToStr(TimeCurrent(), TIME_DATE)+" "+(string)he+":"+(string)me);
  
hc=TimeHour(TimeCurrent());
  if (
db>=de) {
    if (
hc>=hede+=24*60*60; else db-=24*60*60;
  }

  if (
TimeCurrent()>=db && TimeCurrent()<=de) return(True);
  else return(
False);


_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Всем бобра!
Алексея Бонифациевича Фіерсова (Пылесоса) на портянку!
officialboob вне форума Ответить с цитированиемОтветить с цитированием  
17.05.2016, 08:38
Аватар для Andrew9999
Andrew9999 Прохожий
Регистрация: 17.05.2016 / Сообщений: 1
Поблагодарили 0 раз(а) / Репутация: 1

По умолчанию mgl4 запись в файл


Подскажите пожалуйста как записывать строку в файл через каждую минуту? Не получается сделать задержку времени!!!!!!
#property copyright "Copyright 2016, MetaQuotes Software Corp."
#property link "https://www.mql5.com"
#property version "1.00"
#property strict
//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+
void OnStart()
{
//---
int filehandle;
//ResetLastError();
filehandle=FileOpen("my_file.txt",FILE_WRITE|FILE_ TXT);
if(filehandle!=INVALID_HANDLE)
{
while(1)
{
FileWrite(filehandle,"строку надо записать в файл");
Sleep(60000); //функция не работает
}
FileClose(filehandle);
Print("FileOpen OK");
}
else Print("Операция FileOpen неудачна, ошибка ",GetLastError());

}
//+------------------------------------------------------------------+
Andrew9999 вне форума Ответить с цитированиемОтветить с цитированием  
18.05.2016, 00:07
Аватар для _SERG_
_SERG_ Активный участник
Регистрация: 21.07.2009 / Сообщений: 264
Поблагодарили 82 раз(а) / Репутация: 82
Сообщение от Andrew9999 Посмотреть сообщение
Подскажите пожалуйста как записывать строку в файл через каждую минуту? Не получается сделать задержку времени!!!!!!
#property copyright "Copyright 2016, MetaQuotes Software Corp."
#property link "https://www.mql5.com"
#property version "1.00"
#property strict
//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+
void OnStart()
{
//---
int filehandle;
//ResetLastError();
filehandle=FileOpen("my_file.txt",FILE_WRITE|FILE_ TXT);
if(filehandle!=INVALID_HANDLE)
{
while(1)
{
FileWrite(filehandle,"строку надо записать в файл");
Sleep(60000); //функция не работает
}
FileClose(filehandle);
Print("FileOpen OK");
}
else Print("Операция FileOpen неудачна, ошибка ",GetLastError());

}
//+------------------------------------------------------------------+

А как ты пришел к выводу, что не работает ?

Цитата:
{
<------- Вставь сюда Prinr("[" + TimeToStr (TimeLocal(), TIME_DATE | TIME_SECONDS) +"]"); и посмотри лог, мож чё и поменяется.
FileWrite(filehandle,"строку надо записать в файл");
Sleep(60000); //функция не работает
}
_SERG_ на форуме Ответить с цитированиемОтветить с цитированием  
18.05.2016, 06:57
Аватар для AlexeyVik
AlexeyVik Программист mql4 mql5
Регистрация: 19.11.2009 / Сообщений: 2,590
Поблагодарили 3,712 раз(а) / Репутация: 3708
Сообщение от Andrew9999 Посмотреть сообщение
Подскажите пожалуйста как записывать строку в файл через каждую минуту? Не получается сделать задержку времени!!!!!!
Сообщение от _SERG_ Посмотреть сообщение
А как ты пришел к выводу, что не работает ?
В тестере функция Sleep() не работает.
AlexeyVik вне форума Ответить с цитированиемОтветить с цитированием  
18.05.2016, 07:04
Аватар для ansol
ansol Местный знаток
За призовое место в конкурсе 

Регистрация: 22.04.2010 / Сообщений: 2,017
Поблагодарили 855 раз(а) / Репутация: 841
Сообщение от AlexeyVik Посмотреть сообщение
В тестере функция Sleep() не работает.
Скрипт в тестере?
Оригинально!
ansol на форуме Ответить с цитированиемОтветить с цитированием  
18.05.2016, 12:12
Аватар для _SERG_
_SERG_ Активный участник
Регистрация: 21.07.2009 / Сообщений: 264
Поблагодарили 82 раз(а) / Репутация: 82
Сообщение от AlexeyVik Посмотреть сообщение
В тестере функция Sleep() не работает.
Сообщение от ansol Посмотреть сообщение
Скрипт в тестере?
Оригинально!
Я в курсе ,что слип не работает и циклить скрипт на тестере не стоит, но человек свято верит в идентичность условий на "Демо"/"Реале", вот и задаю вопрос: "Как к такому віводу пришел?".

Имея абсолютную уверенность в своих навыках, люди так же уверены и в том, с чем работают, не ставя эту уверенность под сомнение, проверяя её, и в дальнейшем используя как навык и опыт.
Не спорю, что большинство имеет как правило бесполезный опыт, в связи с чем занимается бОльшую часть времени поиском ошибок и нестыковок в т.ч. и не по своей вине.
Во завернул!

Последний раз редактировалось _SERG_; 18.05.2016 в 12:29.
_SERG_ на форуме Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
AlexeyVik (18.05.2016)
18.05.2016, 12:47
Аватар для AlexeyVik
AlexeyVik Программист mql4 mql5
Регистрация: 19.11.2009 / Сообщений: 2,590
Поблагодарили 3,712 раз(а) / Репутация: 3708
Сообщение от _SERG_ Посмотреть сообщение
Я в курсе ,что слип не работает и циклить скрипт на тестере не стоит, но человек свято верит в идентичность условий на "Демо"/"Реале", вот и задаю вопрос: "Как к такому віводу пришел?".

Имея абсолютную уверенность в своих навыках, люди так же уверены и в том, с чем работают, не ставя эту уверенность под сомнение, проверяя её, и в дальнейшем используя как навык и опыт.
Не спорю, что большинство имеет как правило бесполезный опыт, в связи с чем занимается бОльшую часть времени поиском ошибок и нестыковок в т.ч. и не по своей вине.
Во завернул!
Да я что-то совсем не глянул на шапку. Вот и получилось что поумничал...
AlexeyVik вне форума Ответить с цитированиемОтветить с цитированием  
19.05.2016, 12:25
Аватар для derzerack
derzerack Новичок форума
Регистрация: 30.11.2012 / Сообщений: 12
Поблагодарили 1 раз в 1 сообщении / Репутация: 7
Уважаемые товарищи программисты. Необходимо сделать так чтобы при наступление условия открывался 1 отложенный ордер, а не куча. Задача осложняется тем что необходимо держать открытыми несколько отложек, планирую 3. Другими словами появилось условие открылась одна отложка, позже опять появляется условие открывается вторая. Далее при появлении условий удаляю лишнюю отложку и выставляю новую. Немогу понять как ограничить выставление отложек по количеству и цене. Чтоб в одну цену не устанавливалось 100500 ордеров. Заранее благодарен за ответ.
derzerack вне форума Ответить с цитированиемОтветить с цитированием  
19.05.2016, 13:44
Аватар для vlad_123
vlad_123 Местный знаток
Регистрация: 29.01.2013 / Сообщений: 389
Поблагодарили 877 раз(а) / Репутация: 881
derzerack, перед открытием ордера пробегать уже открытые, и если разница между ценой открытия и текущей ценой меньше какого-то значения - не открывать.

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

На заказ не программирую.
vlad_123 на форуме Ответить с цитированиемОтветить с цитированием  
2 пользователя(ей) сказали cпасибо:
AlexeyVik (20.05.2016), derzerack (20.05.2016)
19.05.2016, 18:16
Аватар для officialboob
officialboob Элитный участник
Регистрация: 13.07.2013 / Адрес: Moscow / Сообщений: 2,269
Поблагодарили 1,302 раз(а) / Репутация: 1261
Сообщение от derzerack Посмотреть сообщение
Уважаемые товарищи программисты. Необходимо сделать так чтобы при наступление условия открывался 1 отложенный ордер, а не куча. Задача осложняется тем что необходимо держать открытыми несколько отложек, планирую 3. Другими словами появилось условие открылась одна отложка, позже опять появляется условие открывается вторая. Далее при появлении условий удаляю лишнюю отложку и выставляю новую. Немогу понять как ограничить выставление отложек по количеству и цене. Чтоб в одну цену не устанавливалось 100500 ордеров. Заранее благодарен за ответ.



PHP код:
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 28.11.2006                                                     |
//|  Описание : Возвращает количество ордеров.                                 |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   (""   - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - операция                   (-1   - любой ордер)                    |
//|    mn - MagicNumber                (-1   - любой магик)                    |
//+----------------------------------------------------------------------------+
int NumberOfOrders(string sy=""int op=-1int mn=-1) {
  
int ik=OrdersTotal(), ko=0ot;

  if (
sy=="0"sy=Symbol();
  for (
i=0i<ki++) {
    if (
OrderSelect(iSELECT_BY_POSMODE_TRADES)) {
      
ot=OrderType();
      if (
ot>&& ot<6) {
        if ((
OrderSymbol()==sy || sy=="") && (op<|| ot==op)) {
          if (
mn<|| OrderMagicNumber()==mnko++;
        }
      }
    }
  }
  return(
ko);

PHP код:
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 19.02.2008                                                     |
//|  Описание : Возвращает цену открытия последнего открытого ордера. *        |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   (""   - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - операция                   (-1   - любой ордер)                    |
//|    mn - MagicNumber                (-1   - любой магик)                    |
//+----------------------------------------------------------------------------+
double PriceOpenLastOrder(string sy=""int op=-1int mn=-1) {
  
datetime t=0;
  
double   r=0;
  
int      ik=OrdersTotal();

  if (
sy=="0"sy=Symbol();
  for (
i=0i<ki++) {
    if (
OrderSelect(iSELECT_BY_POSMODE_TRADES)) {
      if (
OrderSymbol()==sy || sy=="") {
        if (
OrderType()>=2) {
          if (
op<|| OrderType()==op) {
            if (
mn<|| OrderMagicNumber()==mn) {
              if (
t<OrderOpenTime()) {
                
t=OrderOpenTime();
                
r=OrderOpenPrice();
              }
            }
          }
        }
      }
    }
  }
  return(
r);


_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Всем бобра!
Алексея Бонифациевича Фіерсова (Пылесоса) на портянку!

Последний раз редактировалось officialboob; 19.05.2016 в 18:22.
officialboob вне форума Ответить с цитированиемОтветить с цитированием  
20.05.2016, 09:46
Аватар для федорини
федорини Прохожий
Регистрация: 30.07.2015 / Сообщений: 1
Поблагодарили 0 раз(а) / Репутация: 1
Добрый день ! Как написать индикатор я знаю. А если у меня два массива в которые я записал в программе MQL4 значения переменных и хочу построить график зависимости значений одного массива от значений другого массива. Может кто-нибудь подскажет хотя бы приблизительно как это написать на MQL4. В виде скрипта или индикатора. Заранее благодарен
федорини вне форума Ответить с цитированиемОтветить с цитированием  
20.05.2016, 12:04
Регистрация: 13.03.2009 / Сообщений: 2,324
Поблагодарили 1,945 раз(а) / Репутация: 2018
Сообщение от федорини Посмотреть сообщение
Добрый день ! Как написать индикатор я знаю. А если у меня два массива в которые я записал в программе MQL4 значения переменных и хочу построить график зависимости значений одного массива от значений другого массива. Может кто-нибудь подскажет хотя бы приблизительно как это написать на MQL4. В виде скрипта или индикатора. Заранее благодарен
Я так понял хочешь сравнить 2 значения буферах. Скорее всего результат будет не соизмерим с графиком цены. Самое простое сделай индикатор с буфером в подвале. В буфер пиши значение после сравнения 2 буферов, которые можно получить по iCustom.

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Глубокое понимание процессов помогает в работе, но сильно мешает в отдыхе.
http://forexsystems.ru/signaturepics/sigpic3798_1.gif
Чужие программы не переделываю!
Ugar на форуме Ответить с цитированиемОтветить с цитированием  
20.05.2016, 16:55
Аватар для derzerack
derzerack Новичок форума
Регистрация: 30.11.2012 / Сообщений: 12
Поблагодарили 1 раз в 1 сообщении / Репутация: 7
Сообщение от vlad_123 Посмотреть сообщение
derzerack, перед открытием ордера пробегать уже открытые, и если разница между ценой открытия и текущей ценой меньше какого-то значения - не открывать.
Огромное спасибо за ответ. Такой вариант работает. кнопки "спасибо" не нашёл, поэтому благодарю в этом сообщении.
derzerack вне форума Ответить с цитированиемОтветить с цитированием  
20.05.2016, 17:01
Аватар для AlexeyVik
AlexeyVik Программист mql4 mql5
Регистрация: 19.11.2009 / Сообщений: 2,590
Поблагодарили 3,712 раз(а) / Репутация: 3708
Сообщение от derzerack Посмотреть сообщение
Огромное спасибо за ответ. Такой вариант работает. кнопки "спасибо" не нашёл, поэтому благодарю в этом сообщении.
Я нашёл кнопку и нажал за тебя. Будешь мне должен.
AlexeyVik вне форума Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
vlad_123 (20.05.2016)
23.05.2016, 07:22
Аватар для haxbam
haxbam Интересующийся
Регистрация: 06.01.2011 / Сообщений: 11
Поблагодарили 3 раз(а) / Репутация: 4

Вопрос Нужна помошь в доработке индикатора.


Всем привет!
Нашел графический индикатор , скачал ,немного переделал его под свои нужды. Но я не знаю что нужно добавить в графический индикатор что бы с него эксперт мог считывать 2 разных сигнала HighSignal (строка 57) и LowSignal(строка 69).
Я так понимаю нужно обозначить имя индикатора и вставить буфер в который бы потом писались и считывались нужные переменные. Но как это сделать не пойму.
Помогите пожалуйста доделать этот индикатор ,и еще какой командой в эксперте можно считать с него значения ?
Вложения:
Тип файла: mq4 ewe.mq4 (4.0 Кб, 15 просмотров)
haxbam вне форума Ответить с цитированиемОтветить с цитированием  
23.05.2016, 12:01
Аватар для AlexeyVik
AlexeyVik Программист mql4 mql5
Регистрация: 19.11.2009 / Сообщений: 2,590
Поблагодарили 3,712 раз(а) / Репутация: 3708
Сообщение от haxbam Посмотреть сообщение
Всем привет!
Нашел графический индикатор , скачал ,немного переделал его под свои нужды. Но я не знаю что нужно добавить в графический индикатор что бы с него эксперт мог считывать 2 разных сигнала HighSignal (строка 57) и LowSignal(строка 69).
Я так понимаю нужно обозначить имя индикатора и вставить буфер в который бы потом писались и считывались нужные переменные. Но как это сделать не пойму.
Помогите пожалуйста доделать этот индикатор ,и еще какой командой в эксперте можно считать с него значения ?
А он у тебя хоть что-то показывает? Рисует трендовые? Бывают-ли алерты?
AlexeyVik вне форума Ответить с цитированиемОтветить с цитированием  
23.05.2016, 17:48
Аватар для haxbam
haxbam Интересующийся
Регистрация: 06.01.2011 / Сообщений: 11
Поблагодарили 3 раз(а) / Репутация: 4
Сообщение от AlexeyVik Посмотреть сообщение
А он у тебя хоть что-то показывает? Рисует трендовые? Бывают-ли алерты?
Да! Конечно рисует! Свою задачу он полностью выполняет, вот только вытянуть из него результат в эксперта никак не могу.
Миниатюры:
Нажмите на изображение для увеличения
Название: 2016-05-23_20-46-17.png
Просмотров: 23
Размер:	48.1 Кб
ID:	244050  
haxbam вне форума Ответить с цитированиемОтветить с цитированием  
23.05.2016, 19:08
Аватар для AlexeyVik
AlexeyVik Программист mql4 mql5
Регистрация: 19.11.2009 / Сообщений: 2,590
Поблагодарили 3,712 раз(а) / Репутация: 3708
Сообщение от haxbam Посмотреть сообщение
Да! Конечно рисует! Свою задачу он полностью выполняет, вот только вытянуть из него результат в эксперта никак не могу.
У меня совсем молчит, да и по коду вроде-бы долго придётся ждать, потому держи не проверенный вариант.
Из советника можно получить через iCustom() буфер 0 == 0 сигнал Buy, буфер 1 == 1 сигнал Sell
Ну а в принципе наверное сможешь подправить какие значения в буфер ставить.
Вложения:
Тип файла: mq4 ewe.mq4 (4.4 Кб, 15 просмотров)
AlexeyVik вне форума Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
haxbam (24.05.2016)
24.05.2016, 12:28
Аватар для Минька
Минька Активный участник
Регистрация: 13.07.2013 / Сообщений: 192
Поблагодарили 98 раз(а) / Репутация: 99
Всем привет! Возникла идея по закрытию свечи старшего таймфрейма (например М15), сделать расчет индикатора с младшего таймфрейма (например М1), то есть подсчитать 15 свечей для М1, а результат вывести на М15 и так для каждой свечи М15. Не соображу как сделать.
Минька на форуме Ответить с цитированиемОтветить с цитированием  
Ответ

Метки
mql4, mql4 помощь, вопросы mql4


Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Выкл.
Pingbacks are Выкл.
Refbacks are Выкл.



Текущее время: 10:08. Часовой пояс GMT.


Перевод: zCarot
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
SEO by vBSEO