SmartQuant Discussion
http://www.smartquant.com/forums/

Потеря ссылки на BarSeries
http://www.smartquant.com/forums/viewtopic.php?f=65&t=10581
Page 1 of 1

Author:  Pavel [ Thu Sep 05, 2013 9:41 am ]
Post subject:  Потеря ссылки на BarSeries

Здравствуйте. Замечена следующая потеря ссылки на инстанс BarSeries (в солюшене один таймфрейм, в проекте в инструментах одна бумага):
Code:
using System;
using System.Drawing;
using OpenQuant.API;
using OpenQuant.API.Indicators;

public class MyStrategy : Strategy
{
   BarSeries _series;
   
   public override void OnStrategyStart()
   {
      _series = Bars;
   }

   public override void OnBar(Bar bar)
   {
      _series.Equals(Bars);   //Equals возвращает false. Почему?
   }
}

Author:  Alexei Kurov [ Thu Sep 05, 2013 3:09 pm ]
Post subject:  Re: Потеря ссылки на BarSeries

Здравствуйте.

Тут потери ссылки нету. Обьект возвращаемый свойством Bars всегда другой, хоть и работает с одной и той же серией.
Code:
this.Bars.Equals(this.Bars) == false

Author:  Pavel [ Thu Sep 05, 2013 3:25 pm ]
Post subject:  Re: Потеря ссылки на BarSeries

Алейксей, здравствуйте. Спасибо за ответ. А чем вызвано решение подавать в стратегию разный инстанс BarSeries? Можно ли использовать в качестве уникального ключа имя BarSeries (для идентификации)?

Author:  Dr. Anton Fokin [ Thu Sep 05, 2013 3:37 pm ]
Post subject:  Re: Потеря ссылки на BarSeries

На самом деле каждое обращение к этому свойству возвращает враппер на BarSeries низкоуровнего фреймворка, поэтому собственно такой вот забавный результат.

Author:  Alexei Kurov [ Thu Sep 05, 2013 4:01 pm ]
Post subject:  Re: Потеря ссылки на BarSeries

Я бы не назвал это специальным решением, скорее так получается из-за особенностей внутренней кухни АПИ.
Имя серии не всегда будет одним и тем же. По крайней мере, в OnStrategyStart оно будет отличаться. После первого бара будет постоянным.

Author:  Pavel [ Thu Sep 05, 2013 4:23 pm ]
Post subject:  Re: Потеря ссылки на BarSeries

Alexei Kurov wrote:
Я бы не назвал это специальным решением, скорее так получается из-за особенностей внутренней кухни АПИ.
Имя серии не всегда будет одним и тем же. По крайней мере, в OnStrategyStart оно будет отличаться. После первого бара будет постоянным.
А почему ж так? Instrument.Symbol, фрейм и тип (которые участвуют в формировании имени) в BarSeries уже определены в проекте и солюшене соответственно.
Quote:
После первого бара будет постоянным.
До или после обработчика OnBar?

Author:  Alexei Kurov [ Thu Sep 05, 2013 4:38 pm ]
Post subject:  Re: Потеря ссылки на BarSeries

потому что Bars возвращает серию баров того типа и того размера, что придет первым.
То есть, определение типов и размеров вовсе не задает порядок этих баров.

В самом обработчике OnBar барная серия уже имеет постоянное имя.

Page 1 of 1 All times are UTC + 3 hours
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/