Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
1) Провести RefreshRates()
2) Записать lastBid=Bid (или для Ask)
3) Записать lastMarketBid=MarketInfo(Symbol(),MODE_BID)
4) В случае ошибки после торговой операции вывести номер ошибки и эти значения.
При этом увидите,что lastBid==lastMarketBid
Если нет - сообщите.
А это что такое?
Самый что ни на есть бесконечный цикл.
Ваша функция start начинает работу с неизвестно каким торговым окружением (она и запускается-то из функции init)
Я не вижу ни одного вызова RefreshRates, которые обновляют торговое окружение: Bid, Ask, Bars, Open[], High[], Low[], Close[], Time[], Volume[]
Вы работаете с устаревшими необновляемыми копиями данных и удивляетесь, почему цена неправильная
А это что такое?
Самый что ни на есть бесконечный цикл.
Ваша функция start начинает работу с неизвестно каким торговым окружением (она и запускается-то из функции init)
Я не вижу ни одного вызова RefreshRates, которые обновляют торговое окружение: Bid, Ask, Bars, Open[], High[], Low[], Close[], Time[], Volume[]
Вы работаете с устаревшими необновляемыми копиями данных и удивляетесь, почему цена неправильная
Парни, да поймите вы одну простую вещь. Все эти циклы я сделал СПЕЦИАЛЬНО для этого случая. Чтоб максимально ускорить "познавательный" процесс. В противном случае, можно было днями (или неделями) сидеть и ждать повторения ситуации. Этот зацикленный советник - просто демонстрация на 5 минут. Запустил, посмотрел и выкинул. Вы что, в институтах лабораторные работы прогуливали?
Если для Вас очень важен положительные результаты торговых операций, тогда Вам необходимо серьёзно подойти к обработке ошибок. Специально для такого случая мы написали в документации по языку специальный топик "MQL4: Ошибки исполнения"