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

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

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

Последний раз редактировалось _SERG_; 13.09.2016 в 19:53.
13.09.2016, 22:39
Аватар для eevviill2
eevviill2 eevviill2 на форуме Почётный гражданин
Регистрация: 13.08.2016 / Адрес: Бандерівці / Сообщений: 392
Поблагодарили 453 раз(а) / Репутация: 452
  • Отправить сообщение для eevviill2 с помощью Skype™
...
На MQL4 писать, это вывих головного мозга делать.
...
А шо з ним?
Ну пару прикладів, бо мені дуже подобається і вивихом рахую mql5.
Героям слава!
14.09.2016, 03:56
Аватар для ref2015
ref2015 ref2015 вне форума Интересующийся
Регистрация: 28.03.2015 / Сообщений: 8
Поблагодарили 1 раз в 1 сообщении / Репутация: 2
Ты то сам пишешь?
Или чей то код дотягиваешь?
Про "дописывание", так функции не просто в советник надо дописывать, а в соответствви с твоей стратегией, тобышь, и к месту и ко времени.
Выдели события, которые происходят у тебя по стратегии, зафиксируй условно время сигнала, создай счётчик, задействованный при проверке, дождись когда Начальное время + счётчик будут больше времени ожидания, и выполни команду.
Всё.

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

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

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

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

Последний раз редактировалось eevviill2; 14.09.2016 в 07:33.
14.09.2016, 07:29
Аватар для eevviill2
eevviill2 eevviill2 на форуме Почётный гражданин
Регистрация: 13.08.2016 / Адрес: Бандерівці / Сообщений: 392
Поблагодарили 453 раз(а) / Репутация: 452
  • Отправить сообщение для eevviill2 с помощью Skype™
БО, это что такое?
бінарні опціони.
Героям слава!
14.09.2016, 08:11
Аватар для vladradon
vladradon vladradon на форуме Активный участник
Регистрация: 12.02.2015 / Сообщений: 144
Поблагодарили 58 раз(а) / Репутация: 57
Серж, Привет! Что-то давно не вижу тебя в скайпе... По поводу функции OnTimer() - не работает у меня на 5-ке (MT5), хоть ты тресни, - всегда новые команды срабатывают только при приходе тика. Все одинаково на всех брокерах. На 4-ке пока не пробовал. Не работает ни секундный, ни миллисекундный - все равно ждет тика.
14.09.2016, 08:40
Аватар для _SERG_
_SERG_ _SERG_ на форуме Активный участник
Регистрация: 21.07.2009 / Сообщений: 264
Поблагодарили 82 раз(а) / Репутация: 82
Емм. mql4 вже давно ООП теж, нє?

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

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

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


Героям слава!
14.09.2016, 13:15
Аватар для _SERG_
_SERG_ _SERG_ на форуме Активный участник
Регистрация: 21.07.2009 / Сообщений: 264
Поблагодарили 82 раз(а) / Репутация: 82
Ах..ть!!!
І нашо той ОнТаймер????
Дибі.и.
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.
14.09.2016, 14:06
Аватар для eevviill2
eevviill2 eevviill2 на форуме Почётный гражданин
Регистрация: 13.08.2016 / Адрес: Бандерівці / Сообщений: 392
Поблагодарили 453 раз(а) / Репутация: 452
  • Отправить сообщение для eevviill2 с помощью Skype™
Ты уверен, что в коде всё правильно, результатам можно верить?
Опять же логика простая, если ты не понял, зачем тебе это надо?
То тогда, тебе это не надо. Чё париться?!!!
Дик. Цеж весь код.
Шо не поняв?
Все зрозуміло. Або використовувати то або то. Вони паралельно не працюють.
Героям слава!
14.09.2016, 16:53
Аватар для _SERG_
_SERG_ _SERG_ на форуме Активный участник
Регистрация: 21.07.2009 / Сообщений: 264
Поблагодарили 82 раз(а) / Репутация: 82
Дик. Цеж весь код.
Шо не поняв?
Все зрозуміло. Або використовувати то або то. Вони паралельно не працюють.
Да есть приоритет выполнения, но есть иногда необходимость выполнить код, без прихода котировки.
Комбинируй.
Но есть случаи когда тик мешает, но он есть, тем не менее.
16.09.2016, 07:51
Аватар для Sam163
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. Причина: Дополнение
16.09.2016, 18:49
Регистрация: 13.03.2009 / Сообщений: 2,329
Поблагодарили 1,949 раз(а) / Репутация: 2026
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
Чужие программы не переделываю!
16.09.2016, 21:53
Аватар для vladradon
vladradon vladradon на форуме Активный участник
Регистрация: 12.02.2015 / Сообщений: 144
Поблагодарили 58 раз(а) / Репутация: 57
Добрый день всем.
В программировании абсолютный 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.
Ответить

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


Опции темы

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

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



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


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