У вас не стоит Flash Player
Настройки
#79848 - Thu Sep 29 2016 05:19 PM Оптимизационное время в TsLab Api
Fresto Offline
journeyman

Registered: Wed Jul 27 2016
Записи: 84
Выучил почти весь синтаксис АПИ, делаю скрипты, но самая основная проблема заключается лишь в оптимизационном времени. Ранее всё высчитывал сам, тут же и в кэш добавляю, и убираю визуализацию во время оптимизации. И всё равно время показывает очень большое ( 5 часов, вместо 1)

Что может быть в коде не так? Уже даже сам код стараюсь оптимизировать. А толку..

P.s. сделал такой же скрипт в визуальном редакторе, открыл его cs файл и никакой разницы, в принципе, не заметил, хотя время оптимизации различается..


Attachments
Class1.cs (60 downloads)



Отредактировано Fresto (Thu Sep 29 2016 05:44 PM)

Наверх
#79974 - Tue Oct 11 2016 12:00 PM Re: Оптимизационное время в TsLab Api [Re: Fresto]
Fresto Offline
journeyman

Registered: Wed Jul 27 2016
Записи: 84
Может быть разница в том, что в одном случае мы берем свойства объектов Бар, а в другом случае мы берем данные мах, мин, open, close их кэшированного списка. Может в этом и заключается такая большая разница во времени.

Наверх
#79975 - Tue Oct 11 2016 12:22 PM Re: Оптимизационное время в TsLab Api [Re: Fresto]
ra81 Offline
Carpal Tunnel

Registered: Thu Sep 27 2012
Записи: 2860
high = sec.HighPrices[i];
low = sec.LowPrices[i];
highM = sec2.HighPrices[i];
lowM = sec2.LowPrices[i];

так нельзя. связано с тем что при обращении к данным массивам сначала идет обращение в кэш и это жрет много времени. посмотрите как реализовано в нативном коде тслаба. обычно перед торговым циклом всегда идет забор этих массивов в локальную переменную и дальше работаем с миссивами из локальных переменных.
Это может сильно влиять.
В общем как я ранее говорил - изучайте статьи на русалго по скорости скриптов ну и нужен опыт. Иначе можно легко написать плохо.
_________________________
__


Наверх
#79976 - Tue Oct 11 2016 12:47 PM Re: Оптимизационное время в TsLab Api [Re: ra81]
Fresto Offline
journeyman

Registered: Wed Jul 27 2016
Записи: 84
Да вот моя и главная проблема - сразу в бой. Без изучения всех тонкостей языка и библиотек TsLab API. Спасибо, видимо, в этом и была причина большого времени оптимизации в сравнении с визуальным редактором.


Отредактировано Fresto (Tue Oct 11 2016 12:55 PM)

Наверх
#80064 - Wed Oct 19 2016 10:37 AM Re: Оптимизационное время в TsLab Api [Re: Fresto]
Fresto Offline
journeyman

Registered: Wed Jul 27 2016
Записи: 84
Вот я, кстати, об этом думал, про то, что мы берем свойства объектов sec.Bars[i].Close, sec.Bars[i].High, а в визуальном редакторе там всё забивается в отдельные массивы. И поэтому думал, что брать свойства будет быстрее, чем там массивы Close, Open, Volume, Max, Min. А оказывается наоборот.

Наверх
#80070 - Wed Oct 19 2016 03:19 PM Re: Оптимизационное время в TsLab Api [Re: Fresto]
Atomic Offline
newbie

Registered: Mon Oct 10 2016
Записи: 27
была такая же проблема, решил так:
объявляем новый лист ASD<double>() в классе.

На последнем баре, передаем сразу весь лист (т.е. к кэшу только один раз обращаемся):
ASD = source.HighPrices;

далее, поциклово (в зависимости от задач) обращаемся уже к ASD. Тогда, внутри этого цикла (i=n, i<m, i++), мы на каждой итерации обращаемся не к кэшу (через source.HighPrices[i] ), а к новому листу.

При такой передаче, скорость этого цикла в 4 раза выше (на входе инструмент).

Также, это явно лучше, чем передавать в инпуты значения и их записывать (отдельные инпуты для Open, Close, Low, High).

Скорость получается такая же, как и для 4 инпутов, но у нас больше данных со входа + еще 3 инпута не занятых.

Наверх


Moderator:  ViL, sar