Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 1124
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Так любой устанавливает стоп по цене. Только пункты умножают на _Point и плюсуют к текущей цене. Но никто не запрещает указать конкретную цену.
Нужно чтобы он для всех открытых ордеров выставлял стоп по заданной цене. К примеру открывается три ордера а в советнике заранее прописан стоп допустим 1,32511... Вот такой надо)
Приветствую мужики! Объясните мне логику работы сервера->терминала->советника. У меня это вопрос возник из за прописания в советник функции обработки ошибок. Насколько я понял по учебнику, ТИК это: СЕРВЕР ---> передаёт котировки цен ---> ТЕРМИНАЛ ---> даёт управление советнику ---> СОВЕТНИК (обработал тик-цикл) ---> в обратном направлении короч пошёл.
ВОПРОС: В самом начале когда сервер передаёт котировки, только котировки??? или в этом ТИКЕ есть сразу данные об различных ошибках на сервере (если конечно вдруг случается) ?
Тяжело программировать непонимая логики
Приветствую мужики! Объясните мне логику работы сервера->терминала->советника. У меня это вопрос возник из за прописания в советник функции обработки ошибок. Насколько я понял по учебнику, ТИК это: СЕРВЕР ---> передаёт котировки цен ---> ТЕРМИНАЛ ---> даёт управление советнику ---> СОВЕТНИК (обработал тик-цикл) ---> в обратном направлении короч пошёл.
ВОПРОС: В самом начале когда сервер передаёт котировки, только котировки??? или в этом ТИКЕ есть сразу данные об различных ошибках на сервере (если конечно вдруг случается) ?
Тяжело программировать непонимая логики
Ошибки приходят независимо от тиков.
Я тогда не понимаю. Функции обработки ошибок нужны только для торговых случаев, я правильно понял? Это перед открытием ордера или перед модифицированием ордера. Так? Т.е. Перед тем как открыть ордер, я должен вначале убедиться что сейчас ошибок нет на серваке, если нет ошибок, то смело открываю ордер?
Мужики, я советники создавал без прописании этих функции, меня брокер постоянно посылал куда подальше, скорее всего из за куча запросов и упрямства моего советника. И из за этого моему советнику больше не давали торговать. Кому не лень, объясните мне по русски, в учебнике пишут, да, что обязательно надо, а что и как, подробностей нет.
Если ошибки приходят независимо от ошибок, то тогда GetLastError() сам запрашивает у сервера есть ли ошибки?
Я тогда не понимаю. Функции обработки ошибок нужны только для торговых случаев, я правильно понял? Это перед открытием ордера или перед модифицированием ордера. Так? Т.е. Перед тем как открыть ордер, я должен вначале убедиться что сейчас ошибок нет на серваке, если нет ошибок, то смело открываю ордер?
Мужики, я советники создавал без прописании этих функции, меня брокер постоянно посылал куда подальше, скорее всего из за куча запросов и упрямства моего советника. И из за этого моему советнику больше не давали торговать. Кому не лень, объясните мне по русски, в учебнике пишут, да, что обязательно надо, а что и как, подробностей нет.
Если ошибки приходят независимо от ошибок, то тогда GetLastError() сам запрашивает у сервера есть ли ошибки?
Ну нету на сервере ошибок по клиентской части, никак, никогда, нигде, вообще нету, поймите это для начала.
Сервер возвращает цифровой код в ответ на торговый приказ клиента, только и всего. Код 0 - всё пучком, команда прошла без проблем. Код больше нуля - есть проблемы, терминал в журнал записывает код ошибки и расшифровку.
В советнике не просто нужно учитывать обработку кода возврата сервера, программист обязан учитывать ошибки до отсылки команды на сервер и предотвращать отсылку неправильных значений в торговых приказах, которые приведут к ошибкам. Тогда торговлю советниками не забанят. А иначе - получите распишитесь.
Пример: На счёте не хватает средств на покупку 1 лота евордоллара, советник этого не учитывает и бомбит сервер приказами купить этот 1 лот каждый тик. Естественно сервер такой счёт в лучшем случае поставит на ручной режим.
Если советник сначала проверит маржу, нелбходимую на покупку 1 лота, потом сравнит это значение и свободние средства на счёте, увидит, что средств не хватит и торговать не станет, а вместо этого предупредит трейдера, то всё в порядке, это пример хорошего поведения.
И так надо учитывать все возможные варианты ошибок, где можно - исправлять значение, где нельзя - просто блокировать торговлю и выдавать трейдеру предупреждение о неполадках.
Я тогда не понимаю. Функции обработки ошибок нужны только для торговых случаев, я правильно понял? Это перед открытием ордера или перед модифицированием ордера. Так? Т.е. Перед тем как открыть ордер, я должен вначале убедиться что сейчас ошибок нет на серваке, если нет ошибок, то смело открываю ордер?
Мужики, я советники создавал без прописании этих функции, меня брокер постоянно посылал куда подальше, скорее всего из за куча запросов и упрямства моего советника. И из за этого моему советнику больше не давали торговать. Кому не лень, объясните мне по русски, в учебнике пишут, да, что обязательно надо, а что и как, подробностей нет.
Если ошибки приходят независимо от ошибок, то тогда GetLastError() сам запрашивает у сервера есть ли ошибки?
Принцип: собираетесь совершить торговую операцию, логически нужно понимать "хватит-ли денег на сделку?" делаем проверку на достаточность средств. Следующий шаг: "А правильный-ли уровень у ордеров, позволяет дистанция или нет?" - проверка. Это проверка на вашей стороне чтоб не трогать сервер.
Далее: проверки пройдены и прошли успешно - отправляем приказ на сервер и ждём ответ, функция GetLastError() принимает ответ от сервера, если нет ошибок "0", если есть ошибки, то возвращает код ошибки, соответственно и возвращает ваш приказ на доработку. Дальше задача состоит в том, чтоб обработать полученную ошибку и принять решение, бомбить сервер повторно, или всё-же успокоиться. Коды ошибок есть в справке.
PS. пока писал, уже ответили)
Vitalie Postolache и Vitaly Muzichenko Большое Вам человеческое СПАСИБО!!! )) Представляете, до меня дошло наконец таки))
Прекрасно) Тогда допишу. Представьте ситуацию: ваш ДЦ котирует в пятницу до 23-59, но торговые запросы обрабатывает только до 23-50, у вас стоит советник и у него там где-то пересеклись стохастики и он начинает отправлять запрос на сервер и получает ошибку "Рынок закрыт", но тики то идут и он снова отправляет приказ на каждом тике, проверки то нет. Как думаете, понравиться это серверу? Такие вещи так-же желательно учитывать.