Работа советника на нескольких валютных парах - страница 3

 
evillive:
Да в кодобазе таких примеров - каждый второй, не считая первого, за редкими исключениями. Вот, среди самых свежих поступлений - News Trading. Переменная Magic и дальше поиск по коду, куда её применили.
 Спасибо!   Сейчас пороюсь в News Trading. Надеюсь с пользой.evillive,
 
evillive:

Если на одном символе несколько советников - то и магик учитывать надо, помимо символа. Если руками торговать - тоже магик нужен, чтобы советник мог отличить свои ордера от ручных.

А возможно ли сделать так, чтобы советник поступал с открытыми вручную также как и с теми, которые он открыл?

Если да, то как это сделать?

 
Tomich7L:

А возможно ли сделать так, чтобы советник поступал с открытыми вручную также как и с теми, которые он открыл?

Если да, то как это сделать?

Считать что если ордер с пустым  магиком, то он открыт вручную. Для ручных ордеров обычно Magic=EMPTY.
 
evillive:
Считать что если ордер с пустым  магиком, то он открыт вручную. Для ручных ордеров обычно Magic=EMPTY.

Боюсь показаться тупым (новичку, я надеюсь, простительно :-)  ), но я не понял :-(

Наверное потому, что с магиками не работал и этот момент не изучал.

Если не сложно, можно поподробней как это сделать?

 
Tomich7L:

Боюсь показаться тупым (новичку, я надеюсь, простительно :-)  ), но я не понял :-(

Наверное потому, что с магиками не работал и этот момент не изучал.

Если не сложно, можно поподробней как это сделать?

Виноват, магик ручного ордера нулевой (0 или NULL), а не пустой (EMPTY).

выбираем ордера в цикле и для каждого смотрим магик:

If(OrderMagicNumber()==Magic || OrderMagicNumber==0)

{тут действия с ордером, у которого магик номер пустой или равен номеру, который присваивает данный советник}


Ещё ручные ордера можно снабдить комментарием, естественно всегда одним и тем же, тем и отличать их от выставленных автоматом.


Но тут есть МАЛЕНЬКАЯ закавыка... Советников-то несколько, насколько я понял, одинаковых, просто на разных графиках, а они все разом захотят поступить с ручным ордером так, как со своим собственным ;)

То есть ещё проверки нужны, не грызёт ли уже этот кусок другой лев...

Может придётся тикет ордера, который уже в работе, в глобальные переменные выводить, чтобы другие копии советника его не трогали.

 
evillive:

Виноват, магик ручного ордера нулевой (0 или NULL), а не пустой (EMPTY).

выбираем ордера в цикле и для каждого смотрим магик:

If(OrderMagicNumber()==Magic || OrderMagicNumber==0)

{тут действия с ордером, у которого магик номер пустой или равен номеру, который присваивает данный советник}


Ещё ручные ордера можно снабдить комментарием, естественно всегда одним и тем же, тем и отличать их от выставленных автоматом.


Но тут есть МАЛЕНЬКАЯ закавыка... Советников-то несколько, насколько я понял, одинаковых, просто на разных графиках, а они все разом захотят поступить с ручным ордером так, как со своим собственным ;)

То есть ещё проверки нужны, не грызёт ли уже этот кусок другой лев...

Может придётся тикет ордера, который уже в работе, в глобальные переменные выводить, чтобы другие копии советника его не трогали.

Как и положено новичку - возникли вопросы.

1. Приведённый if, насколько я врубаюсь, берёт в обработку все открытые ордера и делает всё то, что после этой проверки идёт в программе. Так?

2. Как снабдить комментарием ручной ордер?

3. Как может советник установленный, скажем, на EURUSD с М5 пытаться зацепит ордер, открытый, скажем, на GBPJPY с М30?

4. Если всё таки п.3 возможен, то зачем п.1?

Хочется (по изначальной задумке) выравнять в правах все ордера на одном графике перед "своим" советником и сделать их недоступными для советника сидящего на другом.

 

1. Будет исполнено всё, что будет заключено в фигурные скобки.

2. В форме есть строка комментария, туда надо писать всегда одно и то же. Но это только если с магиком не прокатит, так вроде работать должно и в комментариях нужды нет.

3. Не может, если есть и проверка на символ. ТФ не влияет, терминал и автомат не видит, с какого ТФ был открыт ордер, важны только символ и магик.

4. Но представим ситуацию, когда на одном счёте сидят три советника и все три на EURUSD, но с разными стратегиями, или же просто советники одинаковые, но с разными входными параметрами.

Да ещё и трейдер мешает своими ручными ордерами, как будто делать ему больше нечего. Советники каждый со своим магиком, отличным от другого. Но все на одном символе. И что тогда будет, когда все три ещё и с ручным ордером взаимодействовать пробуют?

Вот про такую ситуацию я и писал, когда упоминал закавыку.

 
evillive:

1. Будет исполнено всё, что будет заключено в фигурные скобки.

2. В форме есть строка комментария, туда надо писать всегда одно и то же. Но это только если с магиком не прокатит, так вроде работать должно и в комментариях нужды нет.

3. Не может, если есть и проверка на символ. ТФ не влияет, терминал и автомат не видит, с какого ТФ был открыт ордер, важны только символ и магик.

4. Но представим ситуацию, когда на одном счёте сидят три советника и все три на EURUSD, но с разными стратегиями, или же просто советники одинаковые, но с разными входными параметрами.

Да ещё и трейдер мешает своими ручными ордерами, как будто делать ему больше нечего. Советники каждый со своим магиком, отличным от другого. Но все на одном символе. И что тогда будет, когда все три ещё и с ручным ордером взаимодействовать пробуют?

Вот про такую ситуацию я и писал, когда упоминал закавыку.

По-моему, садить три (более одного) разных советника на одну пару, по крайней мере для моего уровня, - это чрезвычайно сложно. Дай Бог разобраться с работой одного советника с несколькими ордерами. Вообще-то я стремился к ситуации, чтобы советник сам открывал/закрывал один свой ордер, но валютных пар было несколько, на которых установлен один и тот же советник, но параметры для каждой пары подбирались бы в Тестере стратегий, и каждая копия советника работала бы только на своей паре и не лезла на другие. Пробуя работать увидел, что иногда хочется открыть ещё один ордер на паре где советник уже это сделал. Поэтому мне всё что написано выше очень интересно. Можно конечно и не влазить на пару самому, чтобы проще было.

По п.2  Нашёл "Строку комментария" в форме открытия Нового ордера. И как проявит себя то что там будет написано? И что туда рекомендуется писать?

 

Tomich7L:

По п.2  Нашёл "Строку комментария" в форме открытия Нового ордера. И как проявит себя то что там будет написано? И что туда рекомендуется писать?

Писать то же самое, что в советнике потом ожидаете считать. То есть если в код советника записать что комментарий нужного ордера должен быть "ХХХ", то и при открытии ордера вручную логично будет комментарий "ХХХ" записать, не так ли?

 
evillive:

Писать то же самое, что в советнике потом ожидаете считать. То есть если в код советника записать что комментарий нужного ордера должен быть "ХХХ", то и при открытии ордера вручную логично будет комментарий "ХХХ" записать, не так ли?

Всё таки не понятно. Что я могу ожидать считать? Вообще, какого типа инфа туда идёт и что с ней потом можно делать? Не могли бы хотя б какой-нибудь наипростейший пример привести?
Причина обращения: