Только при размещении ордера. Тип транзакции TRADE_TRANSACTION_ORDER_ADD
А потом её надо хранить до изменения.
Как вы вообще себе представляете это? Я храню в каком-то массиве или списке все ордера и их цены открытия. Каждый раз при обновлении (TRADE_TRANSACTION_ORDER_UPDATE) я пробегаю по этому списку с целью отыскать ордер с нужным тикетом? Неужели нет поэлегантнее решения?
Как вы вообще себе представляете это? Я храню в каком-то массиве или списке все ордера и их цены открытия. Каждый раз при обновлении (TRADE_TRANSACTION_ORDER_UPDATE) я пробегаю по этому списку с целью отыскать ордер с нужным тикетом? Неужели нет поэлегантнее решения?
Смотря какая цель ловли обновления. Может просто перезаполнить массив?
Смотря какая цель ловли обновления. Может просто перезаполнить массив?
А какая разница какая цель? Вопрос ведь в том, почему такое очевидное событие так трудно отловить, при том, что там до жути других менее используемых и нужных свойств. В данном случае цель - нотификация (алерт).
А какая разница какая цель? Вопрос ведь в том, почему такое очевидное событие так трудно отловить, при том, что там до жути других менее используемых и нужных свойств. В данном случае цель - нотификация (алерт).
Так вот именно это очевидное событие и выделено в тип транзакции. Попробуйте библиотеку Тришкина в 58ми статьях. Может в ней есть простой вариант.
Изменение открытого ордера. К данным изменениям относятся не только явные изменения со стороны клиентского терминала или торгового сервера, но также и изменение его состояния при выставлении (например, переход из состоянияORDER_STATE_STARTEDвORDER_STATE_PLACEDили изORDER_STATE_PLACEDвORDER_STATE_PARTIALи т.д.).
Мне достаточно было бы знать, что это не первый ORDER_STATE_PLACED по конкретному тикету ордера.
Получается два TRADE_TRANSACTION_ORDER_UPDATE приходят при первом размещении ордера. Вот, а третий мне бы уже подошёл, как изменение, которое в моем случае только изменение цены. Либо второй ORDER_STATE_PLACED.
Приказы на проведение торговых операций оформляются ордерами. Каждый ордер имеет множество свойств для чтения, информацию по ним можно получать с помощью функций Идентификатор позиции, который ставится на ордере при его исполнении. Каждый исполненный ордер порождает сделку, которая открывает новую или изменяет уже существующую позицию...
Сделал по примеру с МТ4 "СТРОКИ: ТАБЛИЦА СИМВОЛОВ ASCII И ЕЁ ИСПОЛЬЗОВАНИЕ"
//+------------------------------------------------------------------+//| StringLowerCase |//+------------------------------------------------------------------+string StringLowerCase(string str)
{
string s = str;
int lenght = StringLen(str) - 1, symbol;
while(lenght >= 0)
{
symbol = StringGetChar(s, lenght);
if((symbol > 64 && symbol < 91) || (symbol > 191 && symbol < 224))
s = StringSetChar(s, lenght, symbol + 32);// тут possible loss of data due to type conversionelseif(symbol > -65 && symbol < -32)
s = StringSetChar(s, lenght, symbol + 288);// тут possible loss of data due to type conversion
lenght--;
}
return(s);
}
//+------------------------------------------------------------------+//| StringUpperCase |//+------------------------------------------------------------------+string StringUpperCase(string str)
{
string s = str;
int lenght = StringLen(str) - 1, symbol;
while(lenght >= 0)
{
symbol = StringGetChar(s, lenght);
if((symbol > 96 && symbol < 123) || (symbol > 223 && symbol < 256))
s = StringSetChar(s, lenght, symbol - 32);// тут possible loss of data due to type conversionelseif(symbol > -33 && symbol < 0)
s = StringSetChar(s, lenght, symbol + 224);// тут possible loss of data due to type conversion
lenght--;
}
return(s);
}
Очевидно, что сравнить цену «вчера» и «сегодня». Грубо говоря, какая была и какая теперь. Если изменилась, значит это то что надо.
То есть, мне где-то хранить вчерашнюю цену? В OnTradeTransaction я же её получить не могу?
То есть, мне где-то хранить вчерашнюю цену? В OnTradeTransaction я же её получить не могу?
Только при размещении ордера. Тип транзакции TRADE_TRANSACTION_ORDER_ADD
А потом её надо хранить до изменения.
Вы к
Только при размещении ордера. Тип транзакции TRADE_TRANSACTION_ORDER_ADD
А потом её надо хранить до изменения.
Как вы вообще себе представляете это? Я храню в каком-то массиве или списке все ордера и их цены открытия. Каждый раз при обновлении (TRADE_TRANSACTION_ORDER_UPDATE) я пробегаю по этому списку с целью отыскать ордер с нужным тикетом? Неужели нет поэлегантнее решения?
Вы к
Как вы вообще себе представляете это? Я храню в каком-то массиве или списке все ордера и их цены открытия. Каждый раз при обновлении (TRADE_TRANSACTION_ORDER_UPDATE) я пробегаю по этому списку с целью отыскать ордер с нужным тикетом? Неужели нет поэлегантнее решения?
Смотря какая цель ловли обновления. Может просто перезаполнить массив?
Смотря какая цель ловли обновления. Может просто перезаполнить массив?
А какая разница какая цель? Вопрос ведь в том, почему такое очевидное событие так трудно отловить, при том, что там до жути других менее используемых и нужных свойств. В данном случае цель - нотификация (алерт).
А какая разница какая цель? Вопрос ведь в том, почему такое очевидное событие так трудно отловить, при том, что там до жути других менее используемых и нужных свойств. В данном случае цель - нотификация (алерт).
Так вот именно это очевидное событие и выделено в тип транзакции. Попробуйте библиотеку Тришкина в 58ми статьях. Может в ней есть простой вариант.
в 58ми статьяхНу спасибо ))
Подозреваю, что он так же ведёт свой реестр.
Мне достаточно было бы знать, что это не первый ORDER_STATE_PLACED по конкретному тикету ордера.
Получается два TRADE_TRANSACTION_ORDER_UPDATE приходят при первом размещении ордера. Вот, а третий мне бы уже подошёл, как изменение, которое в моем случае только изменение цены. Либо второй ORDER_STATE_PLACED.
Если не сложно помоги пожалуйста исправить..
Сделал по примеру с МТ4 "СТРОКИ: ТАБЛИЦА СИМВОЛОВ ASCII И ЕЁ ИСПОЛЬЗОВАНИЕ"
Если не сложно помоги пожалуйста исправить..
StringSetChart() bool же возвращает, вроде как. А вы к стринговой переменной присваиваете.. Если в этом вопрос.