Использование TSLab API в SharpDevelop.

Автор: andy

Использование TSLab API в SharpDevelop. - Mon Jul 05 2010 04:30 PM

Использование TSLab API в SharpDevelop. Подключение внешнего скрипта на C#. Создание индикатора -“кубика” из уже готового кода индикатора на C#.

Компиляция проекта, содержащего код скрипта/индикатора в среде SharpDevelop и дальнейшая работа с выходными файлами в приложении TSLab.

В самом начале отметим разницу между скриптом и пользовательским индикатором и методами их использования в приложении TSLab.

- Пользовательский индикатор. Представляет из себя файл с расширением .dll (например, StochK.dll). Пользовательские индикаторы хранятся в папке X:Users\UserName\AppData\Local\TSLab\TSLab12\Handlers. В приложении TSLab эти индикаторы доступны в режиме «Показать редактор шаблона» на закладке «Пользовательские индикаторы» и используется аналогично любому другому кубику с соседних закладок.

- Скрипт. Представляет из себя файл с расширением *.cs (например, Script.cs). В приложении TSLab такие скрипты могут быть использованы посредством кубика «Внешний скрипт» из закладки «Служебные элементы», в котором задается ссылка на файл *.cs.


1. Установка среды SharpDevelop

1.1. Среда разработки SharpDevelop лежит в открытом доступе по адресу http://www.sharpdevelop.com/OpenSource/SD/Download/ .

1.2. Выбираем последнюю версию на текущий момент – 3.2.


1.3. Скачиваем архив .msi


1.4. Запускаем процесс Установки. Устанавливаем приложение.





2. Настройка программы TSLab

2.1. Запускаем программу TSLab

2.2. Заходим в меню Файл – Настройки программы, ставим галочку «Отладка скриптов»


Начальный подготовительный этап завершен. Теперь необходимо создать проект в среде SharpDevelop и настроить его


3. Создание проекта (под индикатор/скрипт) в среде SharpDevelop

3.1. Создаем новый проект. Заходим в меню File – New – Solution


3.2. Выбираем в новом окне Windows Application и задаем имя – «Мой первый проект». Мы создали новый проект.


3.3. В левом столбце выбираем References и кликаем правой клавишей мыши. Из списка выбираем Add Reference.


В новом окне идем на закладку .Net Assembly Browser и нажимаем Browse. Идем в папку, где установлен TSLab и выбираем два файла:
- TSLab.DataSource.dll
- TSLab.Script.dll
Нажимаем Открыть.


После этого, файлы появятся в дереве справа:


3.4. Удаляем из дерева слева:
- MainForm.cs
- Program.cs


3.5. Кликаем правой клавишей мыши по названию «Мой первый проект» и выбираем последний пункт – Properties


На закладке Application в разделе Output Type выбираем Class Library


3.6. Сохраняем проект


3.7. Создаем файл внутри проекта, где будет код Скрипта/Индикатора. Для этого заходим в меню File – New – File. В появившемся окне выбираем: Create file inside project:




Выбираем в появившемся окне объект Class и нажимаем OK


Удаляем весь код шаблона, который был сгенерирован автоматически:



4. Компиляция проекта со скриптом и подключение его в TSLab

4.1. Вставляем готовый код скрипта. Для примера возьмем скрипт из документации http://www.tslab.ru/docs/online/newapiscript.htm . Результат:


4.2. Заходим в меню Build и выбираем Build Solution (F8).

Автор: andy

Re: Использование TSLab API в SharpDevelop. - Mon Jul 05 2010 04:35 PM

Скомпилированные файлы проекта расположены (по умолчанию) \My Documents\SharpDevelop Projects\Наименование проекта


Примечание. Если выбран параметр Output type – Class library, то функция Debug будет выдавать ошибку:


4.3. Переходим в TSLab. Заходим в Скрипты – Управление – Создать новый скрипт. Назовем его «Мой первый скрипт»


4.4. Переходим в редактор шаблона скрипта. Выбираем блок Внешний скрипт из закладки Служебные элементы и соединяем его с блоком Источник.


4.5. Выделяем блок Внешний скрипт, справа нажимаем «…» в разделе Скрипты. Далее нажимаем Add и выбираем файл с расширением .cs. В нашем случае это Class1.cs




4.6. Нажимаем Выполнить в TSLab



5. Компиляция проекта с индикатором и подключение его в TSLab

5.1. В папке, на одном уровне с папкой логов программы, создаем папку Handlers
Инструменты - Папка с логами - Подняться на уровень выше


5.2. Кликаем правой клавишей мыши по названию «Мой первый проект» и выбираем последний пункт – Properties, идем на закладку Compiling и в разделе Intermediate Output Path указываем путь к папке Handlers. Теперь все скомпилированные dll из этого проекта будут сохраняться в указанной папке.


5.3. Считаем, что мы только что создали файл Class (см. п. 3.7). Обратимся вновь к документации и возьмем оттуда пример индикатора из раздела http://www.tslab.ru/docs/online/newapiindicator.htm . Скопируем код и вставим.


5.4. Повторим п. 4.2. Заходим в меню Build и выбираем Build Solution (F8). В этот раз скомпилированные файлы находятся уже в папке Handlers. Нас интересует файл Мой первый проект.dll


5.5. Заходим в программу TSLab в редактор шаблона и смотрим на закладку Пользовательские индикаторы:



6. Подключение приложения TSLab к среде SharpDevelop для отладки проекта со скриптом/индикатором

6.1. Заходим в меню Debug и выбираем Attach to Precess


6.2. В появившемся окне из списка выбираем TSLabApp.exe (TSLab должен в этот моменты быть запущен)
34_API_SharpDevelop_Create.bmp


6.3. Если все прошло успешно в окне Output – Debug можно увидеть знакомые строчки (точнее логи программы TSLab)
Автор: usas

Re: Использование TSLab API в SharpDevelop. - Mon Jul 05 2010 05:04 PM

Большой труд Энди, оценили и бум надеятся, что теперь индикаторы в форуме будут рождаться регулярно.
Однако оценивая свои возможности с грустью констатирую - даже если следуя Вашему совету заброшу футбол и пиво, для меня это неподъемно.
Жалко, что в качестве примеров перевода .cs в .dll Вы не взяли индикаторы, о которых вас тут нижайше просили..:-)))
Ну да подождем..
Автор: andy

Re: Использование TSLab API в SharpDevelop. - Mon Jul 05 2010 05:13 PM

Originally Posted By: usas
Большой труд Энди, оценили и бум надеятся, что теперь индикаторы в форуме будут рождаться регулярно.
Однако оценивая свои возможности с грустью констатирую - даже если следуя Вашему совету заброшу футбол и пиво, для меня это неподъемно.
Жалко, что в качестве примеров перевода .cs в .dll Вы не взяли индикаторы, о которых вас тут нижайше просили..:-)))
Ну да подождем..


Вы правы, материал родился по этим двум линкам
http://www.tslab.ru/ubb/ubbthreads.php?ubb=showflat&Number=7814&#Post7814
http://www.tslab.ru/ubb/ubbthreads.php?ubb=showflat&Number=7815#Post7815
Я подумал на выходных и решил что этот материал необходим.

Далее про "неподъемно". Все "разложено" довольно детально. Мне кажется вы лукавите. Трейдинг довольно жестокий род деятельности человека и если в нем непрерывно не обучаться, то можно отстать ...
Автор: usas

Re: Использование TSLab API в SharpDevelop. - Mon Jul 05 2010 05:27 PM

Ну то, чему Вы пытаетесь меня в данном конкретном случае научить, как бы и не совсем трейдинг.. я не повар, я готовые пирожки люблю..:-))
Тем не менее за совет спасибо..
Автор: andy

Re: Использование TSLab API в SharpDevelop. - Mon Jul 05 2010 06:01 PM

Originally Posted By: usas
Ну то, чему Вы пытаетесь меня в данном конкретном случае научить, как бы и не совсем трейдинг.. я не повар, я готовые пирожки люблю..:-))


Технология выпечки пирожков описана.
Будет печь сами, наймете кого-то или будете покупать готовые при появлении Контейнеар скриптов - это уже на усмотрение каждого.

Originally Posted By: usas

Тем не менее за совет спасибо..


Вам спасибо за позицию :-)
Автор: 777

Re: Использование TSLab API в SharpDevelop. - Wed Jul 07 2010 01:19 AM

ANDY, не знаю почему, но пример индикатора из Вашего урока все равно с ошибками компилируется... Другие примеры ок!
Автор: 777

Re: Использование TSLab API в SharpDevelop. - Wed Jul 07 2010 12:23 PM

?

Вот исходник, делаю, все как у Вас, но получаю ошибку.
Автор: Nektodron

Re: Использование TSLab API в SharpDevelop. - Wed Jul 07 2010 03:47 PM

У вас либо шарпдевелоп не той версии (старый), либо выбран NET Framework 2.0 в проекте, а не 3.5.

Должен быть Sharp Develop 3.2 или выше
Автор: uprav

Re: Использование TSLab API в SharpDevelop. - Wed Jul 07 2010 05:07 PM

Originally Posted By: Nektodron
У вас либо шарпдевелоп не той версии (старый), либо выбран NET Framework 2.0 в проекте, а не 3.5.

Должен быть Sharp Develop 3.2 или выше

...странно, у меня SharpDevelop Version : 3.1.1.5327...и вроде как работает...наверно стоит обновить
Автор: Nektodron

Re: Использование TSLab API в SharpDevelop. - Wed Jul 07 2010 05:59 PM

Ну скорее 3.0 и выше, но лучше все же использовать последний.
Автор: 777

Re: Использование TSLab API в SharpDevelop. - Wed Jul 07 2010 09:55 PM

БЛ... У меня 2.2 стояла! eek Спасибо! smile
Автор: 777

Re: Использование TSLab API в SharpDevelop. - Wed Jul 07 2010 11:33 PM

Уважаемый Nektodron, а Вы не дадите точную сноску на скачивание файла? Рабочий в сносках вижу только версию 2.2. Остальное это новый F# и sharp для W7 у меня WVista/
Заранее огромное спасибо!
Автор: andy

Re: Использование TSLab API в SharpDevelop. - Wed Jul 07 2010 11:56 PM

http://sourceforge.net/projects/sharpdev...up.msi/download

Жмакаем на линк "direct link" или "mirror".
Автор: Frend

Re: Использование TSLab API в SharpDevelop. - Tue Aug 03 2010 01:25 PM

При моделировании примера возникла такая ошибка
c:\Users\Работа\AppData\Local\TSLab\TSLab\temp\code14.cs(32,30) : error CS0433: Тип 'TSLab.Samples.HiLoSample' существует как в 'c:\Users\Работа\AppData\Local\TSLab\TSLab\temp\ext13.dll', так и в 'd:\Program Files\TSLab\Handlers\Мой первый проект.dll'
что она значит
Автор: Nektodron

Re: Использование TSLab API в SharpDevelop. - Tue Aug 03 2010 02:04 PM

вы сделали и индикатор и внешний скрипт с одинаковыми именами класса и используете это все в одном скрипте. Чтото нужно переименовать. Или хотя бы namespace изменить.
Автор: Frend

Re: Использование TSLab API в SharpDevelop. - Tue Aug 03 2010 02:27 PM

ок, спасибо
Автор: profit

Re: Использование TSLab API в SharpDevelop. - Thu Aug 05 2010 11:30 PM

Я имею такое хобби.Конвертировать мультимедиафайлы mkv ts и прочее.
Это сложнее чем конвертация?
Автор: 777

Re: Использование TSLab API в SharpDevelop. - Fri Aug 06 2010 01:16 AM

Originally Posted By: profit
Я имею такое хобби.Конвертировать мультимедиафайлы mkv ts и прочее.
Это сложнее чем конвертация?

Намного проще grin
===З.Ы.
Сложнее создать mkv или ts с нуля, т.е. создать к примеру короткометражный фильм: снять материал, сделать монтаж материала, наложить аудио дорожку на монтаж, да так, что бы это правильно смотрелось, вот, что бы создать индикатор нужно проделать приблизительно то же самое, а потом уже конвертировать ..... wink
Автор: profit

Re: Использование TSLab API в SharpDevelop. - Fri Aug 06 2010 06:14 PM

Вообще mkv и ts это контейнеры для цифровой копии и диска BD.

То о что вы имели ввиду это матрица огромного размера состоящая из файлов и мастер лент.

И на будущее внимательнее смотрите к кому обращаются люди.

Я задавал вопрос andy.

Не надо бежать вперёд паровоза.
Автор: 777

Re: Использование TSLab API в SharpDevelop. - Fri Aug 06 2010 07:03 PM

Originally Posted By: profit
Вообще mkv и ts это контейнеры для цифровой копии и диска BD.

То о что вы имели ввиду это матрица огромного размера состоящая из файлов и мастер лент.

И на будущее внимательнее смотрите к кому обращаются люди.

Я задавал вопрос andy.

Не надо бежать вперёд паровоза.


Je vous prie d'aller chercher plus louen et je m'en fout!
Автор: profit

Re: Использование TSLab API в SharpDevelop. - Fri Aug 06 2010 07:28 PM

Cotagm jeme!
Автор: andy

Re: Использование TSLab API в SharpDevelop. - Fri Aug 06 2010 07:39 PM

Originally Posted By: profit
Cotagm jeme!


Уважаемые полиглоты заканчивайте ...
Автор: TrendCatcher

Re: Использование TSLab API в SharpDevelop. - Fri Aug 13 2010 04:24 PM

Взял вот эти индикаторы, которые скомпилировал Nektodron (NewIndicators.zip):

http://www.tslab.ru/ubb/ubbthreads.php?ubb=showflat&Number=4288#Post4288

Попытался один из них (DEMA) сам скомпилировать и вот что получаю:



ШарпДевелоп 3.2, таргет фрэймворк 3.5
Автор: TrendCatcher

Re: Использование TSLab API в SharpDevelop. - Fri Aug 13 2010 04:32 PM

Разобрался. Нужно было еще добавить TSLab.Script.Handlers в References, о чем в инструкции не сказано. smile
Автор: Frend

Re: Использование TSLab API в SharpDevelop. - Tue Sep 28 2010 04:11 PM

Возникла такая делема
Win 64
Ts lab торгующий
Подключаю Microsoft Visual Studio 2010 к процессу ts lab как указанно на скрине http://www.tslab.ru/ubb/ubbthreads.php?u...elop_Create.png
Вместо этого получаю данную ошибку (файл во вложении)
Как быть ?
Автор: Nektodron

Re: Использование TSLab API в SharpDevelop. - Tue Sep 28 2010 05:10 PM

Originally Posted By: Frend

Вместо этого получаю данную ошибку (файл во вложении)
Как быть ?

в каком вложении?
Автор: Frend

Re: Использование TSLab API в SharpDevelop. - Tue Sep 28 2010 05:42 PM

УПС
Вложил
Автор: Nektodron

Re: Использование TSLab API в SharpDevelop. - Tue Sep 28 2010 05:44 PM

не вижу никаких ошибок
Автор: Frend

Re: Использование TSLab API в SharpDevelop. - Tue Sep 28 2010 06:20 PM

Он не выдает код ts laba а говорит о том что для просмотра необходимо остановить процесс
Автор: Nektodron

Re: Использование TSLab API в SharpDevelop. - Tue Sep 28 2010 06:59 PM

Ну все правильно, breakpoint ставить нужно в скрипте. А что он сработал в настройках TSLab включить "отладка скриптов".
Автор: Frend

Re: Использование TSLab API в SharpDevelop. - Tue Sep 28 2010 07:06 PM

В настройках TsLab все стоит, а вот про breakpoint поподробнее прошу, первый раз слышу и вижу
Автор: Nektodron

Re: Использование TSLab API в SharpDevelop. - Tue Sep 28 2010 08:04 PM

http://msdn.microsoft.com/ru-ru/library/4607yxb0(v=VS.90).aspx
Автор: Frend

Re: Использование TSLab API в SharpDevelop. - Wed Sep 29 2010 01:38 PM

В общем вы меня не поняли и послали по русски говоря куда подальше.
Меня беспокоит вот что
http://msdn.microsoft.com/query/dev10.query?appId=Dev10IDEF1&l=RU-RU&k=k(VS.HISTORICALDEBUG.DEBUGHISTORYWINDOW);k(TargetFrameworkMoniker-%22.NETFRAMEWORK%2cVERSION%3dV3.5%22)&rd=true
При включении режима отладки тс лаб просто зависает и включается когда я отсоединяюсь от него
Автор: Frend

Re: Использование TSLab API в SharpDevelop. - Wed Sep 29 2010 01:43 PM

Задам вопрос еще по другому, как мне убрать приостановку тс лаба
Автор: AvataR

Re: Использование TSLab API в SharpDevelop. - Wed Sep 29 2010 08:34 PM

Честно говоря при подключении к процессу (любому) процесс начинает притормаживать и это не связано с у MS Visual Studio, Delphi ... Вы увидете то же самое ... и не только с TsLab... наверняка Вы у же с этим встречались? Ведь да?
Автор: Nektodron

Re: Использование TSLab API в SharpDevelop. - Wed Sep 29 2010 11:27 PM

НУ правильно вы его останавливаете, поэтому программа временно прекращает работу, нужно нажать кнопку Run.
Автор: Frend

Re: Использование TSLab API в SharpDevelop. - Mon Oct 04 2010 02:54 PM

может быть я дибил да мне лечится пора, или просто я не понимаю вашего стиля общения, но я так и не понял, что мне сделать что бы когда я подцеплял тслаб в Microsoft Visual Studio 2010 в качестве процесса, тслаб не зависал и не отвисал при отключении от Microsoft Visual Studio 2010, а продолжал работать именно при подключении к нему, а то мало ли у меня там поза открыта или еще что нибуть, а он на паузе стоит, это извините за выражение х..я получается. Или тогда скажите мне что бы я просто так не делал так как так нельзя делать в данной программе, или нельзя делать в принципе включая шарп девелоп или мне все таки надо нажать еще что то.
Автор: Nektodron

Re: Использование TSLab API в SharpDevelop. - Mon Oct 04 2010 03:06 PM

Я не пользуюсь Sharp Developer и не знаю тонкости работы с ним. Вероятно, при цеплянии процесса он его останавливает и его нужно запустить работать дальше. Он описан в документации, как бесплатная альтернатива Visual Studio. Если у вас есть Visual Studio зачем нужен Sharp Developer?
Автор: Frend

Re: Использование TSLab API в SharpDevelop. - Mon Oct 04 2010 03:34 PM

цитирую
"я подцеплял тслаб в Microsoft Visual Studio 2010 в качестве процесса"
какой программой я пользуюсь?
Вопрос еще раз
"тслаб не зависал и не отвисал при отключении от Microsoft Visual Studio 2010, а продолжал работать именно при подключении к нему, а то мало ли у меня там поза открыта или еще что нибуть, а он на паузе стоит,"
Теперь это же, но другими словами
1. Я подключаю ТСЛаб к Microsoft Visual Studio 2010
2. После этого ТСЛаб ставится на паузу
3. После отсоединения ТСЛаба от Microsoft Visual Studio 2010 ТСЛаб продолжает нормально работать, (но не всегда иногда просто зависает)
4. Как мне сделать что бы ТСЛаб не ставился на паузу при выполнении пункта 1. так как в это время скрипты работают.
5. Про шарп девелоп я говорил в качестве примера
Автор: Nektodron

Re: Использование TSLab API в SharpDevelop. - Mon Oct 04 2010 03:39 PM

В визуал студии и Шарпдевелопере есть команда "Продолжить" (кнопка F5), нажмите ее если становится на паузу.
Автор: Frend

Re: Использование TSLab API в SharpDevelop. - Mon Oct 04 2010 03:52 PM

Да и заранее хочу вам сказать именно по этому посту так как навернякак мысли у вас и здесь такие появтяся, что я не припираюсь, а прошу вас более внимательно читать, то что вам пишут ваши пользователи и проявлять лояльность к их незнаниям, если вы придете ко мне и спросите меня как мне сделать то где вы не плаваете а я наоборот знаю каждую запинку которая модет случится то я уж выслушаю вас и помогу а не отмахнусь как от назойливой мухи мыслей которую я только и пойму или не вникну в ваш вопрос
Спасибо за понимание
Автор: Nektodron

Re: Использование TSLab API в SharpDevelop. - Mon Oct 04 2010 04:53 PM

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

Re: Использование TSLab API в SharpDevelop. - Mon Oct 04 2010 04:57 PM

Да мне не нравится что программа останавливается при просоединения к ней в режиме отладки.
Может быть вы правы что всем не ответить нормально, у меня тоже сегодня не выполнены дела по плану так как ищу ошибку да с вами переписываюсь
Автор: Nektodron

Re: Использование TSLab API в SharpDevelop. - Mon Oct 04 2010 05:10 PM

В принципе, отладчик не должен тормозить программу при подключении.
Скорее всего у вас настроены какие-либо дополнительные условия остановки (точки останова, перехват исключений и т.п.)
В 2х словах это объяснить нельзя, нужно читать документацию по среде разработки.
Я еще порекомендовал простое решение, если остановился - запустить дальше.
Автор: Stanley

Re: Использование TSLab API в SharpDevelop. - Thu Nov 18 2010 07:34 PM

Подскажите пожалуйста. Скомпилировал индикатор из примера. Но в папке Handlers появились файлы формата не dll и cs, а dll и pdb. И в редакторе в ТСЛАБЕ в пользовательских индикаторах.мой скрипт не появился(
Автор: ViL

Re: Использование TSLab API в SharpDevelop. - Thu Nov 18 2010 07:41 PM

Перезагрузите ТсЛаб
Автор: Stanley

Re: Использование TSLab API в SharpDevelop. - Thu Nov 18 2010 07:49 PM

О!Я понял.ДЕло было не в этом.Просто в ТСлабе индикатор называется не так, как назван файл, а как называется индикатор в коде программы, т.е. MyStochK
Автор: Stanley

Re: Использование TSLab API в SharpDevelop. - Thu Nov 18 2010 08:17 PM

А подскажите пожалуйста как открыть чужие готовые индикаторе в sharpdevelope?
Автор: Nektodron

Re: Использование TSLab API в SharpDevelop. - Thu Nov 18 2010 08:32 PM

Если у вас нет исходного кода, то никак.
Автор: Stanley

Re: Использование TSLab API в SharpDevelop. - Sun Dec 05 2010 10:26 AM

Подскажите пожалуйста, а как обозначить в коде параметры свечи - открытие, закрытие, максимум и минимум?Нужно ли их вводить в код каким-то образом или компилятор поймёт open,close ит.д.?
Автор: ViL

Re: Использование TSLab API в SharpDevelop. - Sun Dec 05 2010 11:37 AM

Code:
public IList<double> Execute(ISecurity source)
		{
		    var closes = source.ClosePrices;
		    var high = source.HighPrices;
		    var low = source.LowPrices;
		    var vol = source.Volumes; 
Автор: Stanley

Re: Использование TSLab API в SharpDevelop. - Sun Dec 05 2010 01:55 PM

Большое спасибо!
Автор: Stanley

Re: Использование TSLab API в SharpDevelop. - Sun Dec 05 2010 02:19 PM

хммм.Пишет
"System.Collections.Generic.IList<double>" не содержит определение для "ClosePrices". Не удалось найти метод расширения "ClosePrices", принимающий первый аргумент типа
и по всем вводимым переменным то же самое.
библиотеки подсоединены.
Также выдаёт имя iотсутствует в текущем котексте
Quote:
public IList<double> Execute(IList<double> source)
{
var close = source.ClosePrices;
var high = source.HighPrices;
var low = source.LowPrices;
var vol = source.Volumes;
int P=10;
if (High[i]>High[i-1]&&Low[i]>Low[i-1])
{
++P;
}
else
{
--P;
Автор: Nektodron

Re: Использование TSLab API в SharpDevelop. - Mon Dec 06 2010 11:54 AM

Сравните ваш код и приведенный выше.
Автор: ViL

Re: Использование TSLab API в SharpDevelop. - Mon Dec 06 2010 12:12 PM

http://download.microsoft.com/documents/rus/msdn/c_sharp2.pdf
Автор: Stanley

Re: Использование TSLab API в SharpDevelop. - Mon Dec 06 2010 07:22 PM


спасибо большое, но я это уже прочитал. В данный момент я на том этапе, когда могу в принципе разобрать что написано, но вот написать самому, а именно понять что мне нужно вводить - функцию или метод, записать всё одним классом или применить вложенные классы и тд для меня затруднительно.Также самым главным вопросом является для меня применение API именно в торговле, ведь то как вводить данные свечи(о чём я ранее спрашивал) в программу ни в каких справочниках не написано
Автор: ViL

Re: Использование TSLab API в SharpDevelop. - Mon Dec 06 2010 10:16 PM

open/
var open = source.OpenPrices;
Автор: Stanley

Re: Использование TSLab API в SharpDevelop. - Tue Dec 07 2010 05:57 PM

Спасибо)Если не трудно, подскажите что значит когда программа выдаёт ошибку i отсутствует в текущем контексте?как её инииализировать?
Автор: ViL

Re: Использование TSLab API в SharpDevelop. - Tue Dec 07 2010 06:16 PM

По всему видимо забыли где-то
int i=
Автор: Stanley

Re: Использование TSLab API в SharpDevelop. - Tue Dec 07 2010 06:59 PM

нет, я про как бы сказать точку отсчёта свечей, а не про ввод переменных.(когда я хочу ввести обращение к предыдущей свече) Вот например в примере создания скрипта http://www.tslab.ru/docs/online/
в документации есть запись
int barsCount = source.Bars.Count;

for (int i = 0; (i < barsCount); i++)
создаётся цикл, а в нём получается инициализируется переменная i?
Автор: ViL

Re: Использование TSLab API в SharpDevelop. - Tue Dec 07 2010 09:49 PM

Да.
Автор: Афанасий

Re: Использование TSLab API в SharpDevelop. - Fri Dec 17 2010 12:39 PM

Originally Posted By: andy
- Скрипт. Представляет из себя файл с расширением *.cs (например, Script.cs). В приложении TSLab такие скрипты могут быть использованы посредством кубика «Внешний скрипт» из закладки «Служебные элементы», в котором задается ссылка на файл *.cs.


Создав свой первый скрипт при помощи API, я попробовал его оптимизировать. Сразу на глаз заметно - оптимизация идет очень медленно и чем дальше, тем все более заметно замедление.
Мне есть что сравнивать - ради чистоты эксперимента был созан скрипт, имеющий почти полный аналог "в кубиках". При одинаковых параметрах оптимизации "кубики" оптимизируются заметно быстрее. Цифры:
- количество комбинаций: более 100 тысяч;
- оптимизация "кубиков": 1.5 часа; изначально прогнозирует 1ч 15 мин, но затем эта цифра падает немного медленнее, чем 1 мин за минуту, но вполне равномерно;
- оптимизация API-скрипта: более 10 часов (точнее сказать трудно - оставляю на ночь, к утру готово); первоначальный прогноз - 2.5 часа, затем прогноз некоторе время улучшается, потом останавливается и начинает расти; через два часа TSLab прогнозирует завершение процесса в течение 5 часов, через три - в течение 6 часов и т.д.

Предполагаю, что компиляция скрипта производится на каждом шаге, что с любой точки зрения как минимум нерационально.
Кроме того, во время оптимизации регулярно сыплются сообщения об ошибках компиляции - см. приложенную картинку. Но оптимизация не останавливается. Чтобы это могло значить? Что некоторые комбинации пропускаются? Или делаются повторные попытки и весь ущерб сводится к потере времени?

Где-то видел, но сейчас не могу найти, ветку обсуждения, в которой говорилось о возможности представления внешнего скрипта в скомпилированном виде (dll) и ответ, что работа над этим ведется. Вероятно, описанные проблемы будут таким образом решены. Когда можно ожидать такую функциональность?
Автор: Nektodron

Re: Использование TSLab API в SharpDevelop. - Fri Dec 17 2010 04:37 PM

Компиляция скрипта не происходит на каждом шаге, только при его изменении.
Говорить о разнице модно только видя скрипт. Используете ли вы кеш индикаторов IContext.GetData
Если нет, то "кубики" будут заметно быстрее.
Автор: Афанасий

Re: Использование TSLab API в SharpDevelop. - Fri Dec 17 2010 06:34 PM

Originally Posted By: Nektodron
Компиляция скрипта не происходит на каждом шаге, только при его изменении.


ОК.
Но что тогда означают десятки сообщений "CantCompile"?
и почему тогда нельзя прикрутить скрипт в виде dll?

Originally Posted By: Nektodron
Говорить о разнице модно только видя скрипт. Используете ли вы кеш индикаторов IContext.GetData
Если нет, то "кубики" будут заметно быстрее.


Использую IContext.GetData для всего, что можно вычислить из входящих баров. Но многое вычисляется отдельно на каждом шаге (баре) и зависит от вещей, заранее неизвестных, например наличия открытой позиции, которая в свою очередь открывается или закрывается в зависимости от многих услови, в т.ч. от параметров оптимизации.
Автор: Nektodron

Re: Использование TSLab API в SharpDevelop. - Fri Dec 17 2010 07:08 PM

Originally Posted By: Афанасий

Но что тогда означают десятки сообщений "CantCompile"?
и почему тогда нельзя прикрутить скрипт в виде dll?

"CantCompile" - это ошибка локализации, означает сообщение, что не получается собраться скрипт. Точнее можно сказать, увидев, что там вообще собирается.
В блоке внешний скрипт уже давно можно использовать dll наравне с cs файлами.
Автор: Афанасий

Re: Использование TSLab API в SharpDevelop. - Mon Dec 20 2010 02:17 PM

Originally Posted By: Nektodron
"CantCompile" - это ошибка локализации, означает сообщение, что не получается собраться скрипт. Точнее можно сказать, увидев, что там вообще собирается.


Может быть делу поможет, что вместе с "CantCompile" иногда выскакивает вот такое сообщение:

System.NullReferenceException: В экземпляре объекта не задана ссылка на объект.
в TSLab.DataModel.TemplateExecutor.get_ScriptType()
в TSLab.ScriptEngine.TemplateContext.GetProperties(TemplateData templ)
в TSLab.ScriptEngine.TemplateContext.UpdatedProperties(TemplateData templ, IEnumerable`1 parameters)
в TSLab.ScriptEngine.TemplateContext.Execute(TemplateData templ, IEnumerable`1 parameters, Boolean clearCaches)


Originally Posted By: Nektodron
В блоке внешний скрипт уже давно можно использовать dll наравне с cs файлами.


Следует, в таком случае, поправить статью, в обсуждении которой мы сейчас переписываемся. Там по-прежнему скрипт - это .cs-файл "в отличие от индикатора".
Автор: Nektodron

Re: Использование TSLab API в SharpDevelop. - Mon Dec 20 2010 03:21 PM

Originally Posted By: Афанасий

Может быть делу поможет, что вместе с "CantCompile" иногда выскакивает вот такое сообщение:

System.NullReferenceException: В экземпляре объекта не задана ссылка на объект.
в TSLab.DataModel.TemplateExecutor.get_ScriptType()
в TSLab.ScriptEngine.TemplateContext.GetProperties(TemplateData templ)
в TSLab.ScriptEngine.TemplateContext.UpdatedProperties(TemplateData templ, IEnumerable`1 parameters)
в TSLab.ScriptEngine.TemplateContext.Execute(TemplateData templ, IEnumerable`1 parameters, Boolean clearCaches)


А вы можете прислать скрипт, который выдает такую ошибку на contact@tslab.ru ?
Автор: Афанасий

Re: Использование TSLab API в SharpDevelop. - Tue Dec 21 2010 10:46 AM

Originally Posted By: Nektodron

А вы можете прислать скрипт, который выдает такую ошибку на contact@tslab.ru ?


Нет.
Автор: Афанасий

Re: Использование TSLab API в SharpDevelop. - Tue Dec 21 2010 12:36 PM

Originally Posted By: Афанасий
Originally Posted By: Nektodron
В блоке внешний скрипт уже давно можно использовать dll наравне с cs файлами.


Следует, в таком случае, поправить статью, в обсуждении которой мы сейчас переписываемся. Там по-прежнему скрипт - это .cs-файл "в отличие от индикатора".


А также дописать туда, что есть различия при использовании 32- и 64-разрядной версии TSlab (или исправить ошибку).
Суть: одна и та же dll прекрасно работает с 32-разрядной версией и выдает ошибку в 64-разрядной.
Ошибка повторяется раз 5-6 при каждой попытке запуска и выглядит так:

c:\...\AppData\Local\TSLab\TSLab\temp\code4.cs(22,22) : error CS0234: Имя типа или пространства имен 'ScriptEngine' отсутствует в пространстве имен 'TSLab' (пропущена ссылка на сборку?)

Строка 22 файла code4.cs, где возникает ошибка:

public TSLab.ScriptEngine.Template.ExternalScriptItem.Handler XXX_script_h = new TSLab.ScriptEngine.Template.ExternalScriptItem.Handler();

TSLab.ScriptEngine в референсах упомянута, но в скрипте code4.cs строки "using TSLab.ScriptEngine" нет.


Если же запускать 32-разрядную версию, то все работает. Вероятно, потому что в этом случае строка 22 правильная:

public TSLab.XXX_namespace.XXX_class XXX_class_script_h = new TSLab.XXX_namespace.XXX_class();
Автор: Афанасий

Re: Использование TSLab API в SharpDevelop. - Tue Dec 21 2010 12:49 PM

Originally Posted By: Nektodron
Originally Posted By: Афанасий

Может быть делу поможет, что вместе с "CantCompile" иногда выскакивает вот такое сообщение:

System.NullReferenceException: В экземпляре объекта не задана ссылка на объект.
в TSLab.DataModel.TemplateExecutor.get_ScriptType()
в TSLab.ScriptEngine.TemplateContext.GetProperties(TemplateData templ)
в TSLab.ScriptEngine.TemplateContext.UpdatedProperties(TemplateData templ, IEnumerable`1 parameters)
в TSLab.ScriptEngine.TemplateContext.Execute(TemplateData templ, IEnumerable`1 parameters, Boolean clearCaches)


А вы можете прислать скрипт, который выдает такую ошибку на contact@tslab.ru ?


А вот только что выскочило при самопроизвольном закрытии 32-разрядного TSlab (см приложенную картинку):

В экземпляре объекта не задана ссылка на объект.

в TSLab.LabView.ParametersManagerControl.UpdateData()
в TSLab.LabView.ParametersManagerControl.ManagerPropertyChanged(Object sender, PropertyChangedEventArgs e)
в System.ComponentModel.PropertyChangedEventHandler.Invoke(Object sender, PropertyChangedEventArgs e)
в TSLab.LabView.Script.ScriptDataManager.FirePropertyChanged(String name)
в TSLab.LabView.ExTemplateEditor.UpdateMinSize()
в TSLab.TemplatesEditor.Wrappers.TemplateItemWrapper.FireLocationUpdated()
в TSLab.TemplatesEditor.Wrappers.SecuritySourceItemWrapper.set_Mapping(String value)
в TSLab.TemplatesEditor.Wrappers.SecuritySourceItemWrapper.UpdateMapping()
в TSLab.TemplatesEditor.Wrappers.SecuritySourceItemWrapper.EditorPropertyChanged(Object sender, PropertyChangedEventArgs e)
в System.ComponentModel.PropertyChangedEventHandler.Invoke(Object sender, PropertyChangedEventArgs e)
в TSLab.TemplatesEditor.TemplatesEditor.set_SourceMappings(Dictionary`2 value)
в TSLab.LabView.ExTemplateEditor.UpdateMappings()
Автор: Nektodron

Re: Использование TSLab API в SharpDevelop. - Tue Dec 21 2010 07:20 PM

Originally Posted By: Афанасий


А также дописать туда, что есть различия при использовании 32- и 64-разрядной версии TSlab (или исправить ошибку).
Суть: одна и та же dll прекрасно работает с 32-разрядной версией и выдает ошибку в 64-разрядной.


Проблема скорее всего в том, что dll скомпилирована для 32бит, а должна для any processor.
Автор: Афанасий

Re: Использование TSLab API в SharpDevelop. - Wed Dec 22 2010 10:52 AM

Originally Posted By: Nektodron
Проблема скорее всего в том, что dll скомпилирована для 32бит, а должна для any processor.


Так и оказалось. Тоже неплохо бы внести в документацию, если считать статью на форуме таковой.
Автор: Афанасий

Re: Использование TSLab API в SharpDevelop. - Thu Dec 23 2010 01:30 PM

Originally Posted By: Nektodron
Компиляция скрипта не происходит на каждом шаге, только при его изменении.
Говорить о разнице модно только видя скрипт. Используете ли вы кеш индикаторов IContext.GetData
Если нет, то "кубики" будут заметно быстрее.


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

Однако, не все так просто.
Вот сейчас идет очень медленная оптимизация ТС c внешним скриптом. Любопытно стало - пошел посмотреть
C:\...\AppData\Local\TSLab\TSLab\temp.
И наблюдаю создание десятков тысяч файлов codeXXXX.cs, их компиляцию в соответствующие библиотеки codeXXXX.dll и попутное создание таких же codeXXXX.pdb. Чем дальше - тем медленнее идет процесс.

codeXXXX.cs внутри незатейлив:

namespace TSLab.User
{
using System;
using TSLab.Script;


public class Script
{

private TSLab.Script.Handlers.RelativeCommisionWithMinimal Comission1_h = new TSLab.Script.Handlers.RelativeCommisionWithMinimal();

public TSLab.XXX.XXX XXX_script_h = new TSLab.XXX.XXX();

public virtual void Execute(TSLab.Script.Handlers.IContext context, TSLab.Script.ISecurity var0)
{
// =================================================
// Panels
// =================================================
// Make 'Главное' pane
TSLab.Script.IPane Главное_pane = context.CreatePane("Главное", 50, false);
Главное_pane.Visible = true;
// =================================================
// Handlers
// =================================================
// Initialize 'Comission1' item
this.Comission1_h.MinimalCommission = 30.0;
this.Comission1_h.CommissionPct = 0.03;
this.Comission1_h.MarginPct = 10;
this.Comission1_h.Execute(var0);
this.XXX_script_h.Execute(context, var0);
// =================================================
// Trading
// =================================================
int barsCount = var0.Bars.Count;
for (int i = context.TradeFromBar; (i < barsCount); i++)
{
}
// =================================================
// Charts
// =================================================
}
}
}

То есть, содержит:
- описание двух кубиков - комиссии и внешнего скрипта
- функцию Execute, которая:
-- инициализирует кубик комиссии и выполняет его функцию Execute
-- выполняет функцию Execute внешнего скрипта, которая и делает всю работу
-- прокручивает пустой ненужный цикл по барам

Все, больше ничего.

А теперь скажите мне, не означает ли это генерации и компиляции скрипта на каждом шаге?

Если оптимизировать скрипт, созданный в кубиках, такого не происходит. Генерится один и прокручивается много раз.
Автор: Nektodron

Re: Использование TSLab API в SharpDevelop. - Thu Dec 23 2010 02:20 PM

файл codeXXXX.cs создается при любом изменении в редакторе, но не при каждом запуске скрипта.
Автор: Афанасий

Re: Использование TSLab API в SharpDevelop. - Thu Dec 23 2010 02:38 PM

Originally Posted By: Nektodron
файл codeXXXX.cs создается при любом изменении в редакторе, но не при каждом запуске скрипта.


Вы невнимательно читаете. Я же пишу: запускаю оптимизацию, жду почти сутки, в течение которых наблюдаю создание и компиляцию десятков тысяч файлов. Кадые несколько секунд - файл .cs, файл .dll, файл .pdb. Файлы .cs и .pdb уничтожаются, dll - остаются.

Может быть, у меня что-то не то в настройках?
Автор: Nektodron

Re: Использование TSLab API в SharpDevelop. - Thu Dec 23 2010 03:11 PM

я проверю, это когда внешний скрипт только из dll состоит?
Автор: Афанасий

Re: Использование TSLab API в SharpDevelop. - Thu Dec 23 2010 03:42 PM

Да.
Автор: Nektodron

Re: Использование TSLab API в SharpDevelop. - Thu Dec 23 2010 03:49 PM

А какой версией сейчас пользуетесь?
Автор: Афанасий

Re: Использование TSLab API в SharpDevelop. - Thu Dec 23 2010 04:03 PM

1.1.16.9.
Описанное явление было обнаружено при запуске 64-битной версии (после того как вы же дали совет как компилировать, чтобы можно было использовать внешний скрипт в dll-виде).
Но, судя по всему то же самое происходило и при запуске 32-битной версии. А также и при использовании внешнего скрипта в cs-варианте.
Автор: Афанасий

Re: Использование TSLab API в SharpDevelop. - Thu Dec 23 2010 04:43 PM

Скачал 1.1.16.38 - то же самое.
Автор: Афанасий

Re: Использование TSLab API в SharpDevelop. - Fri Dec 24 2010 10:45 AM

Quote:
Скачал 1.1.16.38 - то же самое.


Подумалось - может быть пройдет после полной перезагрузки?
Не помогло. Отключил отладку скриптов - то же самое. Для иллюстрации - содержимое папки temp в приложенном файле.
Автор: Nektodron

Re: Использование TSLab API в SharpDevelop. - Fri Dec 24 2010 12:28 PM

Я сделал скрипт с блоком внешний скрипт, в который включил DLL
Запустил оптимизацию, файл codeXXXX был сделан один раз.
Судя по вашему описанию проблема есть, но я ее не могу повторить.
Автор: Афанасий

Re: Использование TSLab API в SharpDevelop. - Fri Dec 24 2010 01:51 PM

Поставил TSLab на голую машину, запустил скрипт. То же самое.
Получается, дело в скрипте.
Каким образом он может заставлять систему думать, что в тексте скрипта произошли изменения? Ничего особенного в тексте не вижу.
Попробую удалять фрагмент за фрагментом, чтобы хоть как-то локализовать место возникновения проблемы.
Автор: Nektodron

Re: Использование TSLab API в SharpDevelop. - Fri Dec 24 2010 01:53 PM

попробуйте сначала сделать другой скрипт, примитивный, будет ли с ним подобная проблема или нет.
Автор: Афанасий

Re: Использование TSLab API в SharpDevelop. - Fri Dec 24 2010 04:15 PM

Originally Posted By: Nektodron
попробуйте сначала сделать другой скрипт, примитивный, будет ли с ним подобная проблема или нет.


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

Итак, начну от печки.

1. Когда программой генерится исполняемый скрипт codeXX.cs, в него вставляется строчка:
TSLab.Script.IPane Главное_pane = context.CreatePane("Главное", 50, false);
Назначение очевидно - создать главную панель для отображения графиков.

2. Обратите внимание на второй параметр. Согласно документации, это относительный размер панели. Поскольку в документации его описание выглядит как double SizePct [get, set], то его очевидно можно изменять по мере необходимости.

3. Я в своем скрипте вставляю строчки:
TSLab.Script.IPane Main_pane = context.First;
Main_pane.SizePct = 50;


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

5. Никаких замечаний ни со стороны компилятора (Sharp Develop 3.2.0), ни со стороны TSLab. Да и с какой стати?

6. Так вот, если эта строка в коде присутствует, происходит то самое явление - повторная генерация и компиляция исполняемого скрипта на каждом шаге компиляции, а также при каждом нажатии на F5 в TSLab.

7. А если отсутствует - ничего лишнего не генерится, оптимизация идет с нормальной скоростью, время прогнозируется разумное и по ходу дела уменьшается.

8. Забавно, что при оптимизации эта часть кода вообще не исполняется, потому что для экономии времени чуть выше вставлена строка:
if(context.IsOptimization) return;
return - потому что строки прорисовки графиков идут последними в функции Execute создаваемого класса.

Хотелось бы получить комментарий разработчиков.

Кроме того, нельзя ли из генерируемого скрипта убрать ненужный пустой цикл по барам:
int barsCount = var0.Bars.Count;
for (int i = context.TradeFromBar; (i < barsCount); i++)
{
}

Только время зря тратит, хоть и немного.
Автор: Афанасий

Re: Использование TSLab API в SharpDevelop. - Fri Dec 24 2010 05:42 PM

Quote:

6. ...повторная генерация и компиляция исполняемого скрипта на каждом шаге компиляции...,


На каждом шаге оптимизации, естественно.
Автор: Nektodron

Re: Использование TSLab API в SharpDevelop. - Sun Dec 26 2010 09:18 PM

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

Re: Использование TSLab API в SharpDevelop. - Fri Jan 14 2011 05:53 PM

Originally Posted By: Nektodron
Спасибо за исследование, я разберусь, почему так происходит.
Пустой цикл (для подобных скриптов) тоже постараюсь убрать.

Удалось ли обнаружить источник проблемы?
Автор: Nektodron

Re: Использование TSLab API в SharpDevelop. - Fri Jan 14 2011 06:05 PM

1. context.IsOptimization - теперь работает правильно
2. проведена большая работу по ускорению оптимизации.

Если описанная проблема в последних сборках все еще имеется, пожалуйста сообщите.
Автор: Афанасий

Re: Использование TSLab API в SharpDevelop. - Fri Jan 14 2011 06:31 PM

А с context.IsOptimization тоже было что-то не так? Или я чего-то пропустил?
У меня проблема проявлялась когда происходило установка размера главной панели (IPane.SizePct).
Автор: Nektodron

Re: Использование TSLab API в SharpDevelop. - Fri Jan 14 2011 11:17 PM

context.IsOptimization - он всегда false возвращал
Автор: CyTrade

Re: Использование TSLab API в SharpDevelop. - Wed Feb 02 2011 04:32 PM

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

Подключаю так, запускаю ms vs2010 открываю код, ставлю брекпоинт в классе на ехecute, включаю тслаб, в скрипте внешний блок привязан к этому файлу с классам. Далее присоеденяюсь к процессу тслаб, студия подгрузила сборки, и всё. Брекпоинт красные, но не срабатывают. Может в тслабе ещё что нужно нажимать???
Автор: CyTrade

Re: Использование TSLab API в SharpDevelop. - Wed Feb 02 2011 04:39 PM

хм) решил. Забыл сменить версию среды .net
Автор: Supervisor

Re: Использование TSLab API в SharpDevelop. - Tue May 10 2011 04:28 PM

У меня такая проблема: все делаю по инструкции, компилирую dllку со стандартным примером, кидаю в папку Handlers, перезапускаю TSlab, но индикатор не появляется в разделе Пользовательские. Что может быть?
Автор: AlexLan73

Re: Использование TSLab API в SharpDevelop. - Mon Jun 20 2011 10:18 PM

Пожалуйста, подскажите.
Набрал Ваш пример, на этапе 4.6 Tslab пишет сообщение.
" Номер 120 Элемент 'Item1' содержит ошибку: Не установлен внешний скрипт "
Программа: SharpDevelop версия 4, NET Framework 4.0
Как решить эту проблему.
Автор: Nektodron

Re: Использование TSLab API в SharpDevelop. - Mon Jun 20 2011 10:30 PM

Не выбрали файл C# скрипта для блока "Внешний скрипт"
Sharp Develop должен быть 3.2 для Framework 3.5
Автор: AlexLan73

Re: Использование TSLab API в SharpDevelop. - Tue Jun 21 2011 08:42 AM

Originally Posted By: Nektodron
Не выбрали файл C# скрипта для блока "Внешний скрипт"
Sharp Develop должен быть 3.2 для Framework 3.5



Программы переставил, как Вы и указали.
«Не выбрали файл C# скрипта для блока "Внешний скрипт"» - Путь к скрипту указан.
Я и раньше указывал. Ошибка осталась. Что делать?
Автор: Nektodron

Re: Использование TSLab API в SharpDevelop. - Tue Jun 21 2011 11:23 AM

Значит выбранный файл(ы) не содержат класса, который опознается как скрипт.
Автор: SergeySal

Re: Использование TSLab API в SharpDevelop. - Tue Aug 30 2011 07:58 PM

а как настроить Microsoft Visual Studio для TSLab?
Автор: SergeySal

Re: Использование TSLab API в SharpDevelop. - Tue Aug 30 2011 08:00 PM

И какой версии должен быть Visual?
Автор: Physic

Re: Использование TSLab API в SharpDevelop. - Mon Oct 10 2011 04:36 PM

Огромное спасибо автору этого раздела за подробные и чёткие инструкции. Вот только у меня всё же возникла проблема - не удаётся в программе TSLab подключить откомпилированный индикатор из примера, т.е. не получается подключить dll файл созданный в пунктах 5.3 и 5.4. А конкретнее не получается выполнить шаг 5.5 - "5.5. Заходим в программу TSLab в редактор шаблона и смотрим на закладку Пользовательские индикаторы". Вот как раз закладка "Пользовательские индикаторы" у меня остаётся пустой. Хотя новенький dll файл, только что благополучно откомпилированный, у меня размещается в директории: "...\TSLab\Handlers\" автоматически.

Дело в том, что все инструкции приведённые в статье выполнял очень скрупулёзно и пример с внешним сриптом на C# работает, а пример с индикатором нет. frown
Автор: ViL

Re: Использование TSLab API в SharpDevelop. - Mon Oct 10 2011 05:39 PM

Попробуйте любой другой индикатор.
Автор: Physic

Re: Использование TSLab API в SharpDevelop. - Tue Oct 11 2011 01:39 PM

Originally Posted By: ViL
Попробуйте любой другой индикатор.


Попробывал ещё 2 других индикатора, которые скачал с этого же форума - результат тот же - новый индикатор в терминале TSLab не появляется в редакторе шаблона, во вкладке Пользовательские! frown Хотя соответствующий dll файл размещаю строго так, как описано в начале этой темы, т.е. в директорию:
"F:\Program Files\TSLab\Handlers". Т.е. видимо терминал просто почему то "не видит" соответствующий dll файл. Все инструкции я выполнял строго как описано в начале этой темы. Может кто нибудь попробует чисто механически пройти эти шаги и напишет работают ли у него пользовательские индикаторы?
Автор: 777

Re: Использование TSLab API в SharpDevelop. - Tue Oct 11 2011 02:27 PM

10 минут назад индюк делал, все работает. Там в примерах, один индюк реально не работает, полтора года назад разработчикам говорили, но походу, это спецом сделано, что б человек помучался и научился smile Я через тот индюк то же проходил, суток двое сидел...
Короче, возьмите индюк нормальный, к примеру из встроенных в тслаб http://www.tslab.ru/ubb/ubbthreads.php?ubb=showflat&Number=8511#Post8511 , замените названия и компильните. Перезагрузите тслаб, должно появится.
Автор: Physic

Re: Использование TSLab API в SharpDevelop. - Wed Oct 12 2011 02:55 PM

Originally Posted By: 777
10 минут назад индюк делал, все работает. Там в примерах, один индюк реально не работает, полтора года назад разработчикам говорили, но походу, это спецом сделано, что б человек помучался и научился smile Я через тот индюк то же проходил, суток двое сидел...
Короче, возьмите индюк нормальный, к примеру из встроенных в тслаб http://www.tslab.ru/ubb/ubbthreads.php?ubb=showflat&Number=8511#Post8511 , замените названия и компильните. Перезагрузите тслаб, должно появится.


К сожалению и с другим индикатором, так же загруженным с форума, та же ситуация - терминал TSLab "не видит" пользовательских dll файлов, хотя размещаю их в папке "D:\Program Files\TSLab\Handlers". Уже не знаю что и делать! frown
Автор: 777

Re: Использование TSLab API в SharpDevelop. - Wed Oct 12 2011 04:19 PM

либо шарпдевелоп не той версии (старый), либо выбран NET Framework 2.0 в проекте, а не 3.5.

Должен быть Sharp Develop 3.2 или выше и ворк 3.5 и только он.
Автор: Physic

Re: Использование TSLab API в SharpDevelop. - Wed Oct 12 2011 10:25 PM

Originally Posted By: 777
либо шарпдевелоп не той версии (старый), либо выбран NET Framework 2.0 в проекте, а не 3.5.

Должен быть Sharp Develop 3.2 или выше и ворк 3.5 и только он.


Сегодня ещё один день ушёл безрезультатно - скомпилировать индикатор и добавить его в TSLab не удаётся (TSLab не видит dll)! frown На самом деле, т.к. я только на той неделе первый раз скачал и установил ШарпДевелоп, то у меня были самые последние версии и ШарпДевелопа 4.1 и Фреймворка 4.0. После Вашего сообщения я подумал, что может быть свежие версии не работают ещё, как должны, и установил предыдущие версии (ШарпДевелоп 3.2 и ФреймВорк строго 3.5), как Вы и написали. Перед установкой более старых версий, свежие версии удалял во избежание конфликта версий. Но к сожалению, и предыдущие версии также не работают. При этом параметр Target Framework был установлен в ".Net Framework 3.5", т.е. строго так, как Вы и написали. Уже не знаю, на что пенять! frown Может терминал TSLab у меня слишком свежий (версия 1.1.20.0), т.е. сырой. У Вас какая версия терминала? И вообще, что ещё можно сделать, что бы dll файлы начали восприниматься терминалом?
Автор: jhgjrht

Re: Использование TSLab API в SharpDevelop. - Thu Oct 13 2011 01:43 AM

Выложите на форум DLL, я гляну в чем дело.
Автор: Physic

Re: Использование TSLab API в SharpDevelop. - Thu Oct 13 2011 12:42 PM

Originally Posted By: jhgjrht
Выложите на форум DLL, я гляну в чем дело.

А как файл выложить на форум?
Кстати, Ваше предложение натолкнуло меня на идею попробывать открыть созданный dll файл индикатора в вспомогательной программе - "Dependency Walker" (программа для просмотра и анализа dll файлов). Эта вспомогательная прога показала, что в созданной dll есть ошибка и вывела строку описания этой ошибки: "Error: At least one module has an unresolved import due to a missing export function in an implicitly dependent module.
Warning: At least one delay-load dependency module was not found."

В другом окошке этой же проги есть список видимо других dll связанных с вновь созданной dll, так вот в этом списке напротив 2-х dll стоят вопросительные знаки и красным текстом написано:
(?) GDIPLUS.DLL - Error opening file. The system cannot find the file specified (2).
(?) GPSVC.DLL - Error opening file. The system cannot find the file specified (2).

Наверное поэтому терминал TSLab не видит мои dll файлы, созданные в среде ШарпДевелоп. frown Только не очень понятно, почему эта проблема возникает только у меня одного, хотя всё вспомогательное ПО я устанавливал строго по инструкциям! frown

Есть ещё идея соответственно попробывать как то самому найти эти две не достающие dll, но тогда встанет вопрос, а каких версий должны быть эти dll и в какие директории они должны быть скопированы?

Кстати, может быть Вы для эксперимента вышлите мне например на мэйл (serinfo@inbox.ru) Ваш какой нибудь самый обычный и, самое главное, работающий в терминале TSLab индикатор - dll, что бы я его мог посмотреть в терминале и удостовериться, по крайней мере, что проблема не с терминалом TSLab? А может даже заархивированную папку с готовым внутри проектом этого индикатора, что бы я сам мог попробывать откомпилировать этот dll файл - индикатор. А ещё лучше и то и другое - и откомпилированный dll файл, и заархивированную папку с проектом этого индикатора.

Заранее огромное Вам спасибо! smile
Автор: jhgjrht

Re: Использование TSLab API в SharpDevelop. - Thu Oct 13 2011 01:48 PM

Опа как smile
Вы безусловно очень умный, но я бы порекомендовал Вам остановиться в Ваших изысканиях. Даже до "GDIPLUS.DLL" доходить было совсем необязательно. Чего доброго доберетесь еще до "hal.dll" и подумаете, что она несоответствующей версии, придется процессор менять. smile

TSLab не видит Ваши DLL только из-за несоответствия версии .net framework или если в программном коде индикатора Вы удалили что-то "ненужное".

ыыыы
Автор: ViL

Re: Использование TSLab API в SharpDevelop. - Thu Oct 13 2011 01:48 PM

Здесь много примеров с работающими dll и с файлами cs.
http://www.tslab.ru/ubb/ubbthreads.php?ubb=postlist&Board=26&page=1
Автор: Physic

Re: Использование TSLab API в SharpDevelop. - Thu Oct 13 2011 02:33 PM

Originally Posted By: jhgjrht
Опа как smile
TSLab не видит Ваши DLL только из-за несоответствия версии .net framework или если в программном коде индикатора Вы удалили что-то "ненужное".

ыыыы

Огромное Вам спасибо, что откликаетесь!
Но к сожалению, мистика продолжается! frown Терминал TSLab самой последней версии (1.1.20.0) не видит и Вашу dll. Попробывал в ШарпДевелопе откомпилировать Ваш код - так же без результатно. К тому же я, так как только начинаю осваивать среду ШарпДевелоп, то естественно сам ни одной строчки из примеров кодов не удалял и даже не притрагивался к ним. Задача была просто откомпилировать стандартный, работающий код в dll файл индикатора и затем посмотреть его на графике в терминале TSLab. Что касается не соответствия версии .net framework, то у меня установлена самая последняя версия - 4.0, хотя я уже пробывал её удалять и переустанавливать на предыдущую версию - 3.5. Результат был один и тот же! frown У меня уже просто отчаяние начинается! frown
Автор: jhgjrht

Re: Использование TSLab API в SharpDevelop. - Thu Oct 13 2011 03:10 PM

Ну, отчаиваться не надо.
Ранее Вы писали, что размещаете DLL с индикаторами в папку "D:\Program Files\TSLab\Handlers", убедитесь, что TSLab запускаете из "D:\Program Files\TSLab".
Проверьте буквы названия "Handlers", может "H" кириллицей набрано, например. Проще эту папку заново создать.
Тот индикатор, что я выложил должен появиться на закладке "MyIndicators" в окне редактора TSLab. Проверьте.
Логи программы посмотрите.
Ну если ничего не помогает, тогда "в морг". smile
Автор: Physic

Re: Использование TSLab API в SharpDevelop. - Thu Oct 13 2011 08:09 PM

Originally Posted By: jhgjrht
Ну, отчаиваться не надо.
Ранее Вы писали, что размещаете DLL с индикаторами в папку "D:\Program Files\TSLab\Handlers", убедитесь, что TSLab запускаете из "D:\Program Files\TSLab".
Проверьте буквы названия "Handlers", может "H" кириллицей набрано, например. Проще эту папку заново создать.
Тот индикатор, что я выложил должен появиться на закладке "MyIndicators" в окне редактора TSLab. Проверьте.
Логи программы посмотрите.
Ну если ничего не помогает, тогда "в морг". smile

То что буквы 'H' или 'a' в названии папки могли быть набраны кирилицей, это Вы безусловно правы, но это было самое первое, что я проверял (просто не перечислял это дабы не загромождать важную тему). К тому же на этой неделе я уже несколько раз полностью сносил и TSLab и SharpDevelop и Framework, пробывал их переустанавливать предыдущими версиями, не помогало, снова устанавливал новые версии. Когда прописывал установычные пути, за кодировкой следил строго, т.к. такую возможную ошибку с кодировками всегда держу в голове.

Тут ещё один интересный момент вскрылся с той DLL, ссылку на которую Вы мне дали - в моей ОС Ваша DLL также оказалась не работоспособной, по сути пустой, т.к. моя вспомогательная прога Dependency Walker также показала (как и терминал TSLab), что у Вашей DLL имеется таже самая проблема, что и у моей, т.е. отсутствуют те две вспомогательные DLL. И описание ошибки было слово в слово таким же. Я начинаю подозревать, что как раз именно в этих DLL вся проблема и кроется. Ведь абравиатура DLL (Dynamic Link Library) в переводе на русский язык дословно переводится как Динамически Компануемая Библиотека (библиотека функций, классов, объектов), хотя не сомневаюсь, что Вы это и без меня отлично знаете. Соответственно динамическая компановка DLL в ОС может происходить с другими DLL, и может образовываться достаточно сложное и ветвистое дерево подключаемых DLL. При этом, если хотя бы одна из вспомогательных DLL входящая в требуемое дерево подключаемых dll будет отсутствовать, или будет находится не в нужной директории, или просто будет не той версии, которой должна быть, то наша Главная и Конечная DLL окажется фактически пустой и абсолютно не работоспособной в конкретной ОС на конкретной машине, где это дерево окажется повреждённым. Тут всё зависит от сложности программных технологий, применяемых разработчиками ПО. Здесь в нашем случае, судя по тому, что мне показывает моя вспомогательная прога - Dependency Walker как раз и образуются такие сложные DLL со сложными и ветвистыми деревьями из других вспомогательных dll. Кстати, то что Вы пишете про необходимость строгого соответствия установленной версии frame work (что бы она была строго версии 3.5), как раз и означает требование формирования правильного и корректного дерева вспомогательных dll подключаемых к нашей Главной DLL. Когда я учился в МГУ приходилось писать достаточно сложные многомодульные проги, часть модулей писал на С++ (математику), а визуализацию в среде BlackBox на языке Компонентный паскаль, при этом механизм dll использовал как промежуточное звено между разными языками программирования. Вспомогательную программу Dependency walker применял для отслеживания изменения имён в механизме DLL (при экспорте/импорте нужных мне функций (модулей) из одного языка в другой язык происходит небольшое изменение имён). В одном из окошек проги Dependency walker приводится список всех функций, которые импортированы в рассматриваемую dll, и вот Ваша DLL - индикатор, как и мои dll, созданные в среде ШарпДевелоп на моей машине оказываются абсолютно пустыми, т.е. без списка импортируемых функций и к тому же с двумя ошибками. Я написал это не для того, что бы "блеснуть", НЕТ, не в коем случае, а просто что бы объяснить, что не первый год в программировании, что "в теме" и что простые варианты с кирилицей с самого начала исключал. К тому же, наверняка, у кого то также может возникнуть полностью аналогичная проблема и этот материал (наша с Вами переписка) может оказаться кому то полезным. Хотя про кирилицу это Вы грамотно написали, т.к. такое вообще говоря может произойти, конечно, у кого угодно. Так же скорее всего правильно Вы написали про несоответствие версии фрэймворка, т.е. несоответствия дерева вспомогательных dll. Только что мне делать, если это я тоже опробывал - переустанавливал всё ПО на предыдущие версии и чётко контролировал на вкладке Compiling в свойствах проекта значение параметра Target Framework (установлено в ".NET Fremework 3.5"). Т.е. соблюдал всё, что Вы мне и писали, но пока ни чего не помогло! frown Думаю, что надо каким то образом создать на моей машине дерево вспомогательных dll полностью аналогичное Вашему дереву, т.е. дереву установленному на Ваших машинах.
Автор: ViL

Re: Использование TSLab API в SharpDevelop. - Thu Oct 13 2011 09:52 PM

Dependency Walker не показывает заивсимость для dll NET, .т.к. они в другом формате.
Автор: Physic

Re: Использование TSLab API в SharpDevelop. - Thu Oct 13 2011 10:50 PM

Originally Posted By: ViL
Dependency Walker не показывает заивсимость для dll NET, .т.к. они в другом формате.

Ну хорошо, Вам наверное лучше знать, поскольку я не профессиональный программер и, действительно, каких то тонкостей в профессиональном программировании могу не знать. Вопрос в другом - что я должен сделать, что бы Ваша система (связка терминала TSLab со средой программирования SharpDevelop) работала бы и у меня на 100% ?
Автор: jhgjrht

Re: Использование TSLab API в SharpDevelop. - Fri Oct 14 2011 12:51 AM

Ух, скока букафф, хорошо в МГУ обучают. smile
Наберитесь терпения и ищите простое решение. Если TSLab запускается и работает, то все необходимое для него имеется, включая фреймворк и системные DLL. smile
Автор: Physic

Re: Использование TSLab API в SharpDevelop. - Fri Oct 14 2011 01:15 PM

Originally Posted By: ViL
Dependency Walker не показывает заивсимость для dll NET, .т.к. они в другом формате.


Поговорил со своим другом - профессиональным программистом, он сказал, что Вы абсолютно правы. Он посмотрел Ваши и мои dll с помощью уже иной вспомогательной проги, зашёл ко мне на комп, и увидел, что всё установлено правильно и должно работать, соответственно через 3 минуты выяснилось, что всё работает. smile

Originally Posted By: jhgjrht
Наберитесь терпения и ищите простое решение. Если TSLab запускается и работает, то все необходимое для него имеется, включая фреймворк и системные DLL. smile


ФУУУХ, теперь наконец то и у меня заработало, вернее даже - оказывается, у меня всё работало с самого начала. Короче Вы абсолютно правы - надо было искать простое решение. Вот только не смешно. Я потерял целую неделю из за совсем крошечной неточности в инструкции на первой странице. Я просто забыл в какой стране живу и как у нас люди пишут инструкции. А именно на первой странице написано по русски:

"5.5. Заходим в программу TSLab в редактор шаблона и смотрим на закладку Пользовательские индикаторы:"

Вот я соответственно на вкладке " Пользовательские индикаторы " и пытался найти индикаторы из своих dll. Так до конца жизни и не нашёл бы, если бы друг не подсказал. А кроме этого не значительного недостатка, инструкция, конечно, хорошая.
Автор: Denis

Re: Использование TSLab API в SharpDevelop. - Fri Oct 14 2011 01:34 PM

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

В документации написано следующее:

Теперь если в TSLab открыть Редактор графиков, то новый индикатор появится среди существующих типов Конвертора.

http://www.tslab.ru/docs/online/connectapi.htm

И не могли бы вы пояснить в чем все же была проблема что бы мы могли поправить документацию если это требуется.
Автор: Physic

Re: Использование TSLab API в SharpDevelop. - Fri Oct 14 2011 03:31 PM

Originally Posted By: Denis
Не могли бы вы точно указать откуда взят текст про индикатор?

Текст про индикатор я взял с самой первой страницы этой темы (пункт 5.5), ближе к концу страницы.

Originally Posted By: Denis

В документации написано следующее:

Теперь если в TSLab открыть Редактор графиков, то новый индикатор появится среди существующих типов Конвертора.

http://www.tslab.ru/docs/online/connectapi.htm

Я не спорю, просто под "инструкцией" я понимал первую страницу этой темы, где автор, действительно, очень подробно, чётко и понятно формулирует пошагово, что и как надо установить и сделать, что бы всё работало на 100%. Единственный момент - очень обидно, что была допущена совсем не значительная не точность, а именно сказано, что новый индикатор надо смотреть на вкладке " Пользовательские индикаторы ". А оказывается, что новый индикатор надо смотреть на той вкладке, которая указывается в исходнике индикатора (dll файла), т.е. в файле C#, в строке:
+++++++++
...
namespace MyIndicators {
[HandlerCategory("MyIndicators")]
...
+++++++++
Originally Posted By: Denis


И не могли бы вы пояснить в чем все же была проблема что бы мы могли поправить документацию если это требуется.

Ну и соответственно в этом и была проблема - т.е. я искал новый индикатор не на той вкладке на которой он появлялся. smile И вообще, по моему, лучше удалить из редактора шаблона в терминале TSLab эту злосчастную вкладку " Пользовательские ", т.к. эту же функцию несёт вкладка " MyIndycators ". Просто я на проблему посмотрел очень узко, т.е. "по немецки", если написано в "инструкции", что новые индикаторы появляются на вкладке " Пользовательские ", то только там их и искал, а когда не находил, то делал не правильный вывод о том, что что-то не работает.
Просто в программировании мелочей не бывает, и самая не винная не точность в коде или в инструкции может приводить к трудно уловимым "ошибкам". Хотя можно и сказать, что ерунда, и просто мне не повезло и я потерял целую неделю на борьбу с ветрянной мельницей. frown
Автор: Denis

Re: Использование TSLab API в SharpDevelop. - Wed Oct 19 2011 06:07 PM

Спасибо.
Мы учли ваши замечания и внесли небольшие изменеия в основную документацию.

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

На будущее мы настоятельно рекомендуем Вам в случае любых проблем смотреть первым делом основную документацию.
Автор: Anton_M

Re: Использование TSLab API в SharpDevelop. - Thu Mar 15 2012 10:48 AM

Возможно такой вопрос был уже поднят ранее. Но я его обсуждения не нашел.

При создании индикатора по инструкции в первом посте, создается только .dll файл. ТСЛаб его не видит во вкладке "Пользовательские".
Когда я нажимаю "Загрузить из файла" он пытается найти файлы xml, которые не были созданы.

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

Заранее спасибо!
Автор: ViL

Re: Использование TSLab API в SharpDevelop. - Thu Mar 15 2012 11:11 AM

Создать папку Handlers в корне, и положить туда dll. Перезагрузить ТсЛаб. framework строго 3.5
Автор: Anton_M

Re: Использование TSLab API в SharpDevelop. - Thu Mar 15 2012 11:38 AM

Делаю все инструкции. Но фреймворк стоит 4. А 3.5 почему то не ставится (жму на установщик - ноль реакции).
Автор: ViL

Re: Использование TSLab API в SharpDevelop. - Thu Mar 15 2012 12:14 PM



Если его здесь нет и он не ставиться, стоит снести и загрузить по новой все версии.
Автор: Anton_M

Re: Использование TSLab API в SharpDevelop. - Thu Mar 15 2012 01:06 PM

А почему же тогда у меня нормально работают скрипты, написанные в этом же SharpDeveloper и с тем же framework 4?
Автор: Anton_M

Re: Использование TSLab API в SharpDevelop. - Thu Mar 15 2012 01:17 PM

Может ли это быть изза того что у меня sharpdevelop версии 4.1.0 ? в инструкции написано про 3
Автор: Nektodron

Re: Использование TSLab API в SharpDevelop. - Thu Mar 15 2012 01:39 PM

Если вы плохо понимаете в чем отличия фреймворков и как настроить sharpdevelop 4.1 на работу с 3.5. То лучше использовать более старый sharpdevelop, который рассчитан на работу с фреймфорком 3.5.
Автор: Anton_M

Re: Использование TSLab API в SharpDevelop. - Thu Mar 15 2012 03:06 PM

Проблема решилась путем перехода sharp develop с 4 на 3. Сейчас все в порядке. Спасибо!
Автор: Anton_M

Re: Использование TSLab API в SharpDevelop. - Thu Mar 15 2012 03:46 PM

Тогда еще вопрос.
Допустим я написал индикатор. Открываю его в ТСЛаб. И вдруг понимаю, что где то сделал ошибку в коде.
Вопрос такой: Возможно ли изменить код и построить его заново без перезапуска ТСлаба?

Заранее спасибо!
Автор: ViL

Re: Использование TSLab API в SharpDevelop. - Thu Mar 15 2012 05:34 PM

Файл - настройки программы - скрипты - отладка скриптов.
Только скрипты, на индикаторы не распространяется\
Автор: tip1

Re: Использование TSLab API в SharpDevelop. - Mon Mar 19 2012 01:53 PM

"Нажимаем Выполнить в TSLab" - у меня при нажатии открывается
пустое окно "empty chart" и все, провайдер Финам (при этом в TSlab в блоке Источник1- не определено, как явно указать источник данных - Финам? )
Автор: ViL

Re: Использование TSLab API в SharpDevelop. - Mon Mar 19 2012 02:30 PM

В источнике данных выбрать портфель.
Автор: tip1

Re: Использование TSLab API в SharpDevelop. - Mon Mar 19 2012 03:09 PM

Originally Posted By: ViL
В источнике данных выбрать портфель.

Источник1 - когда щелкаю на блок источник данных, в панели свойств не дает изменить ничего, кроме названия, и чекбокс Не торгуется... Где и как его выбрать?
Автор: ViL

Re: Использование TSLab API в SharpDevelop. - Mon Mar 19 2012 03:15 PM

"не торгуется" то же не меняется?
Очевидно выбираете неторгуемый инструмент, например индикатор MICEX ? Попробуйте на текстовом источнике.
Автор: tip1

Re: Использование TSLab API в SharpDevelop. - Mon Mar 19 2012 03:33 PM

TSLab 1.1.24
Чекбокс меняется.
Управление торговлей -> выбрать скрипт ->
1.поле портфеля -пустое, и не дает ничего выбрать.
2.добавляю инструмент ММВБ -> GAZP,
Выдает - скрипт не содержит ни одного источника данных,кнопка ОК неактивна. При этом:
Провайдер Финам - подключен к провайдеру
Управление портфелями - портфель Demo, подключен ДА, активный ДА
Автор: ViL

Re: Использование TSLab API в SharpDevelop. - Mon Mar 19 2012 04:17 PM

Это делается вот так:



Автор: denbrook

Re: Использование TSLab API в SharpDevelop. - Wed Apr 04 2012 01:44 PM

Выполняю пример с первой странице. Со скриптом все гут, а вот с индикатором возникло затруднение. При попытке выполнить "build" - "build solution" появляется такая ошибка. В чем может быть причина?


Unable to copy file "..\..\..\..\..\..\Program Files (x86)\TSLab\TSLab.Script.xml" to "..\..\..\..\..\..\Program Files (x86)\TSLab\Handlers\TSLab.Script.xml". Access to the path '..\..\..\..\..\..\Program Files (x86)\TSLab\Handlers\TSLab.Script.xml' is denied. (MSB3021)
Автор: Nektodron

Re: Использование TSLab API в SharpDevelop. - Wed Apr 04 2012 02:10 PM

Вероятно неправильно настроили solution. Зачем там вообще копируются xml?
Автор: denbrook

Re: Использование TSLab API в SharpDevelop. - Wed Apr 04 2012 04:09 PM

Создал вторую папку Handlers "C:\Users\YOUR_ACCOUNT\AppData\Local\TSLab\TSLab\Handlers"

Первая папка Handlers находится в той папке, где установлена программа.
Индикатор вижу в Тслабе, но снова ошибка:
Unable to copy file "obj\x86\Debug\Мой первый индикатор.dll" to "..\..\..\..\AppData\Local\TSLab\TSLab\Handlers\Мой первый индикатор.dll". The process cannot access the file '..\..\..\..\AppData\Local\TSLab\TSLab\Handlers\Мой первый индикатор.dll' because it is being used by another process. (MSB3021)
Автор: ViL

Re: Использование TSLab API в SharpDevelop. - Wed Apr 04 2012 04:28 PM

Папка должна быть только одна. В индикаторе из примера ошибка, возьмите любой другой пример с форума.
Автор: denbrook

Re: Использование TSLab API в SharpDevelop. - Wed Apr 04 2012 05:11 PM

Где должна лежать папка Handlers в Windows server 2008 R2 Standart?
Автор: ViL

Re: Использование TSLab API в SharpDevelop. - Wed Apr 04 2012 05:17 PM

Эта C:\Users\YOUR_ACCOUNT\AppData\Local\TSLab\TSLab\Handlers подойдет
Автор: LesnoyOlen

Re: Использование TSLab API в SharpDevelop. - Wed Sep 26 2012 12:29 PM

Сделал все как в инструкции, пример индикатора взял из help-а. Скомпилировался без ошибок. Получившийся .dll лежит в папке Handlers там где установлена программа, и в профиле. А индикатор не появляется в пользовательских. Положил туда же .dll из соседней ветки форума с готовыми индикаторами , они появились в пользовательских. Что я делаю не так ?
Автор: ViL

Re: Использование TSLab API в SharpDevelop. - Wed Sep 26 2012 10:49 PM


Первый пример индикатора в документации с ошибкой.
+ возможно проект сделан 32бит, а программа 64бит .
Автор: Конечно

Re: Использование TSLab API в SharpDevelop. - Sat Sep 29 2012 06:55 PM

Originally Posted By: ViL
В индикаторе из примера ошибка, возьмите любой другой пример с форума.

Буду искренне благодарен, если дадите ссылку, о каком примере идёт речь (а то голова немного вспухает) и ссылку на пример из форума, который можно смело брать
Originally Posted By: ViL

Первый пример индикатора в документации с ошибкой

Разве в документации более одного примера индикатора???
Автор: Конечно

Re: Использование TSLab API в SharpDevelop. - Sun Sep 30 2012 09:01 AM

Originally Posted By: andy

Примечание. Если выбран параметр Output type – Class library, то функция Debug будет выдавать ошибку:


Что бы значила эта фраза? и, к какому контексту она относится?

В использованных исходных текстах (сырцах) C# нет никаких Debug функций, а в описаниях их использования ничего, кроме выставления Output type – Class library вроде, как и не говорится
Автор: ViL

Re: Использование TSLab API в SharpDevelop. - Sun Sep 30 2012 10:36 AM

Примеры смело можно брать здесь:
http://forum.tslab.ru/ubb/ubbthreads.php?ubb=showflat&Number=2422#Post2422
Автор: Конечно

Re: Использование TSLab API в SharpDevelop. - Wed Oct 03 2012 06:08 PM

Originally Posted By: Конечно
Originally Posted By: andy

Примечание. Если выбран параметр Output type – Class library, то функция Debug будет выдавать ошибку:


Что бы значила эта фраза? и, к какому контексту она относится?

Неужели так сложно ответить?
Каким образом запустить скрипт в режиме отладки?
Автор: ViL

Re: Использование TSLab API в SharpDevelop. - Wed Oct 03 2012 07:07 PM

Это описано в документации. В программе файл - настройки программы - отладка скриптов.
Настройки проекта как в первом посте этой ветки.
http://forum.tslab.ru/ubb/ubbthreads.php?ubb=showflat&Number=7811#Post7811
Автор: Stas_Ivanov

Re: Использование TSLab API в SharpDevelop. - Sun Apr 28 2013 10:47 PM

Подскажите, что изменилось для версии 1.2?

Я выбрал в проекте .NET 4.0, скомпилировал DLL.
TsLAb 1.2 не видит ничего, для старой версии все работает нормально.
Автор: Stas_Ivanov

Re: Использование TSLab API в SharpDevelop. - Thu May 16 2013 04:36 PM

Вопрос ещё актуален, коллеги.

Подскажите, пожалуйста!!!
Автор: ra81

Re: Использование TSLab API в SharpDevelop. - Fri May 17 2013 06:01 AM

Originally Posted By: Stas_Ivanov
Вопрос ещё актуален, коллеги.

Подскажите, пожалуйста!!!

При компиляции вы меняли референсы под новую версию ТСЛаба? Вы куда поместили вашу библиотеку?
По части того что изменилось: шибко ничего не менялось, исчезло пару интерфейсов добвилось чуток. Думаю проблема не в том что изменилось чтото. Вернемся к вопросу моему #1
Автор: Stas_Ivanov

Re: Использование TSLab API в SharpDevelop. - Fri May 17 2013 08:12 PM

Поместил в Users/appdata/local/tslab12/handlers как обычно
Референсы брал из 12 есесна.
Автор: ra81

Re: Использование TSLab API в SharpDevelop. - Sat May 18 2013 01:06 PM

Originally Posted By: Stas_Ivanov
Поместил в Users/appdata/local/tslab12/handlers как обычно
Референсы брал из 12 есесна.

Пока данных не хватает. Если дадите ваш проект библиотеки можно будет понять что не так. На текущий момент не вижу в чем беда.
Автор: Stas_Ivanov

Re: Использование TSLab API в SharpDevelop. - Sat May 18 2013 11:32 PM

Я понял в чем проблема - библиотеку видно только под 32-битной программой.

Не подскажете, как скомпилировать её так, чтобы она была видна в 64-битном ТСЛабе? Или можно сразу чтобы и там, и там ^_^ С
Автор: ViL

Re: Использование TSLab API в SharpDevelop. - Sun May 19 2013 02:13 AM

Originally Posted By: Stas_Ivanov

... Или можно сразу чтобы и там, и там ^_^ С

http://forum.tslab.ru/ubb/ubbthreads.php?ubb=showflat&Number=15490#Post15490
Автор: mumbo jumbo

Re: Использование TSLab API в SharpDevelop. - Tue Jul 09 2013 12:01 AM

Подскажите, в Visual studio 2008 должно работать? У меня ругается когда подключаю
- TSLab.DataSource.dll
- TSLab.Script.dll
C:\WINDOWS\Microsoft.NET\Framework\v3.5\Microsoft.Common.targets : warning MSB3246: полученный файл поврежден, не имеет метаданных или недоступен по другой причине. Невозможно загрузить файл или сборку "C:\Program Files\TSLab 1.2\TSLab.DataSource.dll" или один из зависимых от них компонентов. Сборка создана в более поздней версии среды выполнения чем текущая, и не может быть загружена.
Проект делал с Net Framework 3.5

В Sharp Developer получилось скомпилить индикатор когда установил последнюю версию Sharp Developer 4.3.1 и создал проект с Net Fr 4.0, ни с 3.5 ни с версией 3.5 Client Profile работать не хотело.
Так и должно быть?
Автор: teplo

Re: Использование TSLab API в SharpDevelop. - Fri Apr 17 2015 06:51 PM

Это безумие какое-то, в SD 4.4 раз 10 по инструкции повторял...бесполезно, компилируется только в первоначально указанный файл и то, какой-то набор, а не dll. В Хэндлерс ничего не появляется хоть тресни.
Автор: Physic

Re: Использование TSLab API в SharpDevelop. - Sun Jun 07 2015 11:36 AM

Originally Posted By: teplo
Это безумие какое-то, в SD 4.4 раз 10 по инструкции повторял...бесполезно, компилируется только в первоначально указанный файл и то, какой-то набор, а не dll. В Хэндлерс ничего не появляется хоть тресни.


Установил SD 4.4, всё выполнил строго по инструкции на первой странице темы, и всё заработало. TSLab установлен версии 1.2. Два момента остались не понятны:
1) зачем в такой подробной и чёткой инструкции давать ссылку на код индикатора с ошибкой - в пункте 5.3 на первой странице? Неужели нельзя заменить этот код на правильный (без ошибок)?
2) в инструкции в одном месте очень двусмысленно написано:
"5.1. В папке, где установлен TSLab, создаем папку с названием Handlers (если она еще не создана)".
Дело в том, что существует две папки "где установлен TSLab":
1) "C:\Program Files (x86)\TSLab 1.2\"
2) "C:\Users\UserName\AppData\Local\TSLab\TSLab12\"
Я в начале создавал папку Handlers по первому пути, а оказалось, что надо было по второму пути. После того, как в SD Вы откомпилируете индикаторы, TSLab надо закрыть и запустить заново, и новые индикаторы появятся на панели инструментов в разделе "Пользовательские".
Автор: ra81

Re: Использование TSLab API в SharpDevelop. - Sun Jun 07 2015 01:32 PM

на самом деле для пункта 2 оба варианта валидны. а тслаба устанавливается все же всегда в "C:\Program Files (x86)\TSLab 1.2\", а другая папка это профиль пользователя.
Автор: IgorZhukov

Re: Использование TSLab API в SharpDevelop. - Tue Jun 09 2015 05:35 PM

Блин клинтон, то ли я читать не умею то ли еще чего, так и не получилось перекомпилировать из 32 битного в 64 битный индикатор.... Сейчас еще раз попробую с сатого начала....
Автор: IgorZhukov

Re: Использование TSLab API в SharpDevelop. - Tue Jun 09 2015 05:49 PM

Несоответствие между архитектурой процессора проекта "AMD64", построение которого выполняется, и архитектурой процессора ссылки "C:\Windows\Microsoft.NET\Framework\v4.0.30319\mscorlib.dll", "x86". Это несоответствие может привести к ошибкам во время выполнения. Попробуйте изменить целевую архитектуру процессора для проекта с помощью диспетчера конфигураций, чтобы согласовать архитектуры процессоров для проекта и ссылок, или используйте зависимость от ссылок с архитектурой процессора, соответствующей целевой архитектуре процессора проекта. (MSB3270)
Пишет вот такую ошибку и все ((((
Автор: ra81

Re: Использование TSLab API в SharpDevelop. - Tue Jun 09 2015 05:57 PM

это нужно пилить настройки проекта. Как в девелопере это делать увы не знаю. Видимо в проекте стоит 64 бита жестко а не AnyCpu, поэтом не дает скомпилить под 86.
Автор: IgorZhukov

Re: Использование TSLab API в SharpDevelop. - Tue Jun 09 2015 06:46 PM

((((
Родион, и что делать?
Автор: ra81

Re: Использование TSLab API в SharpDevelop. - Tue Jun 09 2015 07:37 PM

видимо разобраться с настройками проекта и переставить их в х86.
Автор: IgorZhukov

Re: Использование TSLab API в SharpDevelop. - Tue Jun 09 2015 08:08 PM

Скриншот
Автор: Mortiferus

Re: Использование TSLab API в SharpDevelop. - Thu Jul 21 2016 03:17 PM

Всем привет! Я новичок, небольшой опыт программирования есть. Сейчас пытаюсь настроить SharpDeveloper, чтобы изучить процесс создания скриптов/индикаторов. Настройка "с лету" не получилась, долгая перенастройка ничего не дала. Почитал форум и сложилось впечатление, что для работы надо ставить такую конфигурацию: ShDev v.3, NET Fr - 3.5, TSLab 1.2. Я все правильно понял? Просто текущая версия ShDev 5.1, а NET Fr - 4.0. Вот и думаю, сносить и переустанавливать? Или все же можно настроить?
Автор: ra81

Re: Использование TSLab API в SharpDevelop. - Thu Jul 21 2016 04:20 PM

нет. 4 фреймворк пашет. Прочитайте помощь сначала, потом форум.
Автор: Mortiferus

Re: Использование TSLab API в SharpDevelop. - Fri Jul 22 2016 09:45 AM

По help-у я и делал с самого начала - ничего не пашет. Потому и пришел сюда.
Автор: ra81

Re: Использование TSLab API в SharpDevelop. - Fri Jul 22 2016 11:21 AM

ну с фразой "ничего не пашет" ответить вам могут только в духе "печально" :))
Автор: Mortiferus

Re: Использование TSLab API в SharpDevelop. - Fri Jul 22 2016 11:32 AM

Потыкавшись в настройках и на форуме, хотел просто узнать свойства "рабочей конфигурации" шарпа-нета-тслаба.
Автор: yakudzzzzza

Re: Использование TSLab API в SharpDevelop. - Fri Feb 22 2019 07:22 PM

Нужна помощь.
Проблема на скрине.
Сам фреймворк в системе установлен.
Почему его нет в VS и есть ли способ решить эту проблему?
Та же проблема, кстати, при попытке зааттачить ТСЛаб к VS
Автор: sar

Re: Использование TSLab API в SharpDevelop. - Sat Feb 23 2019 10:27 AM

попробуйте еще установить 4.6.2 девелоперскую
Автор: yakudzzzzza

Re: Использование TSLab API в SharpDevelop. - Sun Feb 24 2019 01:55 AM

Спасибо за ответ, разобрался самостоятельно. Если кто столкнется с данной проблемой, пакет устанавливается в установщике VS (VS Installer > VS 2017 > Изменить) там можно докачать все нужные пакеты до 4.7.1
Автор: novikov433

Re: Использование TSLab API в SharpDevelop. - Mon Dec 06 2021 02:05 PM

Подскажите а через dotPeek можно передалть мануал?
rusalgo так же не работает
https://www.jetbrains.com/ru-ru/decompiler/download/download-thanks.html?platform=windowsWeb