Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Отслеживать отложенные ордера Вы можете используя фукнкцию OrdersTotal(). Сравнивайте ее текущее значение с предыдущим. А для того, чтобы не множить отложенные ордера используйте флаг установки ордера. Если флаг == true значит по этому символу ордер уже установлен. Сбросьте флаг, когда ордер сработает, т.е. OrdersTotal() измениться.
К счастью, эти азы я прошёл ещё год назад. По статьям, посвящённым начальным навыкам работы с MQL5. Чемпионат подтвердил - данная схема хороша для обучения, но не для повседневной торговли. Статьи Роша расставили все точки над i.
Да и речь сейчас не о том, как именно отслеживать состояние ордеров. Речь о том, что trade-параметры, которые я описал выше, могут значительно упростить работу как с ордерами, так и с позициями. С точки зрения отдельного пользователя (т.е. меня) можно достаточно эффективно ответить на вопрос "Что делать? Неизвестно", а также работать с ордерами точечно, а не через связку "символ - OrdersTotal()".
Все что Вам нужно знать, так это символ по которому произошло это событие.
Фишка в том, что если отбросить обучающие парадигмы, то для работы с отложенными ордерами важнее знать тикет ордера, а не символ. Точнее, работа по символу допустима, но много лишних телодвижений.
P.S. Про "подписку" - первый раз слышу. Отличный вариант.
Я не претендую на истину в первой инстанции, а вот от Вашего высказывания о детском саде веет высокомерием.
Не принимайте близко к сердцу. Я исправил эту фразу ещё перед Вашим сообщением. Знаете, иногда напишешь, отправишь, - а потом при прочтении корректируешь возможные двусмысленности во второстепенных фразах.
По теме. У нас прямо противоположные подходы к торговле: мне всё равно - когда и как откроется/закроется позиция, потому что эксперт сам обрабатывает эти моменты (сдвигает TP, трейлинг-стоп и т.д.). Мне важно, чтобы отложенные ордера постоянно окутывали ситуацию на рынке. Именно поэтому я и акцентирую внимание на том, что высказывание типа "для функции OnTrade() достаточно только одного символ-параметра" не отражает всех обычных/типичных стратегий.
Разработчикам
Постоянный снос информации от торговом счете на Win 2003 SP2 (в терминальном режиме) это баг или так все и было задумано для повышения безопасности?
Верней так, если поочередно пользоваться одной и той же копией программы в обычном и терминальном режиме с разными учетными записями данные о счете периодически исчезают. Видимо если просто в терминальном режиме под разными учетными записями работать будет аналогичная ситуация (это пока не проверял).
Да, все верно.
Когда другой Windows пользователь (даже на том же компьютере) пытается получить доступ к терминалу, у которого сохранены пароли от другого Windows пользователя, то пароли принудительно сбрасываются. Это сделано для того, чтобы никто не смог своровать пароли.
Во-во, вроде простой вопрос, а уже гуру спорят. Замучаешься, пока от тестера добьёшся правильной работы. Чтобы купить 1 лот EURUSD по текущей цене надо 3-4 проверки выполнить. А не проверишь -работать будет, но не правильно и , главное, по тихому. Только баланс отрицательный в итоге получится или ещё бред какой. И хорошо если проверки прошли успешно. А если какой нибудь SymbolInfoTick вернул false, то не понятно что и делать. Код ошибки на стенку вешать вместо приза на чемпионате?
Я пробовал "equity<0.55*balance" и "free_margin<100". Не заработало. Не знаю почему. Запутался я совсем в маржах этих.
Оставил if(AccountInfoDouble(ACCOUNT_MARGIN_LEVEL)<55.0). Вроде работает.
Что хелп, что правила чемпионата написаны кратко на жаргоне разработчиков, а надо подробно и для чайников.
А что тут спорить ? Уровень маржи=Средства/Залоговая маржа*100%, или, в терминах MQL5:
Эти параметры отображаются в Вашем терминале на вкладке 'Торговля', можете проверить. Что касается стоп-аута, посмотрите аналогичное обсуждение в 2007 г.
Вячеслав, Ваш ответ вселяет надежды. Кто то на форуме предлагал, на мой взгляд, приемлемое решение - подписка. Реализуйте эту подписку по аналогии с функцией iCustom(), в которой есть обязательные и не обязательные параметры. Пусть каждый трейдер, при инициализации эксперта подписывается на события, которые ему необходимы. Не на общее количество событий, а только на те, которые он считает важными для своей торговли. Такой подход (подписка) существенно облегчит разработку мильтивалютников и реально сократит код. Сделайте эксперимент хотя бы в двух функциях OnTrade() и OnTick(). Сделайте минимум - символ. Потом можно увеличить количество событий (параметров). Практика - критерий истины. Пока не попробуешь, не поймешь, какие трудности могут возникнуть.
PS Аналогия с функцией GetLastError(), которая возвращает значение системной переменной LastError, наверно, более уместна, чем аналогия с функцией iCustom(). Введите системную переменную TradeEvent и при срабатывании OnTrade(), выводите значение этой переменной.
Про подписку первый раз слышу, но как основа идеи (типа подписки на события тамера или стакан цен) очень даже хорошая мысль.
Также идея о константе по типу _Error довольно интересно.
На мой взгляд символ нужно передавать обязательно, в принципе можно начать двигаться в этом направлении уже сейчас, чтобы успеть до чемпионата внедрить хоть какие-то новшества в этой области.
Yedelkin:
Фишка в том, что если отбросить обучающие парадигмы, то для работы с отложенными ордерами важнее знать тикет ордера, а не символ. Точнее, работа по символу допустима, но много лишних телодвижений.
Сначала нужно реализовать только символ, потом будет время подумать над тем что и как дополнительно передавать. Хорошо бы подобным образом поступить с OnTrade() и OnTick().
Развивая тему про подписку можно организовать подписку на тики определенной пары.
Не принимайте близко к сердцу. Я исправил эту фразу ещё перед Вашим сообщением. Знаете, иногда напишешь, отправишь, - а потом при прочтении корректируешь возможные двусмысленности во второстепенных фразах.
По теме. У нас прямо противоположные подходы к торговле: мне всё равно - когда и как откроется/закроется позиция, потому что эксперт сам обрабатывает эти моменты (сдвигает TP, трейлинг-стоп и т.д.). Мне важно, чтобы отложенные ордера постоянно окутывали ситуацию на рынке. Именно поэтому я и акцентирую внимание на том, что высказывание типа "для функции OnTrade() достаточно только одного символ-параметра" не отражает всех обычных/типичных стратегий.
Согласен, не отражает. Но тем не менее начинать нужно именно с символа, а тикеты ордеров/сделок или что-то другое потом к этому прибавится вопрос иной.
Да, все верно.
Когда другой Windows пользователь (даже на том же компьютере) пытается получить доступ к терминалу, у которого сохранены пароли от другого Windows пользователя, то пароли принудительно сбрасываются. Это сделано для того, чтобы никто не смог своровать пароли.
Сначала нужно реализовать только символ, потом будет время подумать над тем что и как дополнительно передавать.
...начинать нужно именно с символа, а тикеты ордеров/сделок или что-то другое потом к этому прибавится вопрос иной.В общем, акценты уже расставлены, просто хотелось бы отметить, что если действовать по принципу "каждый тянет одеяло на себя" (типа "дайте мне только символ-параметр" или "только тикет-параметр"), то можно ничего не добиться. Поэтому мой вопрос изначально был сформулирован с учётом минимальной конфигурации параметров. Именно "минимальной конфигурации", поскольку я ожидал, что у более продвинутых пользователей появятся свои пожелания по поводу расширения/уточнения их списка.
Поэтому было несколько удивительно, что возникли предложения ограничиться только одним параметром (символ-параметром). Особенно удивительно это на фоне ответа stringo, который вообще ничего не говорил о том, что у разработчиков возникают проблемы с количеством параметров для функции OnTrade(). Проблема была в том, что "по одному и тому же тикету может прийти куча сообщений". Ну так ведь они и сейчас приходят, только в обезличенной форме. И будут приходить независимо от того, сколько параметров будет введено для функции.
...В прошлом году долго не мог понять, о каких "костылях" периодически говорят профи. Теперь же, на основании обсуждения темы про параметры для OnTrade(), возникла стойкая ассоциация: "костыли" == полумеры при решении того или иного вопроса. Думаю, что вопрос про параметры для OnTrade() будет решён без них. Хвала, как говорится, разработчикам, что они отличаются комплексным подходом к решению проблем! :)
Что означает сообщение "pump result 0" в конце тестирования?
build 466: Результаты одиночного тестирования отличаются от результатов проведенной за минуту до этого оптимизации.
В чем причина? Какие обновленные параметры тестер берет с рынка при новом тестировании?
Что означает сообщение "pump result 0" в конце тестирования?