#25694 - Thu Apr 14 2011 04:02 AM
Re: Выставление ордеров через API TSLab
[Re: Denis]
|
newbie
Registered: Wed Apr 13 2011
Записи: 32
|
Вопрос: <i>Больно смотреть, как на 30 мин. таймфреме цена достигла заданного условия, а программа ожидает десятки минут до закрытия бара и после этого производится сделка вместо того чтобы при открытии бар разместить требуемый ордер на биржу для ожидания ценовых изменений. Задача эта не малая, но и решаемая в рамках одной динамической библиотека, рано или поздно эту задачу надо будет решать/учитывать и лучше сделать это раньше.</i>
Ответ: Я не хочу спорить о стратегиях, но что мешает использовать два таймфрейма в рамках одного скрипта? Причем если ваш базовый считает от минут или даже 30 минут, то стоп, трейл, да все что угодно, можно делать даже от 1 секунды.
Насколько я понимаю, если я торгую, допустим на часовом диапазоне, и цена дошла до условной заявки на покупку, допустим в 11:02, то реально выставится заявка только в 12:00 - после закрытия часовой свечи. Чтобы заявка прошла сразу - предлагается добавить второй диапазон (где свечи, допустим, по 10 секунд). При этом уровни для входа и выхода будут рассчитываться по часовым свечам, но вход будет осуществляться по закрытию 10-ти секундной свечи. Скажите, плз., кто-нибудь уже реализовал такую возможность? Можно где-нибудь посмотреть кусок кода, как это реализовано? (не хотелось бы использовать методы сжатия данных. Можно ли как-то это реализовать используя два диапазона?)
_________________________
Телеграм - канал для алготрейдеров: t-do.ru/TradingLaboratory
|
Наверх
|
|
|
|
#25789 - Thu Apr 14 2011 04:58 PM
Re: Выставление ордеров через API TSLab
[Re: Nektodron]
|
newbie
Registered: Wed Apr 13 2011
Записи: 32
|
Нет не так. Условная заявка обрабатывается сервером. И если цена дошла в 11:02. То в стакан заявка попадет именно в 11:02. А вот скрипт об исполнении этой заявки узнает в 12:00. Ясно. А в каком случае тогда будет полезно использовать два таймфрейма в рамках одного скрипта? ведь советовали так: "... если ваш базовый считает от минут или даже 30 минут, то стоп, трейл, да все что угодно, можно делать даже от 1 секунды".
_________________________
Телеграм - канал для алготрейдеров: t-do.ru/TradingLaboratory
|
Наверх
|
|
|
|
#25797 - Thu Apr 14 2011 05:41 PM
Re: Выставление ордеров через API TSLab
[Re: Nektodron]
|
newbie
Registered: Wed Apr 13 2011
Записи: 32
|
Ну скажем прошел вход, пока скрипт не пересчитается, он об этом не узнает, и стоп не будет выставлен. Для этого, используют второй таймфрейм, чтобы скрипт чаще пересчитывался. Скиньте, плз, ссылочку на код, где уже реализована работа с 2-мя таймфреймами одного инструмента в рамках одного скрипта... Или такого пока нет?
_________________________
Телеграм - канал для алготрейдеров: t-do.ru/TradingLaboratory
|
Наверх
|
|
|
|
#25808 - Thu Apr 14 2011 08:06 PM
Re: Выставление ордеров через API TSLab
[Re: ViL]
|
newbie
Registered: Wed Apr 13 2011
Записи: 32
|
О, спасибо. Классный метод - "забрать в папке temp..." буду пользоваться. Кстати, чтобы сильно процессор не загружать можно так поступить: Поставить обновление "по сделкам". В настройке провайдеров данных поставить обновление 30000 мс (т.е. каждые 30 секунд) или так часто, как нам нужно - хоть каждые 10 минут. Как результат - будет пересчитываться относительно нечасто.
_________________________
Телеграм - канал для алготрейдеров: t-do.ru/TradingLaboratory
|
Наверх
|
|
|
|
#27399 - Fri May 13 2011 08:46 PM
Re: Выставление ордеров через API TSLab
[Re: VDV]
|
stranger
Registered: Tue May 10 2011
Записи: 8
|
Выставляется лимитный ордер через BuyIfGreater. Очень хочется сразу после срабатывания ордера выставить стоп. Именно после срабатывания ордера, а не при следующем прогоне скрипта. Есть возможность так сделать? Как вариант вижу запустить отдельный скрипт, скажем каждые 10 секунд, где проверять выполнение этого ордера через GetLastActiveForSignal (он же возьмет в другом скрипте)? Но тут не вижу возможности для тестирования. Может кто-нибудь подсказать, что делать в этой ситуации?
|
Наверх
|
|
|
|
#27411 - Sat May 14 2011 11:50 AM
Re: Выставление ордеров через API TSLab
[Re: Nektodron]
|
stranger
Registered: Tue May 10 2011
Записи: 8
|
Включить пересчет скрипта, после каждой сделки. Да, я видел эту возможность, но, судя по описанию, под сделкой там понимается не твоя сделка, а любая сделка с данным инструментом на рынке. И в этом случае довольно сложный скрипт будет дергаться несколько раз в секунду, не успевая сам себя все время обсчитывать, не говорю уже о других скриптах. Или я ошибаюсь?
|
Наверх
|
|
|
|
#31859 - Wed Oct 05 2011 12:36 AM
Re: Выставление ордеров через API TSLab
[Re: ViL]
|
stranger
Registered: Sat Feb 13 2010
Записи: 2
|
Nektodron, подскажите, это нормально что заявка, выставленная через NewOrder снимается и заново выставляется при каждом пересчете скрипта? (пересчет стоит после каждой сделки купли/продажи)
|
Наверх
|
|
|
|
#31900 - Wed Oct 05 2011 05:00 PM
Re: Выставление ордеров через API TSLab
[Re: Nektodron]
|
stranger
Registered: Sat Feb 13 2010
Записи: 2
|
Все достаточно просто. Пытаюсь разобраться с ISecurityRT
public void Execute(IContext ctx, ISecurity source) {
ISecurityRt secRt = source as ISecurityRt;
if (!secRt.HasActiveOrders)
{ secRt.NewOrder(DataSource.OrderType.Fall, true, 110000, 0.01, 1, "LE");
}
} // public virtual void Execute
В результате при каждом выполнении скрипта заявка снимается и выставляется заново.
|
Наверх
|
|
|
|
#32968 - Sun Nov 06 2011 02:08 PM
Re: Выставление ордеров через API TSLab
[Re: FIL]
|
stranger
Registered: Mon Oct 31 2011
Записи: 3
|
Помогите разобраться.
Пишу в скрипте: ISecurityRt secRt = sec as ISecurityRt; secRt.
Но SharpDevelop не дает автозаполнения, не знает этого типа объекта.
в чем может быть дело?
Вот список используемых классов: using System.Collections.Generic; using System; using System.Linq; using System.Text; using TSLab.Script; using TSLab.Script.Handlers; using TSLab.Script.Optimization; using TSLab.Script.Helpers;
|
Наверх
|
|
|
|
#45608 - Wed Aug 15 2012 07:07 PM
Re: Выставление ордеров через API TSLab
[Re: FIL]
|
stranger
Registered: Thu Jun 14 2012
Записи: 20
|
public void Execute(IContext ctx, ISecurity source) { ISecurityRt secRt = source as ISecurityRt; if (!secRt.HasActiveOrders) { secRt.NewOrder(DataSource.OrderType.Fall, true, 110000, 0.01, 1, "LE"); } } // public virtual void Execute
Вопрос HasActiveOrders какие заявки она показывает активными Limit, Growth, Fall? Т.е. если у меня выставлена заявка типа Growth покажет ли HasActiveOrders что на этом инструменте есть активные заявки и уже используя IsActive определять что есть. И еще для if (order.OrderType == TSLab.DataSource.OrderType.Limit) какой тип использовать Growth или Limit, если перебор идет по Growth...
Отредактировано WinEasily (Wed Aug 15 2012 07:15 PM)
|
Наверх
|
|
|
|
|
|