Jump to content

Время истечения отложенного ордера


Recommended Posts

LexXL

из документации в OrderSend есть параметр

expiration - Срок истечения отложенного ордера.

 

В той же документации есть пример OrderSend(Symbol(),OP_BUY,1,Ask,3,Bid-25*Point,Ask+25*Point,"My order #"+counter,16384,0,Green);

 

Мне хотелось бы узнать что означает это «магическое» число 16384 – это какое то время в секундах( или миллесекундах) и от чего от отправления ордера, или дата истечения ордера?

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

Link to post
Share on other sites
Krrot
из документации в OrderSend есть параметр

expiration - Срок истечения отложенного ордера.

 

В той же документации есть пример OrderSend(Symbol(),OP_BUY,1,Ask,3,Bid-25*Point,Ask+25*Point,"My order #"+counter,16384,0,Green);

 

Мне хотелось бы узнать что означает это «магическое» число 16384 – это какое то время в секундах( или миллесекундах) и от чего от отправления ордера, или дата истечения ордера?

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

 

Судя по вашему примеру 16384 - это параметр Magic. Magic - Магическое число ордера. Может использоваться как определяемый пользователем идентификатор позиции, которую открывает Ваш советник.

Link to post
Share on other sites
snaf

expiration - это предпоследний параметр. в примере он равен 0.

формат datatime, можно задать и дату и время с точностью до секунды.

 

Внутреннее предствление в секундах. Можно к TimeCurrent( ) прибавлять секунды

Link to post
Share on other sites
LexXL

Аааа т.е. при значении 0 он бессмертен (пока не снимется брокером). Спасибо всем за ответы.

Link to post
Share on other sites
  • 2 years later...
Ronkorn
expiration - это предпоследний параметр. в примере он равен 0.

формат datatime, можно задать и дату и время с точностью до секунды.

 

Внутреннее предствление в секундах. Можно к TimeCurrent( ) прибавлять секунды

 

Можно конкретный пример. Допустим мне нужно чтобы отложенные ордера удалялись автоматически по истечению двух суток. Соответственно для каждого ордера параметр datetime expiration должен задаваться автоматически. Как это написать?Ни где в нете этого подробно не разбирают, а я не догоняю как это сделать. Что нужно написать в параметре datetime expiration??? :ahelp:

Link to post
Share on other sites
Dedushka
Можно конкретный пример. Допустим мне нужно чтобы отложенные ордера удалялись автоматически по истечению двух суток. Соответственно для каждого ордера параметр datetime expiration должен задаваться автоматически. Как это написать?Ни где в нете этого подробно не разбирают, а я не догоняю как это сделать. Что нужно написать в параметре datetime expiration??? :ahelp:

 

Наверно всё просто - берешь текущее время и прибавляешь 2 суток (в секундах), то бишь TimeCurrent() + 2*1440*60

 

Успехов, уважаемый!

  • Thanks 1

В бой идут одни старики. (с)

Link to post
Share on other sites
Ronkorn
Наверно всё просто - берешь текущее время и прибавляешь 2 суток (в секундах), то бишь TimeCurrent() + 2*1440*60

 

Успехов, уважаемый!

Спасибо большое! Все прекрасно работает. Теперь у меня есть достойный советник.

Link to post
Share on other sites
  • 8 months later...
UncleChe

У меня в скрипте без указания срока жизни работает:

OrderSend(Symbol(), OP_BUYSTOP, OrderValue, buyPrice, 3, buySL, buyTP, "", magicNews, 0, Blue);

 

А вот с указанием нет (ордер просто не создаётся):

datetime orderExpiration = TimeCurrent() + 120;

OrderSend(Symbol(), OP_BUYSTOP, OrderValue, buyPrice, 3, buySL, buyTP, "", magicNews, orderExpiration, Blue);

 

Подскажите пожалуйста, что не так??

Link to post
Share on other sites
Glebogor
У меня в скрипте без указания срока жизни работает:

OrderSend(Symbol(), OP_BUYSTOP, OrderValue, buyPrice, 3, buySL, buyTP, "", magicNews, 0, Blue);

 

А вот с указанием нет (ордер просто не создаётся):

datetime orderExpiration = TimeCurrent() + 120;

OrderSend(Symbol(), OP_BUYSTOP, OrderValue, buyPrice, 3, buySL, buyTP, "", magicNews, orderExpiration, Blue);

 

Подскажите пожалуйста, что не так??

 

Попробуйте больше 600 секунд.

 

datetime orderExpiration = TimeCurrent() + 620;

Link to post
Share on other sites
UncleChe
Попробуйте больше 600 секунд.

 

datetime orderExpiration = TimeCurrent() + 620;

 

Методом научного тыка выяснилось, что значение Expiration, с которого ордера начинают создаваться - +666 от текущего времени и больше. Видать ничто сатанинское Альпари не чуждо. :nervous:

 

Однако, при том, что ордера создаются, время жизни всё равно не выставляется. Во всяком случае в окне ордера этого не видно (поле "Истечение" неактивно).

 

Опытным же путём выяснилось, что параметр срабатывает при значении "сутки + секунда". Какой от него в этом случае прок - непонятно. :-(

  • Thanks 1
Link to post
Share on other sites
AntFX
Какой от него в этом случае прок - непонятно. :-(

Никакого. Контролируйте сами сроки истечения в советниках.


1

Link to post
Share on other sites
UncleChe
Никакого. Контролируйте сами сроки истечения в советниках.

 

Да хотелось применить при торговле на новостях: установил срок жизни ордера минута-две - и в ус не дуешь. А придётся в очередной раз делать финт ушами, стряпать функцию по удалению ордеров. Бред. :insane:

Link to post
Share on other sites
Dedushka
Никакого. Контролируйте сами сроки истечения в советниках.

 

Хороший и практичный совет!

 

ЗЫ. Параметр этот скорее всего настраивается в серверной части у брокера. Не вижу ничего криминального в том, чтобы попросить кого-нибудь из администрации или консультантов явно и однозначно объявить и обосновать текущее значение этого параметра. Более того, полагаю, что он должен быть прописан в условиях торговли. Вся затея с МТ4 была направлена на автоматизацию торговли, любые попытки поменять курс на детскую торговлю ручками - это диверсия врагов народа, чисто контрреволюция, а с контрой разговор сами понимаете какой... :-)

  • Thanks 1

В бой идут одни старики. (с)

Link to post
Share on other sites
UncleChe
Хороший и практичный совет!

 

ЗЫ. Параметр этот скорее всего настраивается в серверной части у брокера. Не вижу ничего криминального в том, чтобы попросить кого-нибудь из администрации или консультантов явно и однозначно объявить и обосновать текущее значение этого параметра. Более того, полагаю, что он должен быть прописан в условиях торговли. Вся затея с МТ4 была направлена на автоматизацию торговли, любые попытки поменять курс на детскую торговлю ручками - это диверсия врагов народа, чисто контрреволюция, а с контрой разговор сами понимаете какой... :-)

 

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

А проблему я уже решил, благо структура алгоритма позволила провернуть это в две строки кода. :-) Но за технический прогресс, конечно же, обидно. %))

Link to post
Share on other sites
Rihter
Полностью с вами согласен... но что-то мне подсказывает, что вопрос скорее всего уже поднимался.

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

 

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

Да ничего это не значит! Тут масса случаев, когда сотрудники Альпари что-то забыли или не доделали просто по ошибке.

Link to post
Share on other sites
UncleChe
Напрасно вы так. Надо добиваться своего, тут масса случаев, когда клиенты добивались того, что хотели. А вот если молчать - то гарантированно ничего хорошего не будет.

 

Поверьте, был бы вопрос принципиальный, я бы на форум и не полез, сразу бы стал общаться с "поставщиком услуг". :-)

Просто стало интересно почему не работает и что с этим делают люди. Оказалось, что ничего не делают, а просто всё "контролируют сами". %))

Чего-то добиваться в данном вопросе смысла не вижу, т.к. использовать в своём коде параметры, которые брокер в любой момент поменяет на своё усмотрение - это наживать себе лишнюю головную боль. Зачем? Да и лишний раз попрактиковаться в преодолении препонов средствами дубового mql4... разве не здорово?? =))

Link to post
Share on other sites
Glebogor
Поверьте, был бы вопрос принципиальный, я бы на форум и не полез, сразу бы стал общаться с "поставщиком услуг". :-)

Просто стало интересно почему не работает и что с этим делают люди. Оказалось, что ничего не делают, а просто всё "контролируют сами". %))

Чего-то добиваться в данном вопросе смысла не вижу, т.к. использовать в своём коде параметры, которые брокер в любой момент поменяет на своё усмотрение - это наживать себе лишнюю головную боль. Зачем? Да и лишний раз попрактиковаться в преодолении препонов средствами дубового mql4... разве не здорово?? =))

 

Все таки проверьте свой код. Все нормально устанавливается. Счет стандарт.

post-87427-1404219701,9634_thumb.png

А, 600 секунд установлено метаквотами http://www.metatrader4.com/forum/958

Edited by Glebogor
Link to post
Share on other sites
UncleChe
Все таки проверьте свой код. Все нормально устанавливается. Счет стандарт.

[ATTACH]235184[/ATTACH]

А, 600 секунд установлено метаквотами http://www.metatrader4.com/forum/958

 

Ну я ранее описал с какими параметрами у меня работает и представил соответствующий кусок кода. Есть идеи что не так??

 

В любом случае 10 минут жизни ордера для торговли на новостях - это слишком много. А для других нужд мне этот параметр без надобности. :-/

Link to post
Share on other sites
AntFX

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


1

Link to post
Share on other sites
UncleChe
Этим параметром пользоваться не стоит, потому что он вполне может не работать у того или иного брокера. Нужно всегда самостоятельно следить в советниках за удалением отложенных ордеров.

 

По первому пункту, как уже говорил, полностью согласен - не имеет смысла использовать в коде неуниверсальные инструменты.

Что же до "слежки"... а на кой, уважаемый, мы тогда вообще заморачиваемся на какие-то там советники, если можно просто разудало кликать мышкой?? %))

 

Сейчас уже меня больше волнует вопрос, почему у людей параметр работает от 600 секунд, а у меня нет?? Есть мегагуру могущие пролить свет на загадку?? :-)

Напомню: с параметром до 666 секунд у меня ордера вообще не создаются, от 666 секунд создаются, но время жизни не выставляется (нет галочки в окне ордера). Всё работает как и ожидается лишь при значении "сутки + секунда" и больше.

Edited by UncleChe
Link to post
Share on other sites
  • Capman locked this topic
Guest
This topic is now closed to further replies.
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...