Ваши вопросы по языку MQL4

edvinascavadimasca

Интересующийся
Можно завести булеву переменную, проверять её значение и переключать при открытии ордера.

а етот метод как написать
 

iii237

Активный участник
Может кто подскажет: ещё довольно обильно встречаются команды из старых версий MQL4, в частности Highest и Lowest. Они отличаются по синтаксису от новых iHighest и iLowest. Толкование по ним (по старым) не могу найти, а выпаривать истину из контекста влом.
 

Ugar

Гуру форума
Может кто подскажет: ещё довольно обильно встречаются команды из старых версий MQL4, в частности Highest и Lowest. Они отличаются по синтаксису от новых iHighest и iLowest. Толкование по ним (по старым) не могу найти, а выпаривать истину из контекста влом.
Из старого терминала:
int iHighest( string symbol, int timeframe, int type, int count=WHOLE_ARRAY, int start=0)Возвращает индекс найденного наибольшего значения (смещение относительно текущего бара). Параметры:
symbol - Символьное имя инструмента, на данных которого будет производиться поиск. NULL означает текущий символ.
timeframe
- Период. Может быть одним из периодов графика. 0 означает период текущего графика.
type - Идентификатор таймсерии. Может быть любым из значений иденитификаторов таймсерий.
count
- Число элементов таймсерии (в направлении от текущего бара в сторону возрастания индекса), среди которых должен быть произведен поиск.
start
- Индекс (смещение относительно текущего бара) начального бара, с которого начинается поиск наибольшего значения. Отрицательные значения игнорируются и заменяются нулевым значением.
Из нового терминала:
iHighest
Возвращает индекс наибольшего найденного значения (смещение относительно текущего бара) соответствующего графика.
int iHighest(
string symbol, // символ
int timeframe, // период
int type, // идентификатор таймсерии
int count, // число элементов
int start // индекс
);

Параметры
symbol
[in] Символьное имя инструмента, на данных которого будет производиться поиск. NULL означает текущий символ.
timeframe
[in] Период. Может быть одним из значений перечисления ENUM_TIMEFRAMES. 0 означает период текущего графика.
type
[in] Идентификатор таймсерии, в которой будет производится поиск. Может быть любым из значений иденитификаторов таймсерий.
count=WHOLE_ARRAY
[in] Число элементов таймсерии (в направлении от текущего бара в сторону возрастания индекса), среди которых должен быть произведен поиск.
start=0
[in] Индекс (смещение относительно текущего бара) начального бара, с которого начинается поиск наибольшего значения. Отрицательные значения игнорируются и заменяются нулевым значением.
Возвращаемое значение
Индекс наибольшего найденного значения (смещение относительно текущего бара) соответствующего графика или -1 в случае ошибки. Для получения дополнительной информации об ошибке необходимо вызвать функцию GetLastError().
Ищи отличия.
 

iii237

Активный участник
Я ваще-то спрашивал про команды Highest и Lowest, а не про iHighest и iLowest.
 

iii237

Активный участник
О, не заметил. Но ведь это вообще дремучие функции. Наверное ещё из MQL3 перекочевали.

Однако встречаются. В справочнике MQL4 просто сказано, что лучше употреблять новые. И что старые тем не менее нормально воспринимаются компилятором и терминалом (это действительно так, проверено). А описания старых нет.
 

Ugar

Гуру форума
Однако встречаются. В справочнике MQL4 просто сказано, что лучше употреблять новые. И что старые тем не менее нормально воспринимаются компилятором и терминалом (это действительно так, проверено). А описания старых нет.
Там ещё написано:
В процессе дальнейшей разработки языка MQL4 в целях систематизации некоторые функции были переименованы и перемещены из одной группы в другую.
Возможно, кроме названия, в них ничего не поменяли. Обычно принято, справочники воспринимать дословно.
 

iii237

Активный участник
Возможно, кроме названия, в них ничего не поменяли.

У меня реальный живой случай, где количество аргументов разное (конечно, это может быть "установкой по умолчанию отсутствующих аргументов"). Но всё равно непонятно, там такой аргумент, который можно истолковать двояко, даже трояко.

С другой стороны, я вижу, что никто не знает прямого ответа на вопрос. Если бы не спрашивал, а долбал контекст, уже два раза бы нашел ответ.
 

Дмитрий007

Гуру форума
народ, а по какой причине сов может не видеть истории при тестировании? Вот загрузил котировки до 2012 года, а сов берет для теста только от 2014 максимум. Все ограничения сняты. Котировки удалял, перегружал заново. Вот такие пироги. В чем проблема?

Советник пишет в журнале, что нет котировок. Хотя они есть.
 

Viko2000

Почетный гражданин
народ, а по какой причине сов может не видеть истории при тестировании? Вот загрузил котировки до 2012 года, а сов берет для теста только от 2014 максимум. Все ограничения сняты. Котировки удалял, перегружал заново. Вот такие пироги. В чем проблема?

Советник пишет в журнале, что нет котировок. Хотя они есть.

Ну разве что, боту нужны для входа другие ТФ, а их нет.:embrace:;)
 

_SERG_

Активный участник
народ, а по какой причине сов может не видеть истории при тестировании? Вот загрузил котировки до 2012 года, а сов берет для теста только от 2014 максимум. Все ограничения сняты. Котировки удалял, перегружал заново. Вот такие пироги. В чем проблема?

Советник пишет в журнале, что нет котировок. Хотя они есть.
Про историю котировок, как про "суслика", ты его видишь? Нет. А он есть!
Журнал покаж, а то может не тот читаешь?
 

Дмитрий007

Гуру форума
Про историю котировок, как про "суслика", ты его видишь? Нет. А он есть!
Журнал покаж, а то может не тот читаешь?


Щас в журнале вообще чисто. Я в плане ошибок. Сова нужна?

В другом терминале от другого брокера видит немного дальше истории, в другом меньше. Видимо брокеры что-то накрутили, черт ногу сломит.
 

Вложения

  • 1.png
    1.png
    27,6 КБ · Просмотры: 27
  • 2.png
    2.png
    48,1 КБ · Просмотры: 31
  • Текстовый документ.txt
    27,2 КБ · Просмотры: 18
  • stochastic_sova+martin.mq4
    5,4 КБ · Просмотры: 26
Последнее редактирование:

vlad_123

Местный знаток
народ, а по какой причине сов может не видеть истории при тестировании? Вот загрузил котировки до 2012 года, а сов берет для теста только от 2014 максимум. Все ограничения сняты. Котировки удалял, перегружал заново. Вот такие пироги. В чем проблема?

Советник пишет в журнале, что нет котировок. Хотя они есть.
Настройки терминала поправил?
Сервис - Настройки - Графики - Макс. баров истории
 

_SERG_

Активный участник
Щас в журнале вообще чисто. Я в плане ошибок. Сова нужна?

В другом терминале от другого брокера видит немного дальше истории, в другом меньше. Видимо брокеры что-то накрутили, черт ногу сломит.
Спасибо, нам чужого не надо. :laugh:
ДЦ, не долго историю хранят, да в принципе она и не особо важна для тебя учитывая установленные параметры тестирования.
Более важны те условия , которые ты на тестере хочешь проверить.
Т.Е., если стратегия правильная то нужны только участки котировок, на которые заточен твой сов, а дальше просто статистика. (ИХМО)
Поэтому гнаться за котировками за длительный период , может оказаться не совсем целесообразно, а выбрать "интересные" участки можно и на более коротком периоде.
Более длительный период, по моему мнению, наоборот, не позволяет "заточить" сову правильно, обратить внимание на мелочи, из которых состоит ВЕЛИКОЕ. :laugh: Тут конечно риторика, но сов размером 5 кило, нормально работать никогда не будет.

Да, извини, про цель несколько отвлёкся.

При мартыне и способе тестирования, париться
на счёт истории котировок, вообще не стоит.
 
Последнее редактирование:

Viko2000

Почетный гражданин
да, все на максимум, история загружена, а толку нет(

_SERG_, Вам бы стихи писать :D А сов недооценили, все гениальное - просто ;)

Я бот пытался прогнать на котирах 99.9, сделки не открывает. У меня история за любой год, любой ТФ. Значит условие входа нет, если вообще правильно описано в алгоритме. Я бегло посмотрел. Да чума, лучше заново идею в новом боте реализовать. :embrace:
 
Верх