Внесу поправку. В логе нашел несколько ошибок вида "invalid function parameter value", при попытке модификации ордеров. Функции OrderModify передававиль неправильные значения стопов и тейков, в результате ордера модифицированы не были.
Да,а тоже у себя обнаружил подобную ошибку...Парни,может быть вылечим её как нибудь??Вообще избавится реально от неё???Кто в этих делах соображает ,сккжите,есть возможность избавится от этой ошибки??
Connect495, скажите,если робот в течении двух недель подстраивается под рынок...куда он денет ордера с большими минусами???Если он их закроет по стоп лоссу,то от депо если останется половина,то это очень даже ГУД!!!А если нет,то они так и будут висеть до прихода Коли Маржова???
Ошибка вида "invalid function parameter value", при попытке модификации ордера - говорит о том что установлена неправильная цена параметра покупки или продажи - значит вам необходимо проверить соответствие версии робота для терминалов с 4 и 5 значными котировками - для терминала вашего ДЦ (используйте другую версию программы).
Если не помогает - значит у вашего ДЦ существует ограничение на одновременное количество открываемых ордеров (просто уменьшите количество пар или смените ДЦ).
Connect, не вводите людей в заблуждение. Ошибка ERR_INVALID_FUNCTION_PARAMVALUE (4051) свидетельствует об ошибочных параметрах, переданных в функцию (OrderModify в нашем случае). Это может происходить только в случае ошибок в логике эксперта, а уж никак не из-за количества знаков после запятой у ДЦ или количества ордеров.
При превышении количества возможных ордеров сервер вернет ошибку 148 ERR_TRADE_TOO_MANY_ORDERS. При неправильных стопах (если версию для четырех знаков поставить на пятизнак) - ошибку 130 ERR_INVALID_STOPS.
Ошибку 4051 возвращает не сервер, а терминал, и говорит это лишь о ваших ошибках при написании сова. Если не хотите править так и скажите, а дезинформировать народ не нужно.
Заметил на реальном счете, что когда сцена уходит и эксперт не открывает новые позиции для порогов 3-4. Так как они зависли в торговле.
Поставил на тест для просмотра --- почему так и вылетает OrderSend error 130
Тест показал, что не ВСЕ ордера были закрыты и по этому не может открыть новую пачку ордеров. И будет так висеть, до тех пор, пока курс валюты не вернётся назад. Может вернуться через 1 час или через 365 дней. А ордера так и будут висеть и ждать своего часа.:question:
Посмотрите внимательно в архив.
Вот зависла пачка с ордерами:without:
275 2010.07.13 18:55 sell stop 83 0.01 1.2687 1.7689 1.2668 0.00 1029.71
279 2010.07.14 15:09 sell 83 0.01 1.2687 1.7689 1.2668 0.00 1029.31
597 2010.07.23 14:35 close at stop 83 0.01 1.2898 1.7689 1.2668 -21.60 1056.35
276 2010.07.13 18:55 buy limit 84 0.01 1.2689 0.7689 0.0000 0.00 1029.71
280 2010.07.14 15:09 buy 84 0.01 1.2689 0.7689 0.0000 0.00 1029.31
596 2010.07.23 14:35 close at stop 84 0.01 1.2896 0.7689 0.0000 20.58 1077.95
Ну хорошо специально для вас поясню ситуацию - робот пытается закрыть, открыть или модифицировать не существующий ордер. Да признаю - ошибка кода присутствует, но на работу робота она не влияет ни коим образом. Копатся и устранять причину - сейчас просто нет времени. Хотя в принципе решение есть:
1. Можно было бы ввести MagicNumber для того, чтобы лучше отслеживать позиции.
2. Когда робот открывает и "тянет" первую позицию, то после того, как он нашел позицию с заданным меджиком и символом понадобится делать выход из цикла.
3. "Working==true && Tip==0 && Bid<=OrchSMMA_0" - после открытия позиции Working сразу установится в true, и если позиций больше нет, то в false так и не сбросится.
4. Если нет позиций и ордеров - цикл пройдет, а значения переменных Tip & Ticket не изменит. Условия из пункта 3 будут соблюдены (Working = true, Tip вообще не инициализирован, а цена может и упасть ниже орхидеи), всё - советник будет закрывать,- но закрывать нечего, поэтому добавить Tip & Ticket (в начале старта их можно сделать -1), если Ticket <= 0 -- уже не выполняет закрытие (не существующих ордеров), вот и все.
Спасибо за пояснения, только не забывайте, что мне доступен только декомпил, поэтому переменных с такими именами там нет И все же версия 0.92 ни в коем разе не финальная. Жуков еще ловить и ловить. Если будет не лень займусь сам
Ошибка OrderSend error 130 - говорит о неправильно выставленных стопах - это могло произойти по разным причинам (вашей не внимательности).
Решение:
1. Удалите окно графика пары с ошибкой (робот на данной паре отключится),
2. Закройте все сделки и отложенники по данной паре,
3. Создайте окно этой пары вновь - установите на него робот и смотрите за появлением ошибок на этой паре (если ошибки повторятся - количество пар увеличивать нельзя - повторите пункты 1 и 2).
4. Замените любую пару на любимую (если была удалена таковая) естественно с прохождением пунктов 1 и 2 по заменяемой паре.
В чём заключается моя не внимательность, при работе эксперта??? Работаю на реале на 4фю. Наблюдал Я такие ошибки почти на всех парах.
Что все пары отключить? И с чем тогда работать? Выходил Я из этих ситуаций только одним способом. При появление такой ошибки, когда МТС не может открыть новые ордера. Я смотрел где идут зависшие ордера открытые в одно время с одним номером порога, закрывал их в ручную и эксперт продолжал работать в нормальном режиме. Мне Ваш эксперт пока нравиться, но он иногда совершает ошибки. Вот про них Я и пишу, а Вы по возможности их можете устранить. Сделайте визуальный тест как у меня в архиве и Вы уведите сами про что, Я Вам пишу.
На тестере стоит одна пара. Закрылись все ордера по всем порогам, кроме порога №3 и цена ушла далеко-далеко. Пока не закроется этот порог №3 эксперт не открывает новых ордеров.
А когда цена возвратится назад???
Для открытия новых ордеров.
Или скажите что тест это ерунда и цена на реале не куда не уходит???
и эксперт всегда откроет новые ордера!!!
Не зависимо куда ушла цена при зависших ордерах.
Вот по этому и вылетает ошибка № 139
Сделайте визуальный тест как у меня в архиве и Вы уведите сами про что, Я Вам пишу.