Ответ
 
Опции темы
13.09.2016, 19:13
Аватар для _SERG_
_SERG_ Активный участник
Регистрация: 21.07.2009 / Сообщений: 264
Поблагодарили 82 раз(а) / Репутация: 82
Сообщение от eevviill2 Посмотреть сообщение

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

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

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

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

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

Примеры, та не вопрос, отсортируй средствами языка, по убыванию, энный столбец, любой но не столбец 0-го измерения массива, ток не говори, что "Мне это не надо." или "Я этим не пользуюсь.", 4-х мерного массива.
Обычно в примерах заканчивается применением ArraySort(), но с ней тоже не все путем, символы не сортирует.
Или например создав переменную с динамическим именем, создай массив с динамическим именем. Напиши, что получилось.Это так на вскидку.
Вроде бы как есть, что то, но воспользоваться, в расчете на результат не всегда
возможно.
_SERG_ на форуме Ответить с цитированиемОтветить с цитированием  
14.09.2016, 05:01
Аватар для _SERG_
_SERG_ Активный участник
Регистрация: 21.07.2009 / Сообщений: 264
Поблагодарили 82 раз(а) / Репутация: 82
Сообщение от ref2015 Посмотреть сообщение
чей то дотягиваю под БО
БО, это что такое?
_SERG_ на форуме Ответить с цитированиемОтветить с цитированием  
14.09.2016, 07:29
Аватар для eevviill2
eevviill2 Почётный гражданин
Регистрация: 13.08.2016 / Адрес: Бандерівці / Сообщений: 352
Поблагодарили 416 раз(а) / Репутация: 415
  • Отправить сообщение для 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
Аватар для eevviill2
eevviill2 Почётный гражданин
Регистрация: 13.08.2016 / Адрес: Бандерівці / Сообщений: 352
Поблагодарили 416 раз(а) / Репутация: 415
  • Отправить сообщение для eevviill2 с помощью Skype™
Сообщение от _SERG_ Посмотреть сообщение
БО, это что такое?
бінарні опціони.

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Героям слава!
eevviill2 на форуме Ответить с цитированиемОтветить с цитированием  
14.09.2016, 08:11
Аватар для vladradon
vladradon Активный участник
Регистрация: 12.02.2015 / Сообщений: 127
Поблагодарили 52 раз(а) / Репутация: 52
Серж, Привет! Что-то давно не вижу тебя в скайпе... По поводу функции OnTimer() - не работает у меня на 5-ке (MT5), хоть ты тресни, - всегда новые команды срабатывают только при приходе тика. Все одинаково на всех брокерах. На 4-ке пока не пробовал. Не работает ни секундный, ни миллисекундный - все равно ждет тика.
vladradon на форуме Ответить с цитированиемОтветить с цитированием  
14.09.2016, 08:40
Аватар для _SERG_
_SERG_ Активный участник
Регистрация: 21.07.2009 / Сообщений: 264
Поблагодарили 82 раз(а) / Репутация: 82
Сообщение от 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
Аватар для _SERG_
_SERG_ Активный участник
Регистрация: 21.07.2009 / Сообщений: 264
Поблагодарили 82 раз(а) / Репутация: 82
Сообщение от vladradon Посмотреть сообщение
Серж, Привет! Что-то давно не вижу тебя в скайпе... По поводу функции OnTimer() - не работает у меня на 5-ке (MT5), хоть ты тресни, - всегда новые команды срабатывают только при приходе тика. Все одинаково на всех брокерах. На 4-ке пока не пробовал. Не работает ни секундный, ни миллисекундный - все равно ждет тика.
Привет, Влад.
Не сижу, но бываю.
Там народ ваааще замер.
Никакой переписки. СОРМ в действии.
Я, для того чтобы убедиться, что работает OnTImer(), закомментировал все другие стандартные функции, оставил только OnInit() & OnDeinit();
_SERG_ на форуме Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
vladradon (14.09.2016)
14.09.2016, 09:29
Аватар для eevviill2
eevviill2 Почётный гражданин
Регистрация: 13.08.2016 / Адрес: Бандерівці / Сообщений: 352
Поблагодарили 416 раз(а) / Репутация: 415
  • Отправить сообщение для eevviill2 с помощью Skype™
Така ситуація.
Є ОнТаймер і ОнТік
інтервал ОнТаймер 1 сек
12:31 12:32 і тут в Онтік код довго рахує аж 2 секунди
Чи виконається код в ОнТаймер в 12:33
?

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Героям слава!
eevviill2 на форуме Ответить с цитированиемОтветить с цитированием  
14.09.2016, 09:52
Аватар для eevviill2
eevviill2 Почётный гражданин
Регистрация: 13.08.2016 / Адрес: Бандерівці / Сообщений: 352
Поблагодарили 416 раз(а) / Репутация: 415
  • Отправить сообщение для 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
Аватар для _SERG_
_SERG_ Активный участник
Регистрация: 21.07.2009 / Сообщений: 264
Поблагодарили 82 раз(а) / Репутация: 82
Сообщение от 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
Аватар для eevviill2
eevviill2 Почётный гражданин
Регистрация: 13.08.2016 / Адрес: Бандерівці / Сообщений: 352
Поблагодарили 416 раз(а) / Репутация: 415
  • Отправить сообщение для eevviill2 с помощью Skype™
Сообщение от _SERG_ Посмотреть сообщение
Ты уверен, что в коде всё правильно, результатам можно верить?
Опять же логика простая, если ты не понял, зачем тебе это надо?
То тогда, тебе это не надо. Чё париться?!!!
Дик. Цеж весь код.
Шо не поняв?
Все зрозуміло. Або використовувати то або то. Вони паралельно не працюють.

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Героям слава!
eevviill2 на форуме Ответить с цитированиемОтветить с цитированием  
14.09.2016, 16:53
Аватар для _SERG_
_SERG_ Активный участник
Регистрация: 21.07.2009 / Сообщений: 264
Поблагодарили 82 раз(а) / Репутация: 82
Сообщение от eevviill2 Посмотреть сообщение
Дик. Цеж весь код.
Шо не поняв?
Все зрозуміло. Або використовувати то або то. Вони паралельно не працюють.
Да есть приоритет выполнения, но есть иногда необходимость выполнить код, без прихода котировки.
Комбинируй.
Но есть случаи когда тик мешает, но он есть, тем не менее.
_SERG_ на форуме Ответить с цитированиемОтветить с цитированием  
16.09.2016, 07:51
Аватар для Sam163
Sam163 Активный участник
Регистрация: 12.09.2009 / Сообщений: 40
Поблагодарили 47 раз(а) / Репутация: 47
Добрый день всем.
В программировании абсолютный 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
Регистрация: 13.03.2009 / Сообщений: 2,324
Поблагодарили 1,945 раз(а) / Репутация: 2018
Сообщение от 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
Аватар для vladradon
vladradon Активный участник
Регистрация: 12.02.2015 / Сообщений: 127
Поблагодарили 52 раз(а) / Репутация: 52
Сообщение от 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 Выкл.



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


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