У вас не стоит Flash Player
Настройки
#35636 - Thu Jan 12 2012 03:41 AM Разница в коде с Context.GetData и без него
fc115240 Offline
stranger

Registered: Fri Jul 08 2011
Записи: 12
Здравствуйте, уважаемые разработчики.

Пытаюсь писать самостоятельно но есть некоторое недопонимание, например, в чем принципиальная разница в коде между двумя вариантами написания:

Вариант 1:
var TR = Series.TrueRange(source.Bars);

Вариант 2 (в соотсветствии с примером из документации по TSLab - сделано так же как для индикатора MyStochK):
var TR = Context.GetData("TR", new[] { Period.ToString() },
() => Series.TrueRange(source.Bars));

Результат получается один и тот же, но хотелось бы понимать какой из кодов предпочтительнее и почему.
Заранее спасибо за ответ.

Наверх
#35637 - Thu Jan 12 2012 04:11 AM Re: Разница в коде с Context.GetData и без него [Re: fc115240]
vito333 Offline
Pooh-Bah

Registered: Wed Oct 26 2011
Записи: 2108
Loc: botland
в документации вроде описано (а может на форуме), что второй вариант предпочтительнее, так как значительно ускоряет оптимизацию скрипта за счёт кэширования уже просчитанных данных

это действительно так

Наверх
#35662 - Thu Jan 12 2012 02:34 PM Re: Разница в коде с Context.GetData и без него [Re: vito333]
Nektodron Offline

Carpal Tunnel

Registered: Thu Oct 23 2008
Записи: 5492
Только в данном случае никого смысла привязываться к Peroid нет, т.к. он не используется в индикаторе
var TR = Context.GetData("TR", new string[0],
() => Series.TrueRange(source.Bars));

Наверх
#35704 - Fri Jan 13 2012 01:12 AM Re: Разница в коде с Context.GetData и без него [Re: Nektodron]
fc115240 Offline
stranger

Registered: Fri Jul 08 2011
Записи: 12
Спасибо всем большое за ответы.
Хотел бы уточнить еще один момент. Правильно ли я понимаю, что вызов своих методов, для ускорения оптимизации, я так же должен осуществлять, используя Context.GetData, например:

var closes = source.ClosePrices;
var NRTR = Context.GetData("NRTR", new string[0],
() => fcLIB.NRTR(closes, K));

метод я описываю так:
static public IList<double> NRTR(IList<double> closes, double K)

данный код работает, но хотелось бы иметь уверенность что это действительно имеет смысл делать.
Спасибо.


Отредактировано fc115240 (Fri Jan 13 2012 05:08 AM)

Наверх
#35820 - Sun Jan 15 2012 04:24 AM Re: Разница в коде с Context.GetData и без него [Re: fc115240]
fc115240 Offline
stranger

Registered: Fri Jul 08 2011
Записи: 12
вроде разобрался, померял время выполнения с различными типами запуска в мсек, с Context.GetData все работает быстрее в среднем 60-80 раз.
Осталось для меня загадкой для чего в Context.GetData первые два параметра:
string handlerName,
string[] parameters.
Их изменение не влияет на результат.
Уважаемые разработчики, ответьте пожалуйста, для чего эти параметры?

Наверх
#36680 - Mon Jan 30 2012 01:46 PM Re: Разница в коде с Context.GetData и без него [Re: fc115240]
vito333 Offline
Pooh-Bah

Registered: Wed Oct 26 2011
Записи: 2108
Loc: botland
видимо, чтобы как-то различать кэшированные данные

Наверх


Moderator:  ViL, sar