#4641 - Tue Apr 20 2010 03:44 PM
Re: Выставление ордеров через API TSLab
[Re: ast]
|
enthusiast
Registered: Thu Jan 21 2010
Записи: 319
|
Уважаемые разработчики! Для предотвращения создания из раза в раз генерируемых пользователями ошибок при попытке создания алгоритма с использованием ISecurityRt в отсутствии документации для разработки API, просим создать пример использования ISecurityRt на основе имеющегося и всем понятного алгоритма Hi_Low.
На создание примера рабочего алгоритма на основе Hi_Low с использованием ISecurityRt разработчику из вашего коллектива потребуется максимум мин. 10. Не понятна цена вопроса, почему из-за столь мизерного усилия, пользователи ломают голову получая в ответ куски кода вырванные из общего контекста.
|
Наверх
|
|
|
|
#4650 - Tue Apr 20 2010 05:20 PM
Re: Выставление ордеров через API TSLab
[Re: Craft]
|
member
Registered: Tue Jul 21 2009
Записи: 152
|
Класс будет отдокументирован.
Примеров применения класса не будет.
|
Наверх
|
|
|
|
#4652 - Tue Apr 20 2010 05:31 PM
Re: Выставление ордеров через API TSLab
[Re: Denis]
|
enthusiast
Registered: Thu Jan 21 2010
Записи: 319
|
Класс будет отдокументирован.
Примеров применения класса не будет. Толковая документация всегда хорошо, и в описании зачастую приводятся примеры с скриптами. Почему для вас Пример применения класса не приемлем? Интересна логика категоричности. Когда описание будет готово, укажите пожалуйста ссылку.
|
Наверх
|
|
|
|
#4657 - Tue Apr 20 2010 06:01 PM
Re: Выставление ордеров через API TSLab
[Re: ast]
|
enthusiast
Registered: Thu Jan 21 2010
Записи: 319
|
...Тогда надо еще усложнить API, а то вдруг кто-то ушлый разберется... +5 P. S. Мотивы отсутствия толковой документации с примерами давно наводили на определённые мысли. Теперь всё встало на свои места, как всегда всё банально просто.
|
Наверх
|
|
|
|
#4658 - Tue Apr 20 2010 06:04 PM
Re: Выставление ордеров через API TSLab
[Re: andy]
|
enthusiast
Registered: Thu Jan 21 2010
Записи: 319
|
...Все очень просто. Ресурсы не резиновые. В приоритете разработка самого софта. Существующий коллектив загружен на все сто... На создание примера рабочего алгоритма на основе Hi_Low с использованием ISecurityRt разработчику из вашего коллектива потребуется максимум мин. 10.
|
Наверх
|
|
|
|
#4660 - Tue Apr 20 2010 06:07 PM
Re: Выставление ордеров через API TSLab
[Re: ast]
|
member
Registered: Tue Jul 21 2009
Записи: 152
|
Мы и не предполагаем существования массового количество програмистов на C# и трейдеров в одном флаконе.
Но всех ушлых, как вы их называете, способных разобраться, прветствуем, и даже называем их "профессионалы".
А реалии данного конкретного случая таковы, что написав пример для одного из классов по системе прецедентов придется писать для всех, а их сотня, и в сегодняшних реалиях у нас нет на это ресурсов.
Со временем появится и это. У раннего велза дока была тоже не фонтан.
Что касается зарабатывания денег, любой труд должен быть оплачен.
Более того, мы весьма открыты и дружелюбны к пользователям. Можно записаться на наш вебинар, например, и лично задать вопросы шеф - девелоперу.
Мало кто из разработчиков дает "доступ к телу" такого уровня.
|
Наверх
|
|
|
|
#4662 - Tue Apr 20 2010 06:11 PM
Re: Выставление ордеров через API TSLab
[Re: Craft]
|
Pooh-Bah
Registered: Mon Feb 16 2009
Записи: 2130
|
...Все очень просто. Ресурсы не резиновые. В приоритете разработка самого софта. Существующий коллектив загружен на все сто... На создание примера рабочего алгоритма на основе Hi_Low с использованием ISecurityRt разработчику из вашего коллектива потребуется максимум мин. 10. Дискутировать на эту тему времени нет. Необходимы примеры индикаторов и стратегий на основе их в большом кол-ве. Клиентов типа Craft будет все больше ( в хорошем смысле этого слова :-) ). Проблему надо решать кардинально, а не с одним Craft.
|
Наверх
|
|
|
|
#4663 - Tue Apr 20 2010 06:13 PM
Re: Выставление ордеров через API TSLab
[Re: ast]
|
member
Registered: Tue Jul 21 2009
Записи: 152
|
Я уже говорил выше в этом треде, апи в части заявок будет дорабатываться. Приоритет у задачи высокий. Что, как и в каком объеме, сейчас не спрашивайте - вопрос в стадии анализа.
|
Наверх
|
|
|
|
#4664 - Tue Apr 20 2010 06:33 PM
Re: Выставление ордеров через API TSLab
[Re: Denis]
|
enthusiast
Registered: Thu Jan 21 2010
Записи: 319
|
В связи с глобальной занятостью разработчиков, прошу пользователей программы TSLab имеющим более продвинутый уровень понимания программирования на C# оказать помощь в написании примера по использованию класса ISecurityRt в скриптах.
Заранее благодарю всех отозвавшихся за понимание.
|
Наверх
|
|
|
|
#4723 - Wed Apr 21 2010 09:03 PM
Re: Выставление ордеров через API TSLab
[Re: Craft]
|
journeyman
Registered: Thu Jan 07 2010
Записи: 85
|
Какой именно пример Вам нужен(сформулируйте его четко)? И что именно не понятно в этом интерфейсе?
|
Наверх
|
|
|
|
#4726 - Wed Apr 21 2010 09:25 PM
Re: Выставление ордеров через API TSLab
[Re: anothar]
|
enthusiast
Registered: Thu Jan 21 2010
Записи: 319
|
Какой именно пример Вам нужен(сформулируйте его четко)? И что именно не понятно в этом интерфейсе? anothar, спасибо что откликнулись. Если можно на примере скрипта Hi_Low покажите, как использовать ISecurity
public virtual void Execute(IContext ctx, ISecurity source)
{
ISecurityRt sourceRt = source as ISecurityRt;
...
Условия алгоритмам Hi_Low
...
int barsCount = source.Bars.Count;
for (int i = 0; (i < barsCount); i++)
{
IPosition le = source.Positions.GetLastActiveForSignal("LE");
if (le == null)
{
TSLab.DataSource.OrderType Growth = TSLab.DataSource.OrderType.Growth;
sourceRt.NewOrder(Growth, Buy, high[i], 1, "LE");
}
else
{
le.CloseAtStop(i + 1, low[i], "LX");
}
IPosition se = source.Positions.GetLastActiveForSignal("SE");
if (se == null)
{
TSLab.DataSource.OrderType Fall = TSLab.DataSource.OrderType.Fall;
sourceRt.NewOrder(Fall, Sell, low2[i], 1, "SE");
}
else
{
se.CloseAtStop(i + 1, high2[i], "SX");
}
} Если это муторно, покажите как с использованием ISecurity открыть и закрыть позицию. В программировании на С# не силён, не понятно из чего состоит класс (какие аргументы), описания подобного BuyIfGreater нет: void TSLab.Script.IPositionsList.BuyIfGreater (int barNum, double shares, double price, string signalName) Аргументы: barNum Номер свечи shares Количество лотов price Цена заявки signalName Название сигнала входа позиции Если можно законченный пример.
|
Наверх
|
|
|
|
#4727 - Wed Apr 21 2010 09:58 PM
Re: Выставление ордеров через API TSLab
[Re: Craft]
|
journeyman
Registered: Thu Jan 07 2010
Записи: 85
|
Самый простой пример: using System; using System.Collections.Generic; using System.Linq; using System.Text; using TSLab.Script; using TSLab.Script.Handlers; using TSLab.Script.Optimization; using TSLab.Script.Helpers;
namespace HourStrategy { public class TestScript : IExternalScript { #region IExternalScript Members
public void Execute(IContext ctx, ISecurity sec) { for (int i = 1; i < sec.Bars.Count; i++) { //цена предыдущего закрытия выше текущего if (sec.ClosePrices[i] < sec.ClosePrices[i - 1]) { //проверка , что открыта хотя бы одна позиция if (sec.Positions.LastPositionActive != null) //закрытие "по рынку-то есть по цене открытия i+1 бара" sec.Positions.LastPositionActive.CloseAtMarket(i + 1, "Close"); //Это стоп ордер-стоп цена-закрытие предыдущего бара sec.Positions.BuyIfGreater(i + 1, 1, sec.ClosePrices[i - 1], "Long"); } } }
#endregion } }
|
Наверх
|
|
|
|
#4728 - Wed Apr 21 2010 10:21 PM
Re: Выставление ордеров через API TSLab
[Re: anothar]
|
enthusiast
Registered: Thu Jan 21 2010
Записи: 319
|
Спасибо, на сколько понял в данном примере рассматривается ситуация закрытия по цене открытия (Market) и по цене закрытия бара, но важна возможность исполнения ордера внутри бара. Если есть возможность выставляния Лимит/Стоп ордеров на биржу при открытии бара с использованием API TSLab, можете показать такой пример, очень надо?
|
Наверх
|
|
|
|
#4729 - Wed Apr 21 2010 10:34 PM
Re: Выставление ордеров через API TSLab
[Re: Craft]
|
journeyman
Registered: Thu Jan 07 2010
Записи: 85
|
По поводу первой части: это стоп ордер-он может исполниться внутри бара))) Закрытие по цене рынка я сделал для простоты. А вот открытие то идет не по цене текущего закрытия, а по цене прошлого закрытия- и вполне вероятно произойдет внутри бара. По поводу второй части:Тут есть небольшая сложность: TSLAb по умолчанию выставляет ордер на закрытии бара. Если же вы все-таки хотите чтобы это происходило и при его открытии, то придется установить интервал пересчета в "Сделка" или "Пок/прод", но тогда Ващ код будет выполняться очень много раз и это необходимо учесть в коде.
|
Наверх
|
|
|
|
#4731 - Wed Apr 21 2010 11:02 PM
Re: Выставление ордеров через API TSLab
[Re: anothar]
|
enthusiast
Registered: Thu Jan 21 2010
Записи: 319
|
Спасибо за информацию, будем думать дальше.
|
Наверх
|
|
|
|
#4732 - Wed Apr 21 2010 11:09 PM
Re: Выставление ордеров через API TSLab
[Re: Craft]
|
journeyman
Registered: Thu Jan 07 2010
Записи: 85
|
|
Наверх
|
|
|
|
#4738 - Thu Apr 22 2010 10:21 AM
Re: Выставление ордеров через API TSLab
[Re: anothar]
|
addict
Registered: Tue Mar 23 2010
Записи: 415
|
Так в том и сложность, что в вашем примере закрытие произойдет по рынку. Что в некоторых стратегиях в корне неправильно. Логика TSLab такова, что при выставлении TakeProfit - если на следующем баре он не сработает (не дойдет цена или не хватит ликвидности), то на послеследующем баре позиция закроется ПО РЫНКУ. С помощью NewOrder мы и пытались обойти эту проблему. Но с NewOrder нет позиций, поэтому там все сложнее. Можете привести пример, когда и открытие и закрытие будут именно по лимитной заявке?
|
Наверх
|
|
|
|
|
|