У вас не стоит Flash Player
Настройки
#25728 - Thu Apr 14 2011 12:17 PM Stateful стратегии или стратегии с состоянием?
Sherman81 Offline
enthusiast

Registered: Mon Jan 10 2011
Записи: 251
Каким образом можно правильно, с точки зрения TSLab, организовать работу стратегии с состоянием? Мне нужно сохранять некоторую рассчитанную информацию между вызовами. Каждый раз ее рассчитывать не дешево по cpu и памяти?

Наверх
#25741 - Thu Apr 14 2011 01:04 PM Re: Stateful стратегии или стратегии с состоянием? [Re: Sherman81]
CyTrade Offline
member

Registered: Wed Feb 02 2011
Записи: 116
в коде есть доступ к кешу

IList<double> high = ctx.GetData("Highest", new[] {HighPeriod.ToString()},
delegate { return Series.Highest(source.HighPrices, HighPeriod); });

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

Наверх
#25750 - Thu Apr 14 2011 01:17 PM Re: Stateful стратегии или стратегии с состоянием? [Re: CyTrade]
Nektodron Offline

Carpal Tunnel

Registered: Thu Oct 23 2008
Записи: 5492
Кеш не сохраняется между расчетами, он нужен для оптимизации, чтобы не считать одни и теже индикаторы постоянно.
Сейчас возможности сохранять информацию между расчетами нет.

Наверх
#25763 - Thu Apr 14 2011 01:56 PM Re: Stateful стратегии или стратегии с состоянием? [Re: Nektodron]
Sherman81 Offline
enthusiast

Registered: Mon Jan 10 2011
Записи: 251
Очень жаль. И возможности написать свой ISource а точнее декоратор с кэшем к другому ISource тоже нет?


Отредактировано Sherman81 (Thu Apr 14 2011 01:57 PM)

Наверх
#25764 - Thu Apr 14 2011 01:57 PM Re: Stateful стратегии или стратегии с состоянием? [Re: Sherman81]
Nektodron Offline

Carpal Tunnel

Registered: Thu Oct 23 2008
Записи: 5492
Пока не планировалось, т.к. не понятно как сохранять подобные данные между запусками программы. Кроме того, как быть с оптимизацией.

Наверх
#25765 - Thu Apr 14 2011 02:01 PM Re: Stateful стратегии или стратегии с состоянием? [Re: Nektodron]
Sherman81 Offline
enthusiast

Registered: Mon Jan 10 2011
Записи: 251
Ну в принципе, нужна просто область памяти, где можно было бы разместить свои данные, вот и все. Естественно, что в этом случае вся забота о thread safety и прочих технических вещах ложится на программиста. Я могу попробовать конечно использовать внешний storage, но тогда будет оверхед на сериализацию данных.

Мне это нужно для того, чтобы не пересчитывать на каждом тике кучу предыдущих тиков(в зависимости от объема там может быть и 1 тик и десятки тысяч).

Ну и более компактное представление тиков было бы тоже неплохо сделать, что в общем-то не сложно, если можно было бы написать свой DataSource.

Наверх
#25766 - Thu Apr 14 2011 02:22 PM Re: Stateful стратегии или стратегии с состоянием? [Re: Sherman81]
Nektodron Offline

Carpal Tunnel

Registered: Thu Oct 23 2008
Записи: 5492
На самом деле, можно и сделать подобное, но хотелось бы тогда услышать конкретные предложения, как это можно было бы включить в существующий API.

Наверх
#26053 - Mon Apr 18 2011 06:32 PM Re: Stateful стратегии или стратегии с состоянием? [Re: Nektodron]
Sherman81 Offline
enthusiast

Registered: Mon Jan 10 2011
Записи: 251
Ну если мы говорим про кэш, то вот такого интерфейса было бы вполне достаточно.

https://github.com/sherman/onTSLab/tree/master/src/trading/cache

Я не знаток c#, наверное можно написать и более просто. Например, я не знаю как правильно хранить null в таким случаях вместо default value для value types.


Отредактировано Sherman81 (Mon Apr 18 2011 06:33 PM)

Наверх
#26056 - Mon Apr 18 2011 06:57 PM Re: Stateful стратегии или стратегии с состоянием? [Re: Sherman81]
Nektodron Offline

Carpal Tunnel

Registered: Thu Oct 23 2008
Записи: 5492
Я думаю можно будет поднять вопрос о включении кеша после появлении беты следующей версии. В текущей менять/дополнять API не будем.

Наверх
#26066 - Mon Apr 18 2011 09:08 PM Re: Stateful стратегии или стратегии с состоянием? [Re: Sherman81]
GreenDo Offline
stranger

Registered: Mon Apr 18 2011
Записи: 3
Originally Posted By: Sherman81
Каким образом можно правильно, с точки зрения TSLab, организовать работу стратегии с состоянием? Мне нужно сохранять некоторую рассчитанную информацию между вызовами. Каждый раз ее рассчитывать не дешево по cpu и памяти?

Извините, что вмешиваюсь с возможно глупым предложением. Просто интересно новичку. А нельзя ли просто в файл сохранить? Обычными методами c# из скрипта? Вообще можно ли использовать в скрипте System.IO?

Наверх
#26075 - Mon Apr 18 2011 11:53 PM Re: Stateful стратегии или стратегии с состоянием? [Re: GreenDo]
Sherman81 Offline
enthusiast

Registered: Mon Jan 10 2011
Записи: 251
В файл можно, но надо еще замерить насколько это будет быстро. Дело в том, что там же пересчет несколько раз в секунду, а сериализция не бесплатна.

Наверх


Moderator:  ViL, sar