#654 - Mon Dec 28 2009 02:16 PM
Ваш пример программы API
|
newbie
Registered: Fri Dec 25 2009
Записи: 31
|
добавить using TSLab.Script.Handlers; using TSLab.Script.Optimization;
Отредактировано Sergey (Mon Dec 28 2009 03:50 PM)
|
Наверх
|
|
|
|
#661 - Mon Dec 28 2009 03:56 PM
Re: Ваш пример программы API
[Re: Sergey]
|
newbie
Registered: Fri Dec 25 2009
Записи: 31
|
после вышеуказанных добавок, дополнительного ( перед запуском Debug - Attach process.. из главного меню, самостоятельного отдельного запуска TSLAB процесс пошел: программы связались, но не выполнились, с результатом: error CS0006: Не удалось найти файл метаданных "C:\Users\Сергей\AppData\Local\TSLab\TSLab\temp\ext22.dll". Что не так? Пример Ваш.
|
Наверх
|
|
|
|
#669 - Mon Dec 28 2009 07:29 PM
Re: Ваш пример программы API
[Re: Nektodron]
|
newbie
Registered: Fri Dec 25 2009
Записи: 31
|
Других ошибок нет. Кроме вышеуказанной, только Не могу собрать скрипт.Не могу запустить скрипт и error CS0006: Не удалось найти файл метаданных "C:\Users\Сергей\AppData\Local\TSLab\TSLab\temp\ext11.dll"
Отредактировано Sergey (Mon Dec 28 2009 07:32 PM)
|
Наверх
|
|
|
|
#677 - Mon Dec 28 2009 09:50 PM
Re: Ваш пример программы API
[Re: Nektodron]
|
newbie
Registered: Fri Dec 25 2009
Записи: 31
|
21:47:35.32[16]DEBUG:error CS0006: Не удалось найти файл метаданных "C:\Users\Сергей\AppData\Local\TSLab\TSLab\temp\ext18.dll" 21:47:35.32[16]INFO :error CS0006: Не удалось найти файл метаданных "C:\Users\Сергей\AppData\Local\TSLab\TSLab\temp\ext18.dll" 21:47:35.33[16]INFO :Не могу запустить скрипт. 21:47:36.30[16]DEBUG:error CS0006: Не удалось найти файл метаданных "C:\Users\Сергей\AppData\Local\TSLab\TSLab\temp\ext18.dll" 21:47:36.31[16]INFO :error CS0006: Не удалось найти файл метаданных "C:\Users\Сергей\AppData\Local\TSLab\TSLab\temp\ext18.dll" 21:47:36.31[16]INFO :Не могу запустить скрипт. 21:47:36.32[16]DEBUG:Не могу собрать скрипт. 21:47:36.32[16]INFO :Не могу собрать скрипт.
|
Наверх
|
|
|
|
#678 - Mon Dec 28 2009 09:51 PM
Re: Ваш пример программы API
[Re: Sergey]
|
newbie
Registered: Fri Dec 25 2009
Записи: 31
|
using System.Collections.Generic; using TSLab.Script; using TSLab.Script.Handlers; using TSLab.Script.Optimization;
namespace TSLab.Samples { public class HiLoSample : IExternalScript { // Параметры оптимизации для длинных позиций задаются при помощи типа OptimProperty. public OptimProperty HighPeriod = new OptimProperty(20, 10, 100, 5); public OptimProperty LowPeriod = new OptimProperty(10, 10, 100, 5);
// Параметры оптимизации для коротких позиций так же задаются при помощи типа OptimProperty. public OptimProperty Low2Period = new OptimProperty(20, 10, 100, 5); public OptimProperty High2Period = new OptimProperty(10, 10, 100, 5);
public virtual void Execute(IContext ctx, ISecurity source) { // Вычисляем максимумы и минимумы. // Используем GetData для кеширования данных и ускорения оптимизация. // При неиспользовании кэша увеличивается объем обрабатываемых данных, что ведет к сильному замедлению оптимизации. // Следует учесть, что необходимо перечислить абсолютно все изменяемые переменные используемые в вычислениях. // Не соблюдение этого правила приведет к некорректной работе и результатам оптимизации. IList<double> high = ctx.GetData("Highest", new[] {HighPeriod.ToString()}, delegate { return Series.Highest(source.HighPrices, HighPeriod); }); IList<double> low = ctx.GetData("Lowest", new[] {LowPeriod.ToString()}, delegate { return Series.Lowest(source.HighPrices, LowPeriod); }); IList<double> high2 = ctx.GetData("Highest", new[] {High2Period.ToString()}, delegate { return Series.Highest(source.HighPrices, High2Period); }); IList<double> low2 = ctx.GetData("Lowest", new[] {Low2Period.ToString()}, delegate { return Series.Lowest(source.HighPrices, Low2Period); });
// Берем основной панель (Pane). IPane mainPane = ctx.First;
// Отрисовка графиков. mainPane.AddList(string.Format("High({0}) [{1}]", HighPeriod, source.Symbol), high, ListStyles.LINE, 0x00ff00, LineStyles.SOLID, PaneSides.RIGHT); mainPane.AddList(string.Format("High({0}) [{1}]", High2Period, source.Symbol), high2, ListStyles.LINE, 0x00ff00, LineStyles.DASH, PaneSides.RIGHT); mainPane.AddList(string.Format("Low({0}) [{1}]", LowPeriod, source.Symbol), low, ListStyles.LINE, 0xff0000, LineStyles.SOLID, PaneSides.RIGHT); mainPane.AddList(string.Format("Low({0}) [{1}]", LowPeriod, source.Symbol), low2, ListStyles.LINE, 0xff0000, LineStyles.DASH, PaneSides.RIGHT);
// ================================================= // Торговля. int barsCount = source.Bars.Count; for (int i = 0; (i < barsCount); i++) { IPosition le = source.Positions.GetLastActiveForSignal("LE"); if (le == null) { // Если нет активных длинных позиций, выдаем условный ордер на создание новой позиции. source.Positions.BuyAtLimit(i + 1, 1, high[i], "LE"); } else { le.CloseAtStop(i + 1, low[i], "LX"); } IPosition se = source.Positions.GetLastActiveForSignal("SE"); if (se == null) { // Если нет активных коротких позиций, выдаем условный ордер на создание новой позиции. source.Positions.ShortAtLimit(i + 1, 1, low2[i], "SE"); } else { se.CloseAtStop(i + 1, high2[i], "SX"); } } } } }
|
Наверх
|
|
|
|
#680 - Mon Dec 28 2009 10:36 PM
Re: Ваш пример программы API
[Re: Nektodron]
|
newbie
Registered: Fri Dec 25 2009
Записи: 31
|
Все равно не проходит (c теми же извещениями). Я только начал знакомство с c# (писал на ассемблере, дельфи, физ. уровне в детстве, но к сожалению о С# имею отдаленное представление). Поэтому спрошу Точка входа в программу как public static void Main(string[] args) где в нашем скрипте? Или она формируется по другому, хотя др. файлы мы удалили как сказано в справке. Или, как говорил профессор, иди читай...? А еше лучше выложите весь C# проект. Кстати (или не кстати) внешний скрипт у меня все время отстегивается в TSLAb, приходится вставлять заново после входа в редактор.
Отредактировано Sergey (Mon Dec 28 2009 10:41 PM)
|
Наверх
|
|
|
|
#682 - Tue Dec 29 2009 12:05 PM
Re: Ваш пример программы API
[Re: Nektodron]
|
newbie
Registered: Fri Dec 25 2009
Записи: 31
|
Не понял почему, просто запустил также как вчера, но скрипт пошел. При этом внешний скрипт в TSLab воткнулся сам, однако указывает, что в параметрах скрипов 0. Может я вчера просто по времени не дождался, когда свяжутся потоки. Отладчик однако выдал: 12:01:32.83[1]DEBUG:Script was save to DB. 12:01:33.37[17]DEBUG:Can't set parameter 'Внешний скрипт:HighPeriod' 12:01:33.38[17]DEBUG:Can't set parameter 'Внешний скрипт:LowPeriod'
12:01:33.38[17]DEBUG:Can't set parameter 'Внешний скрипт:Low2Period' 12:01:33.39[17]DEBUG:Can't set parameter 'Внешний скрипт:High2Period'
В TSLAB скрипт сработал с результатами. доходами и пр. правильность не проверял. Высылать Log?
Отредактировано Sergey (Tue Dec 29 2009 12:07 PM)
|
Наверх
|
|
|
|
#683 - Tue Dec 29 2009 12:35 PM
Re: Ваш пример программы API
[Re: Sergey]
|
Carpal Tunnel
Registered: Thu Oct 23 2008
Записи: 5492
|
|
Наверх
|
|
|
|
#684 - Tue Dec 29 2009 12:59 PM
Re: Ваш пример программы API
[Re: Nektodron]
|
newbie
Registered: Fri Dec 25 2009
Записи: 31
|
log
Attachments
Logs.zip (127 downloads)
|
Наверх
|
|
|
|
#685 - Tue Dec 29 2009 03:04 PM
Re: Ваш пример программы API
[Re: Sergey]
|
Carpal Tunnel
Registered: Thu Oct 23 2008
Записи: 5492
|
12:01:32.83[1]DEBUG:Script was save to DB. 12:01:33.37[17]DEBUG:Can't set parameter 'Внешний скрипт:HighPeriod' 12:01:33.38[17]DEBUG:Can't set parameter 'Внешний скрипт:LowPeriod'
12:01:33.38[17]DEBUG:Can't set parameter 'Внешний скрипт:Low2Period' 12:01:33.39[17]DEBUG:Can't set parameter 'Внешний скрипт:High2Period'
В версии 1.0.4.0 баг, TSLab не может смапить параметры для блока внешнего скрипта с русским именем. Т.е. они всегда берутся из кода, их нельзя изменить и не будет работать оптимизация. В след версии это будет исправлено. Сейчас можно просто переименовать блок с использованием только латиницы.
|
Наверх
|
|
|
|
#1635 - Thu Jan 28 2010 09:34 PM
Re: Ваш пример программы API
[Re: Nektodron]
|
addict
Registered: Thu Jan 14 2010
Записи: 594
|
Взял Ваш пример индикатора из справки, при компилировании выдаётся ошибка: Имя 'Series' отсутствует в текущем контексте (CS0103) - C:\Documents and Settings\Саша\Рабочий стол\МТС\TSLab\Индикаторы\ДоллФОРТС\ДоллФОРТС\DollFORTS.cs:16,40
Скажите где копать, что искать, что изменить, чтобы хотя бы этот пример запустить?
_________________________
|
Наверх
|
|
|
|
|
|