Ответ
 
Опции темы
Старый 13.09.2016, 19:13   #5001 (permalink)
Активный участник
 
Аватар для _SERG_
 
Регистрация: 21.07.2009
Сообщений: 242
Репутация: 75
_SERG_
Сказал(а) спасибо: 7
Поблагодарили 75 раз(а) в 61 сообщениях
Поинты: 284
Сообщение от eevviill2 Посмотреть сообщение

Наприклад шоб взнати бід gbpusd MarketInfo("GBPUSD",MODE_BID) треба.
А це функція, її данні отримуються при виклику.
Альтернативный вызов: MarketInfo("GBPUSD", 9 );
Удобно в цикле перебирать.
Да и неувязочка, отрабатывает по тику текущего инструмента, а не запрашиваемого.
Усе так, тільки трошечки не так.
Немного с темы съехали, про задержку выполнения команды.
_SERG_ на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 13.09.2016, 19:37   #5002 (permalink)
Интересующийся
 
Аватар для ref2015
 
Регистрация: 28.03.2015
Сообщений: 8
Репутация: 2
ref2015
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
Поинты: 4
кто нибудь может помочь советника доработать? дописать в нем эти функции, задержка при сигнале индикатора на покупку или продажу(в секундах ) с возможностью их корректировать, и повторная проверка сигнала, буду очень благодарен.
ref2015 вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 13.09.2016, 19:42   #5003 (permalink)
Активный участник
 
Аватар для _SERG_
 
Регистрация: 21.07.2009
Сообщений: 242
Репутация: 75
_SERG_
Сказал(а) спасибо: 7
Поблагодарили 75 раз(а) в 61 сообщениях
Поинты: 284
Сообщение от ref2015 Посмотреть сообщение
кто нибудь может помочь советника доработать? дописать в нем эти функции, задержка при сигнале индикатора на покупку или продажу(в секундах ) с возможностью их корректировать, и повторная проверка сигнала, буду очень благодарен.
Ты то сам пишешь?
Или чей то код дотягиваешь?
Про "дописывание", так функции не просто в советник надо дописывать, а в соответствви с твоей стратегией, тобышь, и к месту и ко времени.
Выдели события, которые происходят у тебя по стратегии, зафиксируй условно время сигнала, создай счётчик, задействованный при проверке, дождись когда Начальное время + счётчик будут больше времени ожидания, и выполни команду.
Всё.

На MQL4 писать, это вывих головного мозга делать.
А дальше даже не буду говорить.

Последний раз редактировалось _SERG_; 13.09.2016 в 19:53.
_SERG_ на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 13.09.2016, 22:39   #5004 (permalink)
Почётный гражданин
 
Аватар для eevviill2
 
Регистрация: 13.08.2016
Адрес: Бандерівці
Сообщений: 305
Репутация: 392
eevviill2 - eevviill2 - eevviill2 - eevviill2 -
Сказал(а) спасибо: 231
Поблагодарили 393 раз(а) в 127 сообщениях
Поинты: 38
Отправить сообщение для eevviill2 с помощью Skype™
Сообщение от _SERG_ Посмотреть сообщение
...
На MQL4 писать, это вывих головного мозга делать.
...
А шо з ним?
Ну пару прикладів, бо мені дуже подобається і вивихом рахую mql5.

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Героям слава!
eevviill2 на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 14.09.2016, 03:56   #5005 (permalink)
Интересующийся
 
Аватар для ref2015
 
Регистрация: 28.03.2015
Сообщений: 8
Репутация: 2
ref2015
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
Поинты: 4
Сообщение от _SERG_ Посмотреть сообщение
Ты то сам пишешь?
Или чей то код дотягиваешь?
Про "дописывание", так функции не просто в советник надо дописывать, а в соответствви с твоей стратегией, тобышь, и к месту и ко времени.
Выдели события, которые происходят у тебя по стратегии, зафиксируй условно время сигнала, создай счётчик, задействованный при проверке, дождись когда Начальное время + счётчик будут больше времени ожидания, и выполни команду.
Всё.

На MQL4 писать, это вывих головного мозга делать.
А дальше даже не буду говорить.
чей то дотягиваю под БО
ref2015 вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 14.09.2016, 04:56   #5006 (permalink)
Активный участник
 
Аватар для _SERG_
 
Регистрация: 21.07.2009
Сообщений: 242
Репутация: 75
_SERG_
Сказал(а) спасибо: 7
Поблагодарили 75 раз(а) в 61 сообщениях
Поинты: 284
Сообщение от eevviill2 Посмотреть сообщение
А шо з ним?
Ну пару прикладів, бо мені дуже подобається і вивихом ВВАЖАЮ mql5.
Тебе какая версия больше нравится до 600 или выше?
4-й - процедурный, 5-й с претензией на ООП, но оба недоделанные.

Примеры, та не вопрос, отсортируй средствами языка, по убыванию, энный столбец, любой но не столбец 0-го измерения массива, ток не говори, что "Мне это не надо." или "Я этим не пользуюсь.", 4-х мерного массива.
Обычно в примерах заканчивается применением ArraySort(), но с ней тоже не все путем, символы не сортирует.
Или например создав переменную с динамическим именем, создай массив с динамическим именем. Напиши, что получилось.Это так на вскидку.
Вроде бы как есть, что то, но воспользоваться, в расчете на результат не всегда
возможно.
_SERG_ на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 14.09.2016, 05:01   #5007 (permalink)
Активный участник
 
Аватар для _SERG_
 
Регистрация: 21.07.2009
Сообщений: 242
Репутация: 75
_SERG_
Сказал(а) спасибо: 7
Поблагодарили 75 раз(а) в 61 сообщениях
Поинты: 284
Сообщение от ref2015 Посмотреть сообщение
чей то дотягиваю под БО
БО, это что такое?
_SERG_ на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 14.09.2016, 07:29   #5008 (permalink)
Почётный гражданин
 
Аватар для eevviill2
 
Регистрация: 13.08.2016
Адрес: Бандерівці
Сообщений: 305
Репутация: 392
eevviill2 - eevviill2 - eevviill2 - eevviill2 -
Сказал(а) спасибо: 231
Поблагодарили 393 раз(а) в 127 сообщениях
Поинты: 38
Отправить сообщение для eevviill2 с помощью Skype™
Сообщение от _SERG_ Посмотреть сообщение
Тебе какая версия больше нравится до 600 или выше?
4-й - процедурный, 5-й с претензией на ООП, но оба недоделанные.

Примеры, та не вопрос, отсортируй средствами языка, по убыванию, энный столбец, любой но не столбец 0-го измерения массива, ток не говори, что "Мне это не надо." или "Я этим не пользуюсь.", 4-х мерного массива.
Обычно в примерах заканчивается применением ArraySort(), но с ней тоже не все путем, символы не сортирует.
Или например создав переменную с динамическим именем, создай массив с динамическим именем. Напиши, что получилось.Это так на вскидку.
Вроде бы как есть, что то, но воспользоваться, в расчете на результат не всегда
возможно.
Емм. mql4 вже давно ООП теж, нє?

Я так сортував.
Создаем двухмерный массив, например: double Asort[ 4000, 2]
В первое измерение Asort[ i, 0] = записываем сортируемое значение.
Во второе помещаем ссылку Asort[ i, 1] = i это индекс в исходном массиве.
После сортировки, индекс в исходном массиве.узнаем из второго измерения

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Героям слава!

Последний раз редактировалось eevviill2; 14.09.2016 в 07:33.
eevviill2 на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 14.09.2016, 07:29   #5009 (permalink)
Почётный гражданин
 
Аватар для eevviill2
 
Регистрация: 13.08.2016
Адрес: Бандерівці
Сообщений: 305
Репутация: 392
eevviill2 - eevviill2 - eevviill2 - eevviill2 -
Сказал(а) спасибо: 231
Поблагодарили 393 раз(а) в 127 сообщениях
Поинты: 38
Отправить сообщение для eevviill2 с помощью Skype™
Сообщение от _SERG_ Посмотреть сообщение
БО, это что такое?
бінарні опціони.

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Героям слава!
eevviill2 на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 14.09.2016, 08:11   #5010 (permalink)
Активный участник
 
Аватар для vladradon
 
Регистрация: 12.02.2015
Сообщений: 104
Репутация: 37
vladradon
Сказал(а) спасибо: 23
Поблагодарили 37 раз(а) в 25 сообщениях
Поинты: 168
Серж, Привет! Что-то давно не вижу тебя в скайпе... По поводу функции OnTimer() - не работает у меня на 5-ке (MT5), хоть ты тресни, - всегда новые команды срабатывают только при приходе тика. Все одинаково на всех брокерах. На 4-ке пока не пробовал. Не работает ни секундный, ни миллисекундный - все равно ждет тика.
vladradon на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 14.09.2016, 08:40   #5011 (permalink)
Активный участник
 
Аватар для _SERG_
 
Регистрация: 21.07.2009
Сообщений: 242
Репутация: 75
_SERG_
Сказал(а) спасибо: 7
Поблагодарили 75 раз(а) в 61 сообщениях
Поинты: 284
Сообщение от eevviill2 Посмотреть сообщение
Емм. mql4 вже давно ООП теж, нє?

Я так сортував.
Создаем двухмерный массив, например: double Asort[ 4000, 2]
В первое измерение Asort[ i, 0] = записываем сортируемое значение.
Во второе помещаем ссылку Asort[ i, 1] = i это индекс в исходном массиве.
После сортировки, индекс в исходном массиве.узнаем из второго измерения
Тяжеловато не изменив идеологию и сохранив преемственность, добавив урезанные классы, и косые структуры, сделать ООП, из процедурного языка.

Всё так просто! Разработчики просто молодцы!
На фоне ArraySort(), вообще титанический труд.
eevviill2, ты извини не хочу углубляться глубоко в эту полемику, это уже давно пройденный этап.

Последний раз редактировалось _SERG_; 14.09.2016 в 09:14.
_SERG_ на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 14.09.2016, 09:01   #5012 (permalink)
Активный участник
 
Аватар для _SERG_
 
Регистрация: 21.07.2009
Сообщений: 242
Репутация: 75
_SERG_
Сказал(а) спасибо: 7
Поблагодарили 75 раз(а) в 61 сообщениях
Поинты: 284
Сообщение от vladradon Посмотреть сообщение
Серж, Привет! Что-то давно не вижу тебя в скайпе... По поводу функции OnTimer() - не работает у меня на 5-ке (MT5), хоть ты тресни, - всегда новые команды срабатывают только при приходе тика. Все одинаково на всех брокерах. На 4-ке пока не пробовал. Не работает ни секундный, ни миллисекундный - все равно ждет тика.
Привет, Влад.
Не сижу, но бываю.
Там народ ваааще замер.
Никакой переписки. СОРМ в действии.
Я, для того чтобы убедиться, что работает OnTImer(), закомментировал все другие стандартные функции, оставил только OnInit() & OnDeinit();
_SERG_ на форуме   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
vladradon (14.09.2016)
Старый 14.09.2016, 09:29   #5013 (permalink)
Почётный гражданин
 
Аватар для eevviill2
 
Регистрация: 13.08.2016
Адрес: Бандерівці
Сообщений: 305
Репутация: 392
eevviill2 - eevviill2 - eevviill2 - eevviill2 -
Сказал(а) спасибо: 231
Поблагодарили 393 раз(а) в 127 сообщениях
Поинты: 38
Отправить сообщение для eevviill2 с помощью Skype™
Така ситуація.
Є ОнТаймер і ОнТік
інтервал ОнТаймер 1 сек
12:31 12:32 і тут в Онтік код довго рахує аж 2 секунди
Чи виконається код в ОнТаймер в 12:33
?

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Героям слава!
eevviill2 на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 14.09.2016, 09:52   #5014 (permalink)
Почётный гражданин
 
Аватар для eevviill2
 
Регистрация: 13.08.2016
Адрес: Бандерівці
Сообщений: 305
Репутация: 392
eevviill2 - eevviill2 - eevviill2 - eevviill2 -
Сказал(а) спасибо: 231
Поблагодарили 393 раз(а) в 127 сообщениях
Поинты: 38
Отправить сообщение для eevviill2 с помощью Skype™
Сообщение от eevviill2 Посмотреть сообщение
Така ситуація.
Є ОнТаймер і ОнТік
інтервал ОнТаймер 1 сек
12:31 12:32 і тут в Онтік код довго рахує аж 2 секунди
Чи виконається код в ОнТаймер в 12:33
?
Ах..ть!!!
І нашо той ОнТаймер????
Дибі.и.
PHP код:
//EA test on timer=0,1,2,3 seconds delay, HAHAHA...
////////////
int OnInit()
  {
   
EventSetTimer(1);

   return(
INIT_SUCCEEDED);
  }

//////////////
void OnTick()
  {
   
Sleep(1200);
   
  }
//////////////
void OnTimer()
{
Alert("seconds loc:" ,TimeSeconds(TimeLocal()));



_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Героям слава!
eevviill2 на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 14.09.2016, 13:15   #5015 (permalink)
Активный участник
 
Аватар для _SERG_
 
Регистрация: 21.07.2009
Сообщений: 242
Репутация: 75
_SERG_
Сказал(а) спасибо: 7
Поблагодарили 75 раз(а) в 61 сообщениях
Поинты: 284
Сообщение от eevviill2 Посмотреть сообщение
Ах..ть!!!
І нашо той ОнТаймер????
Дибі.и.
PHP код:
//EA test on timer=0,1,2,3 seconds delay, HAHAHA...////////////int OnInit()  {   EventSetTimer(1);   return(INIT_SUCCEEDED);  }//////////////void OnTick()  {   Sleep(1200);     }//////////////void OnTimer(){Alert("seconds loc:" ,TimeSeconds(TimeLocal()));} 
Ты уверен, что в коде всё правильно, результатам можно верить?
Опять же логика простая, если ты не понял, зачем тебе это надо?
То тогда, тебе это не надо. Чё париться?!!!

Последний раз редактировалось _SERG_; 14.09.2016 в 13:26.
_SERG_ на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 14.09.2016, 14:06   #5016 (permalink)
Почётный гражданин
 
Аватар для eevviill2
 
Регистрация: 13.08.2016
Адрес: Бандерівці
Сообщений: 305
Репутация: 392
eevviill2 - eevviill2 - eevviill2 - eevviill2 -
Сказал(а) спасибо: 231
Поблагодарили 393 раз(а) в 127 сообщениях
Поинты: 38
Отправить сообщение для eevviill2 с помощью Skype™
Сообщение от _SERG_ Посмотреть сообщение
Ты уверен, что в коде всё правильно, результатам можно верить?
Опять же логика простая, если ты не понял, зачем тебе это надо?
То тогда, тебе это не надо. Чё париться?!!!
Дик. Цеж весь код.
Шо не поняв?
Все зрозуміло. Або використовувати то або то. Вони паралельно не працюють.

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Героям слава!
eevviill2 на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 14.09.2016, 16:53   #5017 (permalink)
Активный участник
 
Аватар для _SERG_
 
Регистрация: 21.07.2009
Сообщений: 242
Репутация: 75
_SERG_
Сказал(а) спасибо: 7
Поблагодарили 75 раз(а) в 61 сообщениях
Поинты: 284
Сообщение от eevviill2 Посмотреть сообщение
Дик. Цеж весь код.
Шо не поняв?
Все зрозуміло. Або використовувати то або то. Вони паралельно не працюють.
Да есть приоритет выполнения, но есть иногда необходимость выполнить код, без прихода котировки.
Комбинируй.
Но есть случаи когда тик мешает, но он есть, тем не менее.
_SERG_ на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 16.09.2016, 07:51   #5018 (permalink)
Активный участник
 
Аватар для Sam163
 
Регистрация: 12.09.2009
Сообщений: 36
Репутация: 47
Sam163
Сказал(а) спасибо: 0
Поблагодарили 47 раз(а) в 15 сообщениях
Поинты: 22
Добрый день всем.
В программировании абсолютный 0,так что сильно не ругайте.
Интересует следующий момент,как сделать чтобы выделялось коробкой например область где Close свечи совпадает с Open следующей,и наоборот?И возможно чтобы можно было в переменных изменять строгое равенство на +-n пунктов.Пример:
Закрытие свечи 1.3560 и открытие след. свечи 1.3560,и нужно чтобы это две свечи как то обозначались.И чтобы во внешних переменных была строка на какое количество можно изменить равенство.Например n=1,и разница между закрытием и открытием будет 1пп.
Вот выдержка из кода где выделяется две свечи при условии что закрытие текущей свечи меньше открытия предыдущей.
if(Close[i]<Open[i+1] )
А вот как сделать чтобы был знак равенства,не знаю((((
Вроде доступно объяснил.))
Заранее благодарен за ответ.

Последний раз редактировалось Sam163; 16.09.2016 в 07:56. Причина: Дополнение
Sam163 на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 16.09.2016, 18:49   #5019 (permalink)
Элитный участник
 
Аватар для Ugar
 
Регистрация: 13.03.2009
Сообщений: 2,255
Репутация: 1963
Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar
Сказал(а) спасибо: 349
Поблагодарили 1,892 раз(а) в 1,069 сообщениях
Поинты: 1276
Отправить сообщение для Ugar с помощью ICQ
Сообщение от Sam163 Посмотреть сообщение
if(Close[i]<Open[i+1] )
А вот как сделать чтобы был знак равенства,не знаю((((
Вроде доступно объяснил.))
Заранее благодарен за ответ.
Для целых значений можно было сделать
if(x==y )
Для дробных лучше вот так
if(fabs(Close[i]-Open[i+1])<0.5*_Point )

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Глубокое понимание процессов помогает в работе, но сильно мешает в отдыхе.
http://forexsystems.ru/signaturepics/sigpic3798_1.gif
Чужие программы не переделываю!
Ugar на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 16.09.2016, 21:53   #5020 (permalink)
Активный участник
 
Аватар для vladradon
 
Регистрация: 12.02.2015
Сообщений: 104
Репутация: 37
vladradon
Сказал(а) спасибо: 23
Поблагодарили 37 раз(а) в 25 сообщениях
Поинты: 168
Сообщение от Sam163 Посмотреть сообщение
Добрый день всем.
В программировании абсолютный 0,так что сильно не ругайте.
Интересует следующий момент,как сделать чтобы выделялось коробкой например область где Close свечи совпадает с Open следующей,и наоборот?И возможно чтобы можно было в переменных изменять строгое равенство на +-n пунктов.Пример:
Закрытие свечи 1.3560 и открытие след. свечи 1.3560,и нужно чтобы это две свечи как то обозначались.И чтобы во внешних переменных была строка на какое количество можно изменить равенство.Например n=1,и разница между закрытием и открытием будет 1пп.
Вот выдержка из кода где выделяется две свечи при условии что закрытие текущей свечи меньше открытия предыдущей.
if(Close[i]<Open[i+1] )
А вот как сделать чтобы был знак равенства,не знаю((((
Вроде доступно объяснил.))
Заранее благодарен за ответ.
Я бы порекомендовал поступить от обратного - т.е. если значения не равны, тогда какое-то действие предпринимать. Но не раз сталкивался с тем, что котировки в тесторе выпрыгивают за 5 знаков после запятой (может и 8 и 16 быть). Это, конечно глюки брокеров, но они бывают. Поэтому стоит использовать нормализацию типа:
external int n=1; //Разница между закрытием/открытием свечей
...
if (MatAbs((NormalizeDouble (Close[1], _Digits)-NormalizeDouble (Open[1+1], _Digits))/_Point)<=n)
{
... Какие-то команды, если разница меньше или равно n
}
Так, по крайней мере, можно не беспокоится о количестве знаков после запятой (4-5 или 2-3 для йеноподобных).

Последний раз редактировалось vladradon; 16.09.2016 в 22:22.
vladradon на форуме   Ответить с цитированиемОтветить с цитированием  
Ответ

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


Опции темы

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

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



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


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