Думаю, единственный вариант - для каждого отложенника запоминать его тип непосредственно при отдаче приказа. Т.е. хранить в памяти пары (тикет, тип приказа). Поскольку тикет при срабатывании не изменяется, то для любой открытой позиции не составит труда определить, кем она была в прошлой жизни.
Это верно лишь для случая, когда анализируются собственные торговые приказы :)
проще в коммент запихнуть. Типа кодов SS SL BS BL
;)
Есть ещё вариант - посмотреть тренд, предшествующий времени открытия ордера (анализировать можно по хай/лоу свеч). Если тренд ехал сверху-вниз, то сработал бай-лимит, если снизу-вверх, то бай-стоп. Хотя, действительно, проще запоминать. И можно даже в текстовый документ (во избежание аварийного отключения электропитания).
avatara:
проще в коммент запихнуть. Типа кодов SS SL BS BL
;)
Это плохой способ - есть операции над ордерами, в результате которых коммент ордера менятется - терминал вносит в коммент данные.
Код, кажись, будет примерно такой
int _tickets[],_types[]; int init() { ... ArrayResize(_tickets,0); ArrayResize(_types,0); ArraySetAsSeries(_tickets,false); ArraySetAsSeries(_types,false); ... } int deinit() { ... //прибираемся ArrayResize(_tickets,0); ArrayResize(_types,0); ... } int start() { ... int ticket; ... ticket = OrderSend(...); //сразу после открытия отложенника надо запомнить его тип и тикет: OrderSelect(ticket,SELECT_BY_TICKET); ArrayAppend(_tickets,ticket); ArrayAppend(_types,OrderType()); ... //пусть теперь есть некая открытая позиция с тикетом some_ticket, узнаем ее изначальный тип: int initial_type = OrderInitialType(some_ticket); if(initial_type!=EMPTY) { //делаем что задумали ... } } void ArrayAppend(int &a[], int value = 0) { bool series = ArrayGetAsSeries(a); ArraySetAsSeries(a,false); ArrayResize(a,ArraySize(a)+1); a[ArraySize(a)-1]=value; ArraySetAsSeries(a,series); } //функция вернет начальный тип ордера, если он был ранее занесен в базу, или EMPTY в противном случае int OrderInitialType(int ticket) { int i, sz = ArraySize(_tickets); for(i=0;i<sz;i++) { if(tickets[i]==ticket) return(_types[i]); } return(EMPTY); }
alsu:
Думаю, единственный вариант - для каждого отложенника запоминать его тип непосредственно при отдаче приказа. Т.е. хранить в памяти пары (тикет, тип приказа). Поскольку тикет при срабатывании не изменяется, то для любой открытой позиции не составит труда определить, кем она была в прошлой жизни.
Думаю, единственный вариант - для каждого отложенника запоминать его тип непосредственно при отдаче приказа. Т.е. хранить в памяти пары (тикет, тип приказа). Поскольку тикет при срабатывании не изменяется, то для любой открытой позиции не составит труда определить, кем она была в прошлой жизни.
То есть можно просто найти текущую позицию изъять из неё тикет и порыться в истории?
Спасибо большое! Так и буду пробовать!
avatara:
Тогда уж лучше в магик: каждому типу дать свой Magic number
проще в коммент запихнуть. Типа кодов SS SL BS BL
;)
drknn:
Это плохой способ - есть операции над ордерами, в результате которых коммент ордера менятется - терминал вносит в коммент данные.
Это плохой способ - есть операции над ордерами, в результате которых коммент ордера менятется - терминал вносит в коммент данные.
Какие это операции? Конкретно если можно! Потому что парень довольно неплохое решение предложил, просто, не затратно и не мудрено.
jhon:
Нет, не выйдет: историю надо записывать самостоятельно, как в вышеприведенном коде. Ну, или действительно, воспользоваться магиками, это проще))
То есть можно просто найти текущую позицию изъять из неё тикет и порыться в истории?
Спасибо большое! Так и буду пробовать!
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Здравствуйте уважаемые форумчане.
Подскажите пожалуйста как узнать Тип ордера имея уже позицию. То есть... Есть активная позиция с типом OP_BUY, как узнать кем она была до того ка стала позицией? Была она OP_BUYSTOP или OP_BUYLIMIT???
Заранее Благодарен