У вас не стоит Flash Player
Настройки
#37905 - Wed Feb 29 2012 12:02 AM Как правильно получать список сделок?
Sherman81 Offline
enthusiast

Registered: Mon Jan 10 2011
Записи: 251
Допустим мой алгоритм запущен в реальные торги с 1.12.2011.

Я хочу, чтобы при каждом перезапуске на очередном баре, я имел бы список сделок. Я делаю это так:

Code:
IEnumerator<IPosition> positionEnum = source.Positions.GetEnumerator();

while (positionEnum.MoveNext()) {
  if (
    positionEnum.Current.EntryBarNum > fromBar
    && positionEnum.Current.EntryBarNum <= toBar
    && !positionEnum.Current.IsActive
  ) {
    // do work here
  }
}


Но это работает почему-то только в лаборатории.
fromBar, toBar - просто небольшая оптимизация, чтобы не просматривать каждый раз весь список?

Для realtime нужно использоваться что-то другое?

update:
Точнее проблема похоже в методе Profit() у позиции. Оно почему-то возвращает иногда 0, вместо реальной цифры. А в лаборатории все ок.

Воспроизводится так. заводите боевой скрипт. Внутри цикла с барами пишите вышеозначенный код. И вывод positionEnum.Current.Profit() на в лог. Затем нажимаете "старт" в панели управления скриптами, в логе будут ноли.


Отредактировано Sherman81 (Wed Feb 29 2012 12:19 AM)

Наверх
#37907 - Wed Feb 29 2012 01:00 AM Re: Как правильно получать список сделок? [Re: Sherman81]
Sherman81 Offline
enthusiast

Registered: Mon Jan 10 2011
Записи: 251
Зато ручной расчет с помощью свойств EntryPrice и ExitPrice работает.

По-моему, это баг.

Наверх
#38443 - Sat Mar 10 2012 08:25 PM Re: Как правильно получать список сделок? [Re: Sherman81]
Nektodron Offline

Carpal Tunnel

Registered: Thu Oct 23 2008
Записи: 5492
Профит для свечей, когда позиция не существует, будет 0.

Наверх


Moderator:  ViL, sar