Мелкие/различные вопросы по разным темам

Мелкие/различные вопросы по разным темам
Atom
16.05.2013
UsilaDobry


Доброго дня Иван. Несколько маленьких вопросов по разным темам.

  1. Если в стратегию значения индикатора передаются вот так
_strategy = new SquatCandleStrategy(series, (BollingerBands)_chartBollingerElement.Indicator)

при этом вывод на график и запуск стратегии в разных обработчиках, стратегия не будет генерировать сигналы от индикатора, пока не запустится вывод на график?

  1. Я в стратегии получаю значения индикатора вот так, и стратегия работает ```csharp var currentValueBbLow = _bollinger.LowBand.GetCurrentValue(); var currentValueBbUp = _bollinger.UpBand.GetCurrentValue();
а когда вывожу в debug, то получаю нули. Почему
```csharp
series.ProcessCandle += candle =>
                    {
                        if (candle.State != CandleStates.Finished)
                            return;
                        var currentValueBbLow = _bollinger.LowBand.GetCurrentValue();
                        var currentValueBbUp = _bollinger.UpBand.GetCurrentValue();
                        Debug.WriteLine("{0}, {1}, {2}", candle.ToString(), currentValueBbUp, currentValueBbLow);
                    };
  1. У меня не выводится график и не приходят свечи по фьючерсам с демосервера, а по акциям в норме. При этом, инструмент торгуется, в стакане котировки идут, в ручную продать/купить могу. Но в таблице всех сделок нет сделок по фьючерсам. В этой таблице фьючерсы включены. Это проблема Квика или моего проекта?

  2. Вернусь к первым вопросам. Если стратегия в таком случае зависит от графика, то чтобы запустить одинаковую стратегию несколько раз, но по разным таймфреймам, как лучше поступить? Получается стратегии запускаются со своими таймфреймами, а график генерирует значения индикатора, которые передаются в стратегии по одному таймфрейму...?

  3. Дайте направление для поиска. Возможно ли информационные логи фильтровать и выводить в какой-то экран или таблицу отдельно. Т.е. стратегия генерирует сигналы, я эти сигналы сейчас отслеживаю на корректность по логам, это не удобно, потому что много других сообщений поступает от стратегии и читабельность сложная. Что посоветуете? В документации вскользь сказано про создание своих Listeners, но информации мало, да и в том ли я направлении мыслю... Или может быть можно изменить StatisticParametrsPanel, как то сигналы стратегии сделать параметрами стратегии и выводить в такую панель название и значение...Что подскажете?


Теги:


Спасибо:


IvanB

Фотография
Дата: 17.05.2013
Ответить


UsilaDobry: Доброго дня Иван. Здравствуйте. UsilaDobry: Несколько маленьких вопросов по разным темам.

  1. Если в стратегию значения индикатора передаются вот так

_strategy = new SquatCandleStrategy(series, (BollingerBands)_chartBollingerElement.Indicator)

> при этом вывод на график и запуск стратегии в разных обработчиках, стратегия не будет генерировать сигналы от индикатора, пока не запустится вывод на график?
Да, если новые значения передаются в индикатор внутри метода вывода значений на график. 
> **[UsilaDobry](@message(25972)):**
> 2. Я в стратегии получаю значения индикатора вот так, и стратегия работает
>                             ```csharp
var currentValueBbLow = _bollinger.LowBand.GetCurrentValue();
                            var currentValueBbUp = _bollinger.UpBand.GetCurrentValue();

а когда вывожу в debug, то получаю нули. Почему

series.ProcessCandle += candle => { if (candle.State != CandleStates.Finished) return; var currentValueBbLow = _bollinger.LowBand.GetCurrentValue(); var currentValueBbUp = _bollinger.UpBand.GetCurrentValue(); Debug.WriteLine("{0}, {1}, {2}", candle.ToString(), currentValueBbUp, currentValueBbLow); };

Нужно выводить конкретные свойства объектов currentValueBbUp, currentValueBbLow.
> **[UsilaDobry](@message(25972)):**
> 3. У меня не выводится график и не приходят свечи по фьючерсам с демосервера, а по акциям в норме. При этом, инструмент торгуется, в стакане котировки идут, в ручную продать/купить могу. Но в таблице всех сделок нет сделок по фьючерсам. В этой таблице фьючерсы включены. Это проблема Квика или моего проекта?
Если в квике таблица "Все сделки" пустая, то дело в квике, тут только обращаться в поддержку.
> **[UsilaDobry](@message(25972)):**
> 4. Вернусь к первым вопросам. Если стратегия в таком случае зависит от графика, то чтобы запустить одинаковую стратегию несколько раз, но по разным таймфреймам, как лучше поступить? Получается стратегии запускаются со своими таймфреймами, а график генерирует значения индикатора, которые передаются в стратегии по одному таймфрейму...?
Стратегия не зависит от графика.
Если надо несколько стратегий с разными таймфреймами, то нужно создать соответствующие серии свечей (по нужным таймфреймам) и работать с ними.
> **[UsilaDobry](@message(25972)):**
> 5. Дайте направление для поиска. Возможно ли информационные логи фильтровать и выводить в какой-то экран или таблицу отдельно. Т.е. стратегия генерирует сигналы, я эти сигналы сейчас отслеживаю на корректность по логам, это не удобно, потому что много других сообщений поступает от стратегии и читабельность сложная. Что посоветуете? В документации вскользь сказано про создание своих Listeners, но информации мало, да и в том ли я направлении мыслю... Или может быть можно изменить StatisticParametrsPanel, как то сигналы стратегии сделать параметрами стратегии и выводить в такую панель название и значение...Что подскажете?
Думаю, Вам нужно воспользоваться свойством Filters у лог-менеджера.
Спасибо: UsilaDobry

UsilaDobry

Фотография
Дата: 18.05.2013
Ответить


IvanB:

UsilaDobry: 5. Дайте направление для поиска. Возможно ли информационные логи фильтровать и выводить в какой-то экран или таблицу отдельно. Т.е. стратегия генерирует сигналы, я эти сигналы сейчас отслеживаю на корректность по логам, это не удобно, потому что много других сообщений поступает от стратегии и читабельность сложная. Что посоветуете? В документации вскользь сказано про создание своих Listeners, но информации мало, да и в том ли я направлении мыслю... Или может быть можно изменить StatisticParametrsPanel, как то сигналы стратегии сделать параметрами стратегии и выводить в такую панель название и значение...Что подскажете? Думаю, Вам нужно воспользоваться свойством Filters у лог-менеджера.

Такое свойство я нашел не у лог-менеджера, а у слушателя. Может я не там ищу? ```csharp var signalStrategy = new GuiLogListener(SignalStrategy); signalStrategy.Filters.Add(msg => msg.Level == LogLevels.Info); _logManager.Listeners.Add(signalStrategy)); _logManager.Sources.Add(_breakdownBbStrategy);


В данном случае фильтрация по уровню Info выводит все информационные сообщения, а мне надо выводить только мои информационные сообщения, которые я добавил в логирование через AddInfolog, например: 
```csharp
this.AddInfoLog("НОВЫЙ Контрольный уровень High {0}", _levelHighTangentDown);

У параметра msg есть свойство msg.Message, может как то надо его конкретизировать?

signalStrategy.Filters.Add(msg => msg.Message == Message.???);
Спасибо:

IvanB

Фотография
Дата: 19.05.2013
Ответить


UsilaDobry: Такое свойство я нашел не у лог-менеджера, а у слушателя. Может я не там ищу? ```csharp var signalStrategy = new GuiLogListener(SignalStrategy); signalStrategy.Filters.Add(msg => msg.Level == LogLevels.Info); _logManager.Listeners.Add(signalStrategy)); _logManager.Sources.Add(_breakdownBbStrategy);

> 
> В данном случае фильтрация по уровню Info выводит все информационные сообщения, а мне надо выводить только мои информационные сообщения, которые я добавил в логирование через AddInfolog, например:
> ```csharp
this.AddInfoLog("НОВЫЙ Контрольный уровень High {0}", _levelHighTangentDown);

У параметра msg есть свойство msg.Message, может как то надо его конкретизировать?

signalStrategy.Filters.Add(msg => msg.Message == Message.???);

Да, верно, свойство Filters есть у объектов Listener.
Фильтрацию можно задавать произвольным образом, используя предикат, здесь используется фильтрация по типу:
```csharp
signalStrategy.Filters.Add(msg => msg.Level == LogLevels.Info);

По сути, Ваши записи, отправленные в лог, ничем не отличаются от тех, которые записывает система, разве что текстом сообщения. Вот, поэтому, если Вам надо найти исключительно свои сообщения, то нужно, правильно Вы написали, использовать фильтрацию по сообщению, но:

  1. если сообщения будут слишком частые, то это скажется на производительности системы, т.к. нужно делать поиск в строке, а это относительно простого сравнения типа сообщения, ресурсоемко
  2. Вы должны вставлять в свои сообщения специальный Флаг, по которому можно было бы отследить Ваши сообщения
Спасибо: UsilaDobry


Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy