Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Создавай темы на форуме и увеличивай рейтинг!
Igor Somov
424
Igor Somov 2012.06.25 06:56 

В конструкторе советников с помощью набора стандартных блоков я написал алгоритм открытия ордера BUY.

Но чтобы закрыть этот ордер, если спред подскочил, надо написать нестандартный для этого конструктора код. В языке программирования и ни бум-бум.(((

Подскажите, пожалуйста, какой конкретно код написать, чтобы имеющийся такой ордер закрылся, если спред подскочил выше 20, например?

DmitriyN
2316
DmitriyN 2012.06.25 07:32  
Две рекомендации:
- не работать с ДЦ у которых гуляют условия: спред, стоплевелы, кредитные плечи;
- использовать только отложенные ордера.
o_O
Модератор
23614
o_O 2012.06.25 07:52  
DmitriyN:
- использовать только отложенные ордера.
не все отложенные ордера одинаково полезны. стоповые ордера (все) исполняются по рынку
Igor Somov
424
Igor Somov 2012.06.25 10:15  

Огромное спасибо за рекомендации (не отногсящиеся правда к вопросу, но ничего, бывает)!

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

Но вопрос был другой: какие буковки КОНКРЕТНО написать для конкретной ситуации.

Alexey Subbotin
4998
Alexey Subbotin 2012.06.25 10:24  
//для начала где-то должно быть OrderSelect(), но т.к. полного кода вы не приводите, то уж извините))

int slippage = 0;// или другое проскальзывание, какое надо

if(MarketInfo(Symbol(),MODE_SPREAD)>20)// спред больше 20
{
   OrderClose(OrderTicket(),OrderLots(),MarketInfo(Symbol(),MODE_BID),slippage);// закрыть ордер BUY
}
Igor Somov
424
Igor Somov 2012.06.25 10:35  
alsu:


Спасибо, alsu !
Я не привожу кода, так как программа мне его не показывает, показывает только блоки.

А какая информация нужна для OrderSelect() ? На скрине видно? что _Order ID 1 и что slippage = 3 - может, эта?

Igor Somov
424
Igor Somov 2012.06.25 11:03  
Igogo:


Спасибо, alsu !
Я не привожу кода, так как программа мне его не показывает, показывает только блоки.

А какая информация нужна для OrderSelect() ? На скрине видно? что _Order ID 1 и что slippage = 3 - может, эта?



попробовал вставить этот код, и MT4 теперь пишет в журнале: " invalid ticket for OrderClose function"
Роман
7939
Роман 2012.06.25 11:04  
Igogo:


попробовал вставить этот код, и MT4 теперь пишет в журнале: " invalid ticket for OrderClose function"

Учите язык или приведите код полностью.
Alexey Subbotin
4998
Alexey Subbotin 2012.06.25 11:06  
Igogo:


Спасибо, alsu !
Я не привожу кода, так как программа мне его не показывает, показывает только блоки.

А какая информация нужна для OrderSelect() ? На скрине видно? что _Order ID 1 и что slippage = 3 - может, эта?

Ну, слиппаж это да, а вот _Order ID не знаю, что такое. Для OrderSelect необходим либо тикет ордера, либо его номер в пуле открытых ордеров. Как правило, способ использования OrderSelect определяется предшествующей логикой программы, с наскоку тут не скажешь. Почитайте справку к конструктору, как пишутся custom-блоки, возможно, там есть указания, каким образом в них отслеживать ордера, может есть какие-то подстановочные комбинации.
Igor Somov
424
Igor Somov 2012.06.25 11:07  
Igogo:


попробовал вставить этот код, и MT4 теперь пишет в журнале: " invalid ticket for OrderClose function"

alsu!
если нельзя определить этот тикет (не видя кода) то может быть напишете код, который просто закроет все существующие ордера?
Igor Somov
424
Igor Somov 2012.06.25 11:28  
alsu:
Ну, слиппаж это да, а вот _Order ID не знаю, что такое. Для OrderSelect необходим либо тикет ордера, либо его номер в пуле открытых ордеров. Как правило, способ использования OrderSelect определяется предшествующей логикой программы, с наскоку тут не скажешь. Почитайте справку к конструктору, как пишутся custom-блоки, возможно, там есть указания, каким образом в них отслеживать ордера, может есть какие-то подстановочные комбинации.



Они пишут в описании

" If you ever programmed MT4 or MT5 you have probably came across so called “magic number”. “Order Id” is the same as “magic
number”. We have used a term “Order Id” because it is easier to understand main purpose of this numeric identifier and its use in
the Generator."

/ /12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий