Помогите с алгоритмом учета виртуального стоп-лосса для "реала"...

 

Для теста я понимаю это примерно так:

SL = 50;

SL_Virtual; 

При открытии ордера - SL явно не указываем (указываем 0) -  в данном советнике возможен только один ордер открытый с рынка  -

Для ордера Buy получается:  SL_Virtual = OrderOpenPrice() - SL*Point.

Далее If ( Bid =<  SL_Virtua) то запускаем ф-ию закрытия ордеров, как - то так в самом общем случае.

Уверен, на реале ведь должны какие-то проверки, уточнения и т.д.... Подскажите... 

 
Реализация может быть простой и универсальной.
 
hrenfx:
Реализация может быть простой и универсальной.


Это совсем не то - это создание виртуальных функций ордерсенд, ордерклозе и т.д. для возможного  тестирования мультивалютников. Мне нужен алгоритм реализации виртуального с/л явно не указанного при открытии ордера для торговли советника на реале...
 
Roman.:
Это совсем не то - это создание виртуальных функций ордерсенд, ордерклозе и т.д. для возможного  тестирования мультивалютников. Мне нужен алгоритм реализации виртуального с/л явно не указанного при открытии ордера для торговли советника на реале... 

Чуть шире посмотрите. Виртуальный SL - это SL виртуальной позиции, которая "материализуется" со всеми своими параметрами, кроме SL, в виде реальной позиции.

Т.е. пишите свои торговые функции, а в них сами решаете, что виртуальное, а что нет. Пример такого подхода и был приведен .

P.S. Вот здесь приведен еще один пример, когда виртуальные позиции могут быть полезны. 

 

Посмотрите эту тему. Там речь шла о трале, аналогично и стоп можно делать. А вообще у Кима есть советник готовый - e-CloseByLossOrProfit.mq4. Правда я его под себя чуток переделал.

---

Прикрепил оригинал советника.

Файлы:
 
hrenfx:

Чуть шире посмотрите. Виртуальный SL - это SL виртуальной позиции, которая "материализуется" со всеми своими параметрами, кроме SL, в виде реальной позиции.

Т.е. пишите свои торговые функции, а в них сами решаете, что виртуальное, а что нет. Пример такого подхода и был приведен .

P.S. Вот здесь приведен еще один пример, когда виртуальные позиции могут быть полезны. 



Что-то я никак понять не могу - я в советнике использую свою  специальную ф-ию для открытия ордера и т.е. я могу в ней завиртуалить только с/л?
 
Roman.:
Что-то я никак понять не могу - я в советнике использую свою  специальную ф-ию для открытия ордера и т.е. я могу в ней завиртуалить только с/л?

Что значит виртуальный и реальный ордер? То, что вам показывает ДЦ - это виртуальные или реальные ордера?

В MT4 все ордера виртуальные, учет которых производит серверная часть MT4. Вы этот учет можете производить сами.

Например, OrderSend - это функция установки виртуального ордера в серверной часте MT4.

Вы можете написать свой V_OrderSend, который будет устанавливать виртуальный ордер у вас на компе. И который будет взаимосвязан с ордерами серверной части MT4.

Точно по такому же принципу устроены все бриджи MT4. 

 
hrenfx:

Что значит виртуальный и реальный ордер? То, что вам показывает ДЦ - это виртуальные или реальные ордера?

В MT4 все ордера виртуальные, учет которых производит серверная часть MT4. Вы этот учет можете производить сами.

Например, OrderSend - это функция установки виртуального ордера в серверной части MT4.

Вы можете написать свой V_OrderSend, который будет устанавливать виртуальный ордер у вас на компе. И который будет взаимосвязан с ордерами серверной части MT4.

Точно по такому же принципу устроены все бриджи MT4. 



   Ну, и допустим, по торговому критерию запускается   V_OrderSend - и все что в нем было становится явным? Как - то сложновато, хотя понимаю - базовые вещи.

  Буду разбираться конечно... Проще, возможно явно не указать при открытии ордера сл, а запомнить в советнике? И при выполнении возможного условия - которое находиться в советнике - произвести закрытие ордера. Извените, что - то подтупливаю сегодня.

 
Roman.:

 Ну, и допустим, по торговому критерию запускается   V_OrderSend - и все что в нем было становится явным? Как - то сложновато, хотя понимаю - базовые вещи.

  Буду раздираться конечно... Проще, возможно явно не указать при открытии ордера сл, а запомнить в советнике? И при выполнении возможного условия - которое находиться в советнике - произвести закрытие ордера. Извените, что - то подтупливаю сегодня.

Есть два пути:

частный - в каждом советнике писать виртуальный SL.

универсальный - написать V_функции и в советниках любых (даже чужих) надо будет поменять все торговые функции на V_функции и все будет работать, как вам надо. Причем вы на ходу сможете делать и виртуальные тэйки и отложенники. Все, что вам захочется, не меняя код советника совсем!

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

 
hrenfx:

Есть два пути:

частный - в каждом советнике писать виртуальный SL.
универсальный - написать V_функции и в советниках любых (даже чужих) надо будет поменять все торговые функции на V_функции и все будет работать, как вам надо. Причем вы на ходу сможете делать и виртуальные тэйки и отложенники. Все, что вам захочется, не меняя код советника совсем!

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



   Извините за назойливость - т.е. при реальном исполнении   V_функции - параметры указанные в ней  в частности с/л и т/п будут недоступны ДЦ?
 
Roman.:

   Извините за назойливость - т.е. при реальном исполнении   V_функции - параметры указанные в ней  в частности с/л и т/п будут недоступны ДЦ?
Да, вы можете уже внутри самих V_функций (не в советнике, он ничего не почувствует) указать, показывать ли ДЦ SL, TP, отложки, или же не показывать, исполняя их рыночными ордерами, когда цена достигнет уровней.
Причина обращения: