Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Здравствуйте,FinanceEngineer, возможно, было бы лучше начать проверку проблемы множественных ордеров в вашем оригинальном коде, так как если мы это сделаем, возможно, мы рассмотрим другие критические моменты здесь и не потеряем фокус, что вы думаете об этом?
Здравствуйте, Фирелли
Это мой новый код. Я изменил его после того, как поднял вопрос о множественных ордерах в этой теме.
Пока что этот код работает нормально с несколькими брокерами. BlindMist может попробовать этот код, чтобы посмотреть, сможет ли он избежать проблемы с множественными ордерами у этого брокера.
Здравствуйте, Фирелли
Это мой новый код. Я изменил его после того, как поднял вопрос о множественных ордерах в этой теме.
Пока что этот код работает нормально с несколькими брокерами. BlindMist может попробовать этот код, чтобы посмотреть, сможет ли он избежать проблемы с множественными ордерами у этого брокера.
Пожалуйста, используйте кнопку SRC при размещении кода.
Код, который вы опубликовали, не может избежать (всех) двойных ордеров, и наоборот, в некоторых случаях он может спровоцировать двойные ордера.
Пожалуйста, используйте кнопку SRC при размещении кода.
Код, который вы опубликовали, не может избежать (всех) двойных ордеров, а наоборот, в некоторых случаях может спровоцировать двойные ордера.
Здравствуйте, Фирелли
Это мой новый код. Я изменил его после того, как поднял вопрос о множественных ордерах в этой теме.
Пока что этот код работает нормально с несколькими брокерами. BlindMist может попробовать этот код, чтобы посмотреть, сможет ли он избежать проблемы с множественными ордерами у этого брокера.
Привет,FinanceEngineer, обратите внимание, что в вашем первоначальном коде у вас есть Print("OrderSend Code: "...) в if { } и else { }.
Но else { } имеет прерывание, а ваш отладочный код показывает retcode = 10008 (TRADE_RETCODE_PLACED) x 10.
То есть, судя по всему, вы выводили отладочное условие if { } и ваш break никогда не использовался.
Теперь вы изменили код, и он выглядит более понятным, но обратите внимание, что вы больше не проверяете возвращаемое значение OrderSend(), только result.retcode. Это можно исправить с помощью переменной checkOrderSend (*** смотрите здесь), о которой я спрашивал ранее:
Поэтому, на мой взгляд, первое, что нужно сделать, это исправить этот тест и проверить снова, используя того же проблемного брокера, о котором вы сообщили. Если проблема не повторится, поздравляю, вы действительно решили ошибку, т.е. это не означает, что ваш код будущий или самый безопасный, а означает, что мы нашли ошибку.
На самом деле, вы можете забыть или не менять свой код снова, поскольку ошибка не повторяется, однако в этом случае вы должны помнить, что вы больше не тестируете возвращаемое значение OrderSend().
Надеюсь, эта информация поможет вам.
Здравствуйте,FinanceEngineer, обратите внимание, что в вашем первоначальном коде у вас есть Print("OrderSend Code: "...) в if { } и else { }.
Но else { } имеет прерывание, а ваш отладочный код показывает retcode = 10008 (TRADE_RETCODE_PLACED) x 10.
То есть, судя по всему, вы выводили отладочное условие if { } и ваш break никогда не использовался.
Теперь вы изменили код, и он выглядит более понятным, но обратите внимание, что вы больше не проверяете возвращаемое значение OrderSend(), только result.retcode. Вы можете исправить это с помощью переменной checkOrderSend (*** смотрите здесь), о которой я спрашивал ранее:
Поэтому, на мой взгляд, первое, что нужно сделать, это исправить этот тест и проверить снова, используя того же проблемного брокера, о котором вы сообщили. Если проблема не повторится, поздравляю, вы действительно решили ошибку, т.е. это не означает, что ваш код будущий или самый безопасный, а означает, что мы нашли ошибку.
На самом деле, вы можете забыть или не менять свой код снова, поскольку ошибка не повторяется, однако в этом случае вы должны помнить, что вы больше не тестируете возвращаемое значение OrderSend().
Надеюсь, эта информация поможет вам.
Что насчет возвращаемого кода 10010?
Ордер двойной записи может возникнуть у любого брокера, просто вероятность получить его у Альпари выше, так как вы получаете гораздо больше тиков.
А как насчет возвращенного кода 10010?
Ордер двойного входа может возникнуть у любого брокера, просто вероятность получить его у Альпари выше, так как вы получаете гораздо больше тиков.
Здравствуйте,FinanceEngineer, обратите внимание, что в вашем первоначальном коде у вас есть Print("OrderSend Code: "...) в if { } и else { }.
Но else { } имеет прерывание, а ваш отладочный код показывает retcode = 10008 (TRADE_RETCODE_PLACED) x 10.
То есть, судя по всему, вы выводили отладочное условие if { } и ваш break никогда не использовался.
Теперь вы изменили код, и он выглядит более понятным, но обратите внимание, что вы больше не проверяете возвращаемое значение OrderSend(), только result.retcode. Вы можете исправить это с помощью переменной checkOrderSend (*** смотрите здесь), о которой я спрашивал ранее:
Поэтому, на мой взгляд, первое, что нужно сделать, это исправить этот тест и проверить снова, используя того же проблемного брокера, о котором вы сообщили. Если проблема не повторится, поздравляю, вы действительно решили ошибку, т.е. это не означает, что ваш код будущий или самый безопасный, а означает, что мы нашли ошибку.
На самом деле, вы можете забыть или не менять свой код снова, так как ошибка не повторяется, однако в этом случае вы должны помнить, что вы больше не тестируете возвращаемое значение OrderSend().
Надеюсь, эта информация поможет вам.
Здравствуйте
Я знаю, что это звучит странно. Когда я проверял возвращаемое значение OrderSend(request,result) в предыдущем коде, я получал проблему множественного заказа. Теперь в моем новом коде я не проверяю возвращаемое значение OrderSend(request,result) (но я все же присвоил возвращаемое значение некоторой переменной, чтобы избежать ошибки на новой сборке терминала.
С новым кодом я не получаю проблемы с множественными ордерами. Я использовал Alpari UK, который имеет репутацию отправителя большого количества тиков. Возможно, мой код не идеален, но подумайте вот о чем. В Meta Trader 5 есть довольно много возвращаемых кодов, которые необходимо проверить.
Первый из них - возвращаемое значение из OrderCheck, второй - возвращаемое значение из OrderSend и третий - возвращаемое значение, присвоенное в result.retcode. Я думаю, что какими бы ни были первые два возвращаемых значения, больше всего нас должно волновать последнее, плюс количество фактически выполненного объема.
Поэтому, основываясь на этом факте, я упростил свой код, просто перейдя к проверке result.retcode. Пожалуйста, поправьте меня, если я ошибаюсь. Я думаю, что исполнение ордеров в MT5, безусловно, намного сложнее, чем в MT4, и многие из нас запутались.
Если мы не можем построить ясное дело, используя только логику, тогда мы можем построить ясное дело, используя эксперименты. Поэтому я рекомендую BlindMist или любому другому человеку попробовать этот код у своего брокера и посмотреть, может ли пропуск проверки функции OrderSend быть действительно полезным.
С уважением.
Если вы спрашиваете меня, то, как я уже говорил, я не считаю этот код достаточно надежным и безопасным, и это только один пример отсутствия кода возврата, поэтому, пожалуйста, прочитайте еще раз.
Я обратился ко всем, кто участвует в этой теме. Я пропустил ваше сообщение о коде 10010, где он?
Я обратился ко всем, кто участвует в этой теме. Я пропустила ваше сообщение о коде 10010, где он находится?
Привет Алена,
Мне не совсем понятно, что вам нужно знать, так как речь идет только о новом коде FinanceEngineer, и совет о проверке кода возврата OrderSend(), который был изменен по сравнению с оригинальным кодом.
Обратите внимание, что ни его оригинальный код, ни его новый код не имеют теста кода 10010, так что если это имеет отношение к вам, почему вы не спросили с самого первого его сообщения?
В любом случае, не могли бы вы объяснить, зачем нужен код 10010 test для полиса заполнения FOK?
Поскольку это уже не первый раз, когда я вижу, как вы и другие модераторы говорят об этом, знаете ли вы случаи, когда действительно необходим этот код-тест для ордеров FOK (Fill Or Kill), которыми вы могли бы поделиться с нами?
Заранее спасибо.
Здравствуйте
Я знаю, что это звучит странно. Когда я проверял возвращаемое значение OrderSend(request,result) в предыдущем коде, я получал проблему множественного заказа. Теперь в моем новом коде я не проверяю возвращаемое значение OrderSend(request,result) (но я все еще присваиваю возвращаемое значение некоторой переменной, чтобы избежать ошибки на новой сборке терминала.
С новым кодом я не получаю проблемы с множественными ордерами. Я использовал Alpari UK, который имеет репутацию отправителя большого количества тиков. Возможно, мой код не идеален, но подумайте вот о чем. В Meta Trader 5 есть довольно много возвращаемых кодов, которые необходимо проверить.
Первый из них - возвращаемое значение из OrderCheck, второй - возвращаемое значение из OrderSend и третий - возвращаемое значение, присвоенное в result.retcode. Я думаю, что какими бы ни были первые два возвращаемых значения, больше всего нас должно волновать последнее, плюс количество фактически выполненного объема.
Поэтому, основываясь на этом факте, я упростил свой код, просто перейдя к проверке result.retcode. Пожалуйста, поправьте меня, если я ошибаюсь. Я думаю, что исполнение ордеров в MT5, безусловно, намного сложнее, чем в MT4, и многие из нас запутались.
Если мы не можем построить ясное дело, используя только логику, тогда мы можем построить ясное дело, используя эксперименты. Поэтому я рекомендую BlindMist или любому другому человеку попробовать этот код у своего брокера и посмотреть, может ли пропуск проверки функции OrderSend быть действительно полезным.
С уважением.