Ошибки, баги, вопросы - страница 290

 
Interesting:
Интересует какая-то конкретная позиция (известен символ и ее Id) или общий случай для всех позиций?
Есть 3 позиции по 3 разным известным инструментам, надо проверять во время прихода сигнала на открытие, время изменения чтобы не добавлять слишком часто.
 
Interesting:

Интересует какая-то конкретная позиция (известен символ и ее Id) или общий случай для всех позиций?

Если просто рыться в истории и анализировать сделки (при помощи mydeal), то примерно так:

1. Получаем общее количество сделок за период, перебирая их выбирая только те что по символу/или те которые участвовали в формировании позы

2. отбирать сделки луче не по символу, а по идентификатору конкретной позиции (так проще и надежней).

Хотя уверен есть более правильные и простые решения.

Спасибо за решение. 

Я думал, что не доглядел где-то в стандартной библиотеке, есть время открытия  а время изменения тоже как важный параметр?

 
beginner:
Есть 3 позиции по 3 разным известным инструментам, надо проверять во время прихода сигнала на открытие, время изменения чтобы не добавлять слишком часто.

Доработайте мой пример (возможно есть там неточности). после чего оформите его в функцию с параметрами SymbolTitle и ID (если понадобится идентификатор).

И вызывайте функцию из любого места.

Прикольным вариантом будет создать своего потомка от CPositionInfo и добавить ему подобный функционал.

PS

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

 
Dima_S:

Вот такая ерунда полезла в журнале после выполнения команды обновить на графике:

2011.02.03 02:24:51    HistoryBase    '#IBM' 1 invalid bars removed
2011.02.03 02:24:50    HistoryBase    '#IBM' 1 invalid bars removed
2011.02.03 02:24:49    HistoryBase    '#IBM' 1 invalid bars removed
2011.02.03 02:24:48    HistoryBase    '#IBM' 1 invalid bars removed
2011.02.03 02:24:47    HistoryBase    '#IBM' 1 invalid bars removed
2011.02.03 02:24:46    HistoryBase    '#IBM' 1 invalid bars removed

и т.д. через каждую секунду.

ТФ часовой

Спасибо за сообщение. Исправили.
 
beginner:

Спасибо за решение. 

Я думал, что не доглядел где-то в стандартной библиотеке, есть время открытия  а время изменения тоже как важный параметр?

А что Вы понимаете под 'время изменения позиции' ? Что там должно измениться, чтобы Вы заметили изменения ?
 
Valmars:
А что Вы понимаете под 'время изменения позиции' ? Что там должно измениться, чтобы Вы заметили изменения ?
Объем.
 
beginner:
Объем.

А чем вас это не устроит :)

double vol1 =0.0;
double vol2 =0.0;
if(PositionSelect(Symbol1)) vol1=PositionGetDouble(POSITION_VOLUME);
if(PositionSelect(Symbol2)) vol2=PositionGetDouble(POSITION_VOLUME);
Print ("vol1=",vol1,"vol2=",vol2);
if (vol2<=vol1)
 
alexluek:

А чем вас это не устроит :)

Интересно как я из этого узнаю, что минуту назад изменилась позиция по Symbol1.
 
Interesting:

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

Но есть функция HistorySelectByPosition(), которая делает тоже самое, достаточно знать идентификатор позиции. И позволяет получить историю как по существующей позиции, так и по уже закрытым. Предлагаемый Вами метод что будет возвращать ? Массив сделок по существующей позе, или всю историю по инструменту ? А если позиции в данный момент нет, то что он вернёт ?


 
beginner:
Объем.
Время открытия позиции всегда одно, а  изменение объёма (и/или направления) позиции в период её существования может быть множество, и что, вы хотите получить весь массив времени изменения объёма позиции с помощью метода стандартной библиотеки ? Изменение объёма всегда происходит в результате совершения сделки, так что надо анализировать историю сделок для данной позиции, а там отражено и время совершения сделки. Если Вам нужно время последнего изменения позиции, то надо найти в истории последнюю сделку для данной позиции и посмотреть, чему равно DEAL_TIME для неё.