- [ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда.
- Почему выскакивает постоянна эта ошибка
- Код ошибки 0
GetLastError() возвращает 0 во время открытия ордера и ордер не открываеться. В справке "ERR_NO_ERROR - 0 - Нет ошибки". Может я чего недопонимаю, но при "Нет ошибки" ордер должен бы открываться. Обьясните что не так!!!
Покажите код открытия, где открываете, счет, тестер?
Я для верности иногда по коду расставляю вывод сообщений с номерами. чтоб по номеру можно было отследить где ошибка произошла.
А ещё как вариант - вы может сделали так:
if (GetLastError()>0) Print(GetLastError())
Если вы вызываете два раза подряд GetLastError. то у вас возникают непонятки.... функция GetLastError - только первый раз даёт значение
в принципе мне всеравно что там за ошибка, лишь бы ордер открыло. с ошибками я потом разбираться буду... но вот если без ошибки и ордер не открываеться, то это мягко говоря странно. исходник не выложу - секрет :) вот разве что кусочек:
ticket = OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-stopLoss*Point,Ask+takeProfit*Point,"BuyOrder",0,0,Green);
if( ticket == -1 ) //если возникла ошибка
{
Print("!!!ERROR: "+GetLastError());
.....................
в принципе мне всеравно что там за ошибка, лишь бы ордер открыло. с ошибками я потом разбираться буду... но вот если без ошибки и ордер не открываеться, то это мягко говоря странно. исходник не выложу - секрет :) вот разве что кусочек:
ticket = OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-stopLoss*Point,Ask+takeProfit*Point,"BuyOrder",0,0,Green);
if( ticket == -1 ) //если возникла ошибка
{
Print("!!!ERROR: "+GetLastError());
.....................
Да не надо нам Ваших секретов) Интересует происходит ли вообще отсылка ордера? Может не выполняется условие, как следствие не происходит выполнение OrderSend, а принт вообще из друго места печатается. Смотрите, дело Ваши, вряд ли советник не открывающий сделки шибко граален) Но мы здесь не экстрасенсы...
Да не надо нам Ваших секретов) Интересует происходит ли вообще отсылка ордера? Может не выполняется условие, как следствие не происходит выполнение OrderSend, а принт вообще из друго места печатается. Смотрите, дело Ваши, вряд ли советник не открывающий сделки шибко граален) Но мы здесь не экстрасенсы...
:) после выполнения условия должен открываться ордер и проигрываться звуковой сигнал. так вот playsound() работает, а ордер не открываеться.
Да не надо нам Ваших секретов) Интересует происходит ли вообще отсылка ордера? Может не выполняется условие, как следствие не происходит выполнение OrderSend, а принт вообще из друго места печатается. Смотрите, дело Ваши, вряд ли советник не открывающий сделки шибко граален) Но мы здесь не экстрасенсы...
Еще одна причина почему хранить ордеры в тикетах ЗЛО -- в вышеописанном случае ордер на самом деле ордер может открыться, ну и на тестере такого вряд ли воспроизведется.
ИМХО
Еще одна причина почему хранить ордеры в тикетах ЗЛО -- в вышеописанном случае ордер на самом деле ордер может открыться, ну и на тестере такого вряд ли воспроизведется.
ИМХО
дело в том что это "наполовину" советник. я вручную задаю направление тренда, а уж даный советник выполняет открытие ордера в нужном направлении, когда условия на открытие выполняються. в тестере открывались ордера. а вот сегодня проверил на демосчету - вылезла ошибка, вернее ордер не открылся. рассуждать можно долго что да как. но вот как решить даную проблемму??? помогите!!!
P.S.: getlasterror() выдает ошибку 0 даже при первом вызове!
дело в том что это "наполовину" советник. я вручную задаю направление тренда, а уж даный советник выполняет открытие ордера в нужном направлении, когда условия на открытие выполняються. да, вы правы. в тестере открывались ордера. а вот сегодня проверил на демосчету - вылезла ошибка, вернее ордер не открылся. рассуждать можно долго что да как. но вот как решить даную проблемму??? помогите!!!
Да не решишь ее никак. Ордер отослан, ответа нету -- причина -- хз, может обрыв связи, может терминал загружен сильно.
Поэтому снимок аккаунта нужно делать тогда, когда это непосредственно нужно. Медленней, но надежно.
Не решает проблему полностью, но логических ошибок не будет точно. А на этот ордер можно забить -- он или открыт или нет, но это мы узнаем потом....
Как? Угададать? Проинтуичить? Кофейной гущи наварить? Карты раскинуть?)
Посмотрите, что в логах терминала при работе на демо? Есть там вообще отправка ордера? Попробуйте отсылку ордера без СЛ и ТП. Какой ДЦ?
елки-палки!!! все дело было в лосе/профите. спасибо за помощь!!!
кстати, как прекратить работу советника? вызовом deinit()?
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования