[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда. - страница 792

 

Прочитал код простого советника в учебнике - https://book.mql4.com/ru/samples/expert

Не понял как изменяется значение переменной Total

В блоке "Учёт ордеров" его значение может изменится, допустим стало 1.

В блоке "Закрытие ордеров" при закрытии ордера значение переменной Total не меняется, хотя я так понимаю оно должно обнулиться (если ордер закрыт успешно).

Вопрос - как в данном случае будут открывается новые ордера (В блоке "Открытие ордеров" - if (Total==0 && Opn_B==true) ), если программа по прежнему думает, что есть не закрытые? Или может программа не может за один проход закрыть один и открыть другой ордер? Тогда я не понял, почему говорится, что в примере используется вариант b соотношения торговых критериев?

 
fevrall:

Доброго времени суток всем форумянам!

Не смог найти ответы на следующие вопросы.

1. Два терминала работают на разных машинах(первая на работе, вторая дома), на одном и том же реальном счете.

Если на этих терминалах, на одной и той же валютной паре работает один и тот же советник,

эквивалентно ли это работе одного и того же советника на одной и той же паре в разных окнах одного терминала?

2. Если на одном из этих терминалов запретить работать советникам(с помощью соответствующей кнопки), то как это

отразиться на другом терминале?

Заранее, спасибо!)

1.Два разных терминала - это и есть два разных терминала..:))

Даже если у вас на одной машине будут стоять два разных мт4, работающих на одном счете - они не пересекаются. Пересечься могту случайно, если магики ордеров совпадут, тогда действующий советник будет воспринимать ордер как "свой"

2.если запретить торговать советнику на одном терминале, второй будет преспокойно работать - так как советник - есть программа, запущенная на данном компе, в данном мт4, а не на сервере дилингового центра. То же, если выключить компьютер, то советник торговать не будет. Но есть нюанс - если до выключения советника он проставил какие-либо отложенные ордера, то они будут исполняться по рынку, даже при отключенном советнике.

 
Techno:
можно на 1 или 2 бара запрет ставить. тоньше уже некуда

Techno, а почему Вы настаиваете именно на временном разрешении этой проблемы?

Логическими никак нельзя? Ваш метод, возможно, приведет к решению моей задачи, но ведь это косвенный путь решения...

 

obla4ko, спасибо!

 
obla4ko:

я помню :), Ваш совет хорош, но тут" все дело в нюансах", как выражается PapaYozh!

При работе со средними каждый бар на счету - статистика, понимаешь! :)) - вот и приходится искать и другие, более тонкие, что ли, решения....

Если я правильно понял Вашу проблему, то Вам не надо ориентироваться на время закрытия ордера. Вам надо отталкиваться от времени начала того бара, на котором появился сигнал на открытие и была открыта позиция. Лично я поступил бы следующим образом:

1) завёл бы переменную типа datetime, куда заносил бы значение Time[0] при удачном выставлении ордера;

2) в функции init() проинициализировал бы эту переменную значением "0", я предпочитаю явную инициализацию, т.к. это более наглядно при просмотре кода;

3) при появлении условий для открытия позиции, прежде чем отправлять запрос OrderSend(...), сравнил бы значение той самой преременной со значением Time[0] и, если они не равны, то отправил бы запрос.

4) если позиция открылась, то запомнил бы значение Time[0] в ту самую переменную.

---

Не знаю понятно ли объяснил, ну уж как смог.

Конечно, это самый примитивный подход, т.к. в реальности советник может быть переинициализирован на том баре, на котором произошло открытие ордера и такие ситуации надо учитывать при написании советника. Но на начальном этапе Вам и описанный мною вариант сгодится.

 

Всем добрый день!

Люди программисты и любители нужна ваша помощь!!! Суть такая нужен самый простой индикатор, который бы показывал горизонтальные линии т.е. даю ему уровень с какого уровня ему плясать (вниз или вверх разницы нет) и он через определенное количество пунктов рисует снова линию, и т.д. до указанного уровня. Например уровень с 1,2500 по 1,3400 через каждые 50 пунктов новая линия...


Заранее спасибо всем, кто откликнется...

 

Интересно девки пляшут... :)

Я опять по поводу "шалостей" своего ДЦ...

Как такое может быть?

... интересно так позы открылись в воздухе... Демо-счёт.

Как такое возможно?

Я так понимаю, если позиции открылись перед гэпом, то они и должны стоять на месте открытия, а не парить в небесах...
... ну, а если уж их перенесли, то почему не на бар после гэпа, а куда-то в воздух... Чудеса... :)

 

artmedia70, это проскальзывание на гэпе) Меняй дц )) в топку ))
 
artmedia70:

... интересно так позы открылись в воздухе... Демо-счёт.


Не забывайте, что на графике цена Bid, ордера на покупку (похоже у Вас они) открываются по Ask.
 
PapaYozh:

Не забывайте, что на графике цена Bid, ордера на покупку (похоже у Вас они) открываются по Ask.
А разве Buy мы открываем не по Ask ??????? Да и не может быть спреда в 60 пунктов (это если брать после гэпа), а если до ..., то спред на евре в 325 пп - жесть ... :)
Причина обращения: