Скачать MetaTrader 5

build 604 что значит сообщение в журнале Tester: 0 symbol not found

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Узнай последние события MQL5.community!
Dmitriy Smaglyuk
1900
Dmitriy Smaglyuk 2014.02.21 13:02 

Здравствуйте!

Обновился терминал от Альпари.

При тестировании советника в журнале появляются множество записей такого типа: 2014.02.21 16:32:16.055 2013.09.02 11:15 Tester: 0 symbol not found.

Не могу найти причину ошибки. В старой версии терминала такого не припомню.

Поиск по форуму ничего не дал.

Подскажите, пожалуйста, в чём проблема.

Спасибо

Vladislav Andruschenko
91628
Vladislav Andruschenko 2014.02.21 13:08  
пишет что валюта с именем "0" не найдена
Dmitriy Smaglyuk
1900
Dmitriy Smaglyuk 2014.02.21 13:17  
Vladon:
пишет что валюта с именем "0" не найдена


При выставлении ордеров на покупку - всё нормально. При выставлении ордеров на продажу происходит такая ерунда. В функции OrderSend для определения финансового инструмента используется функция Symbol().

Сейчас переделаю на переменную _Symbol. Посмотрим, что получится

Vladislav Andruschenko
91628
Vladislav Andruschenko 2014.02.21 13:21  

а у меня тоже такая беда была,

только у меня просто в других функциях Symbol равнялся 0

прикрепите код

Dmitriy Smaglyuk
1900
Dmitriy Smaglyuk 2014.02.21 13:27  

Сейчас вот так

OrderSend(_Symbol, OP_BUY, lot, Ask, SP, Bid-sl*Point, Bid+tp*Point, NULL, Mag,0, CLR_NONE)

До того использовал функцию Symbol()

Проблема осталась

TarasBY
1739
TarasBY 2014.02.21 15:30  
smdm:

Сейчас вот так

OrderSend(_Symbol, OP_BUY, lot, Ask, SP, Bid-sl*Point, Bid+tp*Point, NULL, Mag,0, CLR_NONE)

До того использовал функцию Symbol()

Проблема осталась

Внимательно пробежитесь по своему коду (не поленитесь несколько раз, если не найдёте с первого раза): такая ошибка "вылазит" когда в функцию вместо имени инструмента передаётся "0".

P.S. Это не только упомянутая OrderSend(). Это могут быть, например, iTime(), iBarShift(), MarketInfo() и т.д.

Vitalie Postolache
12106
Vitalie Postolache 2014.02.21 16:03  
smdm:

Сейчас вот так

OrderSend(_Symbol, OP_BUY, lot, Ask, SP, Bid-sl*Point, Bid+tp*Point, NULL, Mag,0, CLR_NONE)

До того использовал функцию Symbol()

Проблема осталась


NULL ещё можно вместо Symbol(). И искать надо во всём коде а не только в торговых функциях.
Dmitriy Smaglyuk
1900
Dmitriy Smaglyuk 2014.02.21 16:47  
Ок. Спасибо. Буду искать.
Dmitriy Smaglyuk
1900
Dmitriy Smaglyuk 2014.02.22 09:56  

Так, теперь обновился до 610-го билда. Теперь вместо сообщения Tester: 0 symbol not found постоянно выскакивают сообщения типа

2014.02.22 13:31:47.594 2013.09.02 09:32 MyIndicator EURUSD,M5: destination array is of incompatible type

В моём пользовательском индикаторе MyIndicator 3 буфера. В третий буфер в соответствии с сигналами индикатора заносятся всего 3 значения: 0, 1 и 2.

Эти значения являются сигналами, которые из 3-го буфера передаются в эксперт:

0 - ожидание

1- продавать

2 - покупать

В индикаторе объявлен массив double POZA[]. Этот массив связан с 3-м буфером индикатора SetIndexBuffer(2, POZA).

В зависимости от расчётов, производимых индикатором в элемент массива POZA[0] и заносятся значения 0, 1 и 2.

Далее в коде индикатора эти значения считываются в переменную FPS типа double таким образом:

FPS = iCustom(NULL, 0, "MyIndicator", 2, 0)

В чём проблема?

Я не программер, последний раз занимался этим 15 лет назад в институте. Прошу помощи.

В 509 билде ничего этого не было.

P.S. Сам эксперт вроде работает, ордера выставляет правильно
Alekseu Fedotov
818
Alekseu Fedotov 2014.02.22 10:32  
smdm:

Так, теперь обновился до 610-го билда. Теперь вместо сообщения Tester: 0 symbol not found постоянно выскакивают сообщения типа

2014.02.22 13:31:47.594 2013.09.02 09:32 MyIndicator EURUSD,M5: destination array is of incompatible type

В моём пользовательском индикаторе MyIndicator 3 буфера. В третий буфер в соответствии с сигналами индикатора заносятся всего 3 значения: 0, 1 и 2.

Эти значения являются сигналами, которые из 3-го буфера передаются в эксперт:

0 - ожидание

1- продавать

2 - покупать

В индикаторе объявлен массив double POZA[]. Этот массив связан с 3-м буфером индикатора SetIndexBuffer(2, POZA).

В зависимости от расчётов, производимых индикатором в элемент массива POZA[0] и заносятся значения 0, 1 и 2.

Далее в коде индикатора эти значения считываются в переменную FPS типа double таким образом:

FPS = iCustom(NULL, 0, "MyIndicator", 2, 0)

В чём проблема?

Я не программер, последний раз занимался этим 15 лет назад в институте. Прошу помощи.

В 509 билде ничего этого не было.

P.S. Сам эксперт вроде работает, ордера выставляет правильно

Ругается что не тот тип, подозреваю что double POZA[], должен объявлен так int POZA[]
Dmitriy Smaglyuk
1900
Dmitriy Smaglyuk 2014.02.22 10:36  

Никак нет. Вот выдержка из справки:

SetIndexBuffer

Связывает указанный индикаторный буфер с одномерным динамическим массивом типа double.

bool SetIndexBuffer(
int index, // индекс буфера
double buffer[] // массив
);

123
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий