Форум » Консультации по программированию » Как узнать - работает ли эксперт? » Ответить

Как узнать - работает ли эксперт?

Stoletov: Хочу задать 2 вопроса, которые мало относятся к программированию, но другой подходящей рубрики не нашел: 1) Можно ли проверить - работает эксперт, подвешенный к графику, или "отдыхает"? В моем случае по косвенным признакам было видно, что эксперт не работает, хотя в углу графика смеющаяся рожа висела. Оказалось, что в эксперте произошло деление на ноль при появлении нового бара. Может вставить оператор Comment(TimeToStr(TimeCurrent())) и тогда, если время будет меняться, то значит - эксперт работает? Или есть какой-то более научный подход? 2) Какой счет лучше выбрать у брокера GKFX - STPМТ4 и ECNМТ4? У счета ECN есть комиссия, но спред меньше (даже в сумме с комиссией), чем у счета STP, у которого комиссии нет. Означает ли это, что выгоднее работать со счетом ECN? Или может быть тот или иной счет выгоден в зависимости от размера депозита или от вида торговли (ручная или автоматическая)? Если работать со счетом ECN, который использует market execution, что надо ли в операторе OrderSend устанавливать проскальзывание? А если работать со счетом STP, то правильно ли будет устанавливать проскальзывание равным текущему спреду (что часто встречается в примерах программ в книге Ковалева по программированию на МТ4)? Говорят, что один дурак может задать столько вопросов, что сто умных не ответят (это самокритика)

Ответов - 12

Scriptong: Stoletov пишет: 1) Можно ли проверить - работает эксперт, подвешенный к графику, или "отдыхает"? Может вставить оператор Comment(TimeToStr(TimeCurrent())) и тогда, если время будет меняться, то значит - эксперт работает? Или есть какой-то более научный подход? Если в эксперте не предусмотрена какая-либо индикация его состояния, то понять работает он или нет, достоверно невозможно. Простейший способ индикации Вами как раз указан - выводить дату/время последнего тика в комменте. Stoletov пишет: В моем случае по косвенным признакам было видно, что эксперт не работает, хотя в углу графика смеющаяся рожа висела. Оказалось, что в эксперте произошло деление на ноль при появлении нового бара. А это уже недоработка самого терминала. В случае обнаружения критической ошибки эксперт должен автоматически удаляться с графика. Возможно, это будет исправлено вместе с этой ошибкой. На мой взгляд, это одного поля ягоды. Stoletov пишет: 2) Какой счет лучше выбрать у брокера GKFX - STPМТ4 и ECNМТ4? У счета ECN есть комиссия, но спред меньше (даже в сумме с комиссией), чем у счета STP, у которого комиссии нет. Означает ли это, что выгоднее работать со счетом ECN? Или может быть тот или иной счет выгоден в зависимости от размера депозита или от вида торговли (ручная или автоматическая)? Отличие двух технологий описано здесь. Таким образом, ECN несколько продвинутей STP в смысле матчинга (схлопывание противоположных заявок от клиентов одного и того же брокера, что влияет на скорость исполнения). То есть ECN выгоднее как брокеру, так и клиенту. Брокер не терпит издержки по выводу сделки на поставщика ликвидности, к которому он подключен, кладя спред от сделок себе в карман, а клиент получает более быстрое исполнение и меньший спред. С другой стороны, STP несколько честнее, т. к. у нашей сделки больше шансов попасть на "реальный рынок". Ведь брокер по определению должен быть лишь провайдером между клиентом и рынком, зарабатывая на комиссиях. Но с малым объемом сделки (до 1-го лота) это весьма сомнительное преимущество. Поэтому выходит, что для нас, простых смертных, ECN выгоднее. Stoletov пишет: Если работать со счетом ECN, который использует market execution, что надо ли в операторе OrderSend устанавливать проскальзывание? Нет при Market Execution проскальзывание игнорируется. Market Execution - это гарантированное исполнение, но не гарантированная цена исполнения, Instant Execution - гарантированная цена исполнения, но не гарантированное исполнение (может быть реквот). Stoletov пишет: А если работать со счетом STP, то правильно ли будет устанавливать проскальзывание равным текущему спреду (что часто встречается в примерах программ в книге Ковалева по программированию на МТ4)? Технология STP не означает, что тип исполнения торгового приказа именно Instant Execution. Чаще всего используется именно Market Execution, где проскальзывание при открытии рыночного ордера не имеет смысла. Возможно, Вы просто немного путаетесь. ECN и STP - это технологии доступа к рынку, а Market Execution и Instant Execution - это типы исполнения рыночных ордеров.

Stoletov: Спасибо Игорь за подробные объяснения. Когда прочитал об отличии технологий ECN и STP по указанной вами ссылке, то многое стало понятно. Похоже, что в ECN тоже надо на всякий случай устанавливать проскальзывание, т.к. если лот большой, то часть его может не исполниться внутри брокера и пойдет заявка банку, а значит возможна реквота. Scriptong пишет: Технология STP не означает, что тип исполнения торгового приказа именно Instant Execution. На сайте GKFX в меню "торговля на Forex-типы торговых счетов" есть строка "тип исполнения". В ней указано, что для счета STP - instant execution, а для счета ECN - market execution. Поэтому я и решил, что для каждого из этих счетов свой тип исполнения.

Scriptong: Stoletov пишет: Похоже, что в ECN тоже надо на всякий случай устанавливать проскальзывание, т.к. если лот большой, то часть его может не исполниться внутри брокера и пойдет заявка банку, а значит возможна реквота. Проскальзывание в GKFX настраивается только для отложенных ордеров (в личном кабинете). Ну а насчет рыночных ордеров большого объема не могу ничего сказать, дальше лищь мои предположения. В МТ4 нет поддержки частичного исполнения, но при этом имеем Market Execution. По логике получим достаточно плохую цену исполнения, но ордер должен быть исполнен, без реквот.


Stoletov: Благодарю, Игорь, за исчерпывающий ответ. В рамках этой же темы есть еще вопрос: можно ли одновременно автоматически торговать на двух счетах? Как при этом добиться того, чтобы эксперт работал на том счете, который не отображается в данный момент на мониторе? В меню "сервис-настройка-советники" я снял флажок "отключить автоматическую торговлю при смене счета", но это не помогло - когда перехожу на другой счет, то видно, что эксперт хотя и улыбается , но отдыхает. Если сработал индикатор, то эксперт просыпается и работает, пока нахожусь на данном счете.

Scriptong: Stoletov пишет: В рамках этой же темы есть еще вопрос: можно ли одновременно автоматически торговать на двух счетах? Можно. Вариантов, как минимум, три: 1. Поставить один и тот же советник на два разных счета. Правда, в зависимости от сути стратегии сделки не всегда будут синхронны (на одном счете появились условия для сигнала, а на другом - нет). 2. Поставить копировщик ордеров. На одном счете - сервер, на другом - клиент. В этом случае расхождения в результатах будут только из-за разных торговых условий, если брокеры различаются. 3. Использовать сервис Сигналы от MetaQuotes. Stoletov пишет: В меню "сервис-настройка-советники" я снял флажок "отключить автоматическую торговлю при смене счета", но это не помогло - когда перехожу на другой счет, то видно, что эксперт хотя и улыбается , но отдыхает. Если сработал индикатор, то эксперт просыпается и работает, пока нахожусь на данном счете. Этот метод для параллельной торговли не очень удобен.

Stoletov: Scriptong пишет: 1. Поставить один и тот же советник на два разных счета. Я поставил два разных советника на два демо-счета, но работает только один на активном счете, а другой на скрытом счете "волынит". Значит советник должен быть один и тот же? Когда наступит торговый день, то проверю, как будет работать на двух счетах с одним и тем же советником. Моя конечная цель- поставить советники на реальном и демо-счете, чтобы на демо-счете проводить разные эсперименты. При этом некоторые модули, т.е. процедуры или файлы include, в советниках для демо- и реального счетов могут отличаться. Беспокоит то, что когда переключусь с реального на демо-счет, то советник на реальном счете перестанет работать, и депозит может слегка похудеть. Scriptong пишет: 2. Поставить копировщик ордеров. Вот здесь я не понял - что такое копировщик ордеров? Scriptong пишет: 3. Использовать сервис Сигналы от MetaQuotes. Это в меню "сервис-настройки-сигналы" - правильно? Но это связано с подпиской на торговые сигналы от другого "опытного" трейдера, а в случае торговли независимо ни от кого как это применить? Scriptong пишет: Этот метод для параллельной торговли не очень удобен. Да, понятно. Ведь как только переключаюсь на другой счет, то советник сразу может открыть ордер, если индикатор дал сигнал. А может оказаться, что этот сигнал уже запоздалый и лучше бы по нему ордер вообще не открывать . В плане, как работать на двух счетах, мне больше нравится 1-й вариант . Осталось только понять - как сделать, чтобы советники работали одновременно на реальном и демо-счете.

Sergey: Stoletov пишет: Я поставил два разных советника на два демо-счета, но работает только один на активном счете, а другой на скрытом счете "волынит". Вы не поняли суть первого способа. Нужно установить два терминала в разные папки и уже потом установить советники на разные счета. Для каждого терминала свой счет и свой советник.

Scriptong: Stoletov пишет: Я поставил два разных советника на два демо-счета, но работает только один на активном счете, а другой на скрытом счете "волынит". Чуть выше Sergey указал, что на одном терминале невозможно одновременно иметь доступ к двум разным счетам. Для этого необходимо установить МТ4 два и более (если нужно больше счетов) раз в разные папки. Запуская МТ4 из одной папки, заходим на один счет, из другой папки - на второй. В итоге получаем возможность параллельной торговли на двух счетах. Stoletov пишет: Вот здесь я не понял - что такое копировщик ордеров? Это такая программа, которая, запускаясь на одном терминале, передает данные об имеющихся ордерах на другой терминал, который может быть расположен как на том же компьютере, так и на удаленном. Вот, к примеру, такой вариант. Я его не проверял и, думаю, что можно найти намного лучше. Просто показал, что собой должен представлять копировщик.

Stoletov: Спасибо Сергей и Игорь за дельный совет. До этого не додумался, что терминал нужно устанавливать в РАЗНЫЕ папки. Для экспериментов на демо-счете можно использовать еще терминал другого брокера с большими спредами. Это типа испытания иностранного а/м на наших дорогах: если здесь пройдет, то и там будет ездить.

Scriptong: Stoletov пишет: терминал другого брокера с большими спредами Речь идет о тесте онлайн? Если же тестирование проходит в среде тестера стратегий, то там достаточно вручную установить спред побольше. Правда, с другим рыночным окружением (стоплевел, фризлевел, тип исполнения и т. д.) такой финт не пройдет. Тут уже только онлайн на нужном брокере.

Stoletov: Scriptong пишет: Речь идет о тесте онлайн? Да, онлайн. Допустим, что-то изменил в эксперте и нужно просто посмотреть, будут ли открываться и закрываться ордера в нужный момент (глядя на индикатор). При этом задача тестирования для получения оптимальных параметров не стоит. Но если правильно понял, то у разных брокеров результаты могут отличаться из-за разных правил игры. Тогда действительно лучше экспериментировать с одним и тем же брокером.

Scriptong: Stoletov пишет: Допустим, что-то изменил в эксперте и нужно просто посмотреть, будут ли открываться и закрываться ордера в нужный момент (глядя на индикатор) Для проверки правильности функционирования программы в большинстве случаев достаточно тестера стратегий. По крайней мере, установить факт правильной отработки торговых сигналов получится. Только вот изменять код советника и тестировать его лучше на демо-счете. Потому что если делать это в терминале с реальным счетом, то запущенный советник будет автоматически отсоединяться, подключать последнюю версию и вновь подключаться к графику. Тут уж не до экспериментов. А вот когда советник проверен на тестере и онлайн на демо счете, то можно перенести его на терминал с реальным счетом.



полная версия страницы