У вас не стоит Flash Player
Page 1 of 2 1 2 >
Настройки
#34332 - Wed Dec 07 2011 03:34 PM Как получить объем заявок на покупку и на продажу
_ID_ Offline
journeyman

Registered: Wed Feb 16 2011
Записи: 65
Помогите пожалуйста правильно запрограммировать получение данных Сумспрос и сумпредл. А еще лучше сделайте их стандартными и/или может код для открытого интереса покажите правильный (на основе его можно будет разобраться)
Я подключен к айтиинвест и к демо счету алор. У обоих брокеров трансляция этих данных в tslab идет, что видно в окне котировок. А вот доступ к ним получить не получается. Стандартных блоков нет, существующие ссылки на способ реализации некорректен:
http://www.tslab.ru/ubb/ubbthreads.php?ubb=showflat&Number=2422#Post2422
Click to reveal..
Code:
using System;
using System.Collections.Generic;
using TSLab.Script;
using TSLab.Script.Handlers;
using TSLab.Script.Realtime;

namespace SomeIndicators
{

    public class CurrentBid : IBar2DoubleHandler
    {
        public IList<double> Execute(ISecurity source)
        {
            var rt = source as ISecurityRt;
            var v = rt == null ? 0.0 : rt.FinInfo.Bid.HasValue ? rt.FinInfo.Bid.Value : 0.0;
            var res = new double[source.Bars.Count];
            for(int i = 0; i < res.Length;i++)
            {
                res[i] = v;
            }
            return res;
        }
    }

    public class CurrentAsk : IBar2DoubleHandler
    {
        public IList<double> Execute(ISecurity source)
        {
            var rt = source as ISecurityRt;
            var v = rt == null ? 0.0 : rt.FinInfo.Ask.HasValue ? rt.FinInfo.Ask.Value : 0.0;
            var res = new double[source.Bars.Count];
            for (int i = 0; i < res.Length; i++)
            {
                res[i] = v;
            }
            return res;
        }
    }

    public class CurrentBuyCount : IBar2DoubleHandler
    {
        public IList<double> Execute(ISecurity source)
        {
            var rt = source as ISecurityRt;
            var v = rt == null ? 0.0 : rt.FinInfo.BuyCount.HasValue ? rt.FinInfo.BuyCount.Value : 0.0;
            var res = new double[source.Bars.Count];
            for (int i = 0; i < res.Length; i++)
            {
                res[i] = v;
            }
            return res;
        }
    }

    public class CurrentSellCount : IBar2DoubleHandler
    {
        public IList<double> Execute(ISecurity source)
        {
            var rt = source as ISecurityRt;
            var v = rt == null ? 0.0 : rt.FinInfo.SellCount.HasValue ? rt.FinInfo.SellCount.Value : 0.0;
            var res = new double[source.Bars.Count];
            for (int i = 0; i < res.Length; i++)
            {
                res[i] = v;
            }
            return res;
        }
    }
}

Не отображается ни бид ни аск. Количество заявок переделал в объем заявок, но все равно не помогло:
    public class CurrentBuyVolume : IBar2DoubleHandler
    {
        public IList<double> Execute(ISecurity source)
        {
            var rt = source as ISecurityRt;
            var v = rt == null ? 0.0 : rt.FinInfo. BuySqty.HasValue ? rt.FinInfo. BuySqty.Value : 0.0;
            var res = new double[source.Bars.Count];
            for (int i = 0; i < res.Length; i++)
            {
                res[i] = v;
            }
            return res;
        }
    }

    public class CurrentSellVolume : IBar2DoubleHandler
    {
        public IList<double> Execute(ISecurity source)
        {
            var rt = source as ISecurityRt;
            var v = rt == null ? 0.0 : rt.FinInfo. SellSqty.HasValue ? rt.FinInfo. SellSqty.Value : 0.0;
            var res = new double[source.Bars.Count];
            for (int i = 0; i < res.Length; i++)
            {
                res[i] = v;
            }
            return res;
        }
    }



Отредактировано ViL (Wed Dec 07 2011 03:54 PM)

Наверх
#34337 - Wed Dec 07 2011 03:56 PM Re: Как получить объем заявок на покупку и на продажу [Re: _ID_]
ViL Offline
TSLab
Carpal Tunnel

Registered: Sun Oct 17 2010
Записи: 8143
Пример на волатильность.

Click to reveal..
[/code]public class Volatility : IBar2DoubleHandler
{
public IList<double> Execute(ISecurity source)
{
var secrt = source as ISecurityRt
var res = new double[source.Bars.Count];
if(secrt != null)
{
var v = secrt.FinInfo.Volatility ?? 0;
for(int i=0; i < res.Length; i++)
{
res[i] = v;
}
}
return res;
}
}[code]


/// Количество заявок на покупку в очереди торговой системы
public double? BuyCount { get; set; }

/// Количество заявок на продажу в очереди торговой системы
public double? SellCount { get; set; }

Объем вместо Count - Sqty


Отредактировано ViL (Wed Dec 07 2011 04:00 PM)

Наверх
#34350 - Wed Dec 07 2011 08:56 PM Re: Как получить объем заявок на покупку и на продажу [Re: ViL]
_ID_ Offline
journeyman

Registered: Wed Feb 16 2011
Записи: 65
Получилось вот так, но все равно нули

public class CurrentBuyVolume : IBar2DoubleHandler
{

public IList<double> Execute(ISecurity source)
{
return Calc(source);
}

public static IList<double> Calc(ISecurity source)
{
var secrt = source as ISecurityRt;
var res = new double[source.Bars.Count];
if(secrt != null)
{
var v = secrt.FinInfo.BuySqty ?? 0;

for(int i=0; i < res.Length; i++)
{
res[i] = v;
}
}
return res;
}

}

public class CurrentSellVolume : IBar2DoubleHandler
{

public IList<double> Execute(ISecurity source)
{
return Calc(source);
}

public static IList<double> Calc(ISecurity source)
{
var secrt = source as ISecurityRt;
var res = new double[source.Bars.Count];
if(secrt != null)
{
var v = secrt.FinInfo.SellSqty ?? 0;

for(int i=0; i < res.Length; i++)
{
res[i] = v;
}
}
return res;
}

}

Наверх
#34351 - Wed Dec 07 2011 08:59 PM Re: Как получить объем заявок на покупку и на продажу [Re: _ID_]
_ID_ Offline
journeyman

Registered: Wed Feb 16 2011
Записи: 65
не могу понять, что упустил, помогите пож-та
{ get; set; } - для чего это нужно? в получившимся коде этого нет


Отредактировано _ID_ (Wed Dec 07 2011 09:00 PM)

Наверх
#34352 - Wed Dec 07 2011 09:11 PM Re: Как получить объем заявок на покупку и на продажу [Re: _ID_]
ViL Offline
TSLab
Carpal Tunnel

Registered: Sun Oct 17 2010
Записи: 8143
Эти данные работают только в режиме реал-тайм. Т.е. в запущенном на реал скрипте.

Наверх
#34361 - Thu Dec 08 2011 07:03 AM Re: Как получить объем заявок на покупку и на продажу [Re: ViL]
_ID_ Offline
journeyman

Registered: Wed Feb 16 2011
Записи: 65
я это понимаю.
подключаюсь к алор и айтиинвест.
и в режиме реального времени в графиках блок открытый интерес дает значения отличные от нуля, а данные два блока (объем заявок покупателей и продавцов) все равно нули.
не могу разобраться почему. может ли быть такое что данные в tslab транслируются а в доступ через апи не попадают
У вас нет кодов для открытого интереса?

Наверх
#34366 - Thu Dec 08 2011 11:01 AM Re: Как получить объем заявок на покупку и на продажу [Re: _ID_]
ViL Offline
TSLab
Carpal Tunnel

Registered: Sun Oct 17 2010
Записи: 8143
Откройте таблицу котировок и выведите туда эти бумаги, в котировках эти значения отличны от 0?

Наверх
#34367 - Thu Dec 08 2011 11:47 AM Re: Как получить объем заявок на покупку и на продажу [Re: ViL]
_ID_ Offline
journeyman

Registered: Wed Feb 16 2011
Записи: 65
Да конечно. В файле скрин.
Конечно есть еще второй вопрос почему у разных брокеров данные разные. Пока думаю что это связанно с тем что в демо от Алор данные идут некорректные.


Attachments
СумСпрос_сумПредл.png (526 downloads)


Наверх
#34396 - Thu Dec 08 2011 08:31 PM Re: Как получить объем заявок на покупку и на продажу [Re: _ID_]
Nektodron Offline

Carpal Tunnel

Registered: Thu Oct 23 2008
Записи: 5492
АйтиИнвест эту информацию не предоставляет.

Наверх
#34397 - Thu Dec 08 2011 08:35 PM Re: Как получить объем заявок на покупку и на продажу [Re: Nektodron]
ZSE Offline
TSLab
veteran

Registered: Mon Feb 16 2009
Записи: 1375
В режиме Демо обычно данные идут с демо-Фортс - а это совсем другая картинка. имеющая отдаленное отношение к реальной жизни

Наверх
#34403 - Thu Dec 08 2011 10:49 PM Re: Как получить объем заявок на покупку и на продажу [Re: ZSE]
_ID_ Offline
journeyman

Registered: Wed Feb 16 2011
Записи: 65
Как не предоставляет. Картинку во вложении посмотрите. СумСпрос и Сумпред в окне котировок присутствуют от айти. Я специально еще сравнил с данными из БКС (они транслируют в Quik объем заявок и кол-во покупателей и продавцов) все совпадает.
Айти транслирует объем заявок но не транслирует кол-во покупателей и продавцов.
Я же не выдумываю настройте и посмотрите окно котировок.
я хочу получить доступ через API к данным по объему заявок покупателей и продавцов.

Наверх
#34405 - Thu Dec 08 2011 11:22 PM Re: Как получить объем заявок на покупку и на продажу [Re: _ID_]
_ID_ Offline
journeyman

Registered: Wed Feb 16 2011
Записи: 65
Алор также в окне котировок выдает объем заявок покупателей и продавцов. Но через Api тоже не могу эти данные вытащить.

Наверх
#34788 - Mon Dec 19 2011 02:19 PM Re: Как получить объем заявок на покупку и на продажу [Re: ZSE]
_ID_ Offline
journeyman

Registered: Wed Feb 16 2011
Записи: 65
Да действительно на реальном сервере данные Алор и АйтиИнвест совпадают (см. вложение).

Не пойму почему никто так и не отвечает почему невозможно получить доступ к данным СумПредл и СумСпрос через API.
За Tslab плачу через двух брокеров, как нибудь уже среагируйте. Прошла неделя после вопроса.


Attachments
СумСпрос_сумПредл2.png (458 downloads)


Наверх
#35368 - Wed Jan 04 2012 01:39 PM Re: Как получить объем заявок на покупку и на продажу [Re: _ID_]
_ID_ Offline
journeyman

Registered: Wed Feb 16 2011
Записи: 65
Уважаемые разработчики распишу по пунктам, в чем удалось разобраться по данной проблеме. В API данные транслируются, но есть один момент, в котором я не могу сам разобраться и одна ошибка трансляции данных в TsLab:

1. Через FinInfo так и не удалось получить доступ к СумСпрос и СумПредл, в коде

public static IList<double> Calc(ISecurity source)
{
var secrt = source as ISecurityRt;
...

secrt почему то всегда null в режиме реального времени. Подскажите с чем это может быть связано.

2. Через BidQty и AskQty возможно получить доступ к данным. Но оказалось, что BidQty транслирует СумПредл, а AskQty - ЗаявПок.
Необходимо исправить ошибку и сделать трансляцию СумСпрос через AskQty.

И как предложение добавить два свойства в класс BidAskBar
для трансляции ЗаявПок и ЗаявПред.

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


Отредактировано _ID_ (Wed Jan 04 2012 01:43 PM)

Наверх
#35374 - Wed Jan 04 2012 03:37 PM Re: Как получить объем заявок на покупку и на продажу [Re: _ID_]
Ti_ru Offline
writer

Registered: Sun Oct 17 2010
Записи: 479
Вот рабочий код с трансляцией суммарного спроса и предложения в реалтайме.


Attachments
FinInfo_RT.cs (381 downloads)


Наверх
#35381 - Wed Jan 04 2012 05:30 PM Re: Как получить объем заявок на покупку и на продажу [Re: Ti_ru]
_ID_ Offline
journeyman

Registered: Wed Feb 16 2011
Записи: 65
Спасибо, самый первый пост данной ветки начинается ровно с этого кода и он у меня не срабатывает так как в реал тайме у меня rt равен null
public IList<double> Execute(ISecurity source)
{
var rt = source as ISecurityRt;
...
не могу понять почему.

Наверх
#35383 - Wed Jan 04 2012 06:08 PM Re: Как получить объем заявок на покупку и на продажу [Re: _ID_]
Ti_ru Offline
writer

Registered: Sun Oct 17 2010
Записи: 479
вы точно смотрите на трансляцию на реальном скрипте, а не в лаборатории?

Наверх
#35389 - Wed Jan 04 2012 07:35 PM Re: Как получить объем заявок на покупку и на продажу [Re: Ti_ru]
_ID_ Offline
journeyman

Registered: Wed Feb 16 2011
Записи: 65
Я подключаюсь к брокеру и в графиках выставляю кубики и рассматриваю как работают скомпилированные функции. Специально жду на всякий случай пока сформируется пара свечей. Таим фрейм одна минутный. То есть это даже не скрипт.

Наверх
#35390 - Wed Jan 04 2012 07:46 PM Re: Как получить объем заявок на покупку и на продажу [Re: _ID_]
Ti_ru Offline
writer

Registered: Sun Oct 17 2010
Записи: 479
Originally Posted By: _ID_
Я подключаюсь к брокеру и в графиках выставляю кубики и рассматриваю как работают скомпилированные функции. Специально жду на всякий случай пока сформируется пара свечей. Таим фрейм одна минутный. То есть это даже не скрипт.

дак вам же уже сказали, что данные будут отображаться только на реальном скрипте, то есть скрипте, подключенному к портфелю и запущенного в торговлю
тыц

Наверх
#35393 - Wed Jan 04 2012 08:13 PM Re: Как получить объем заявок на покупку и на продажу [Re: Ti_ru]
_ID_ Offline
journeyman

Registered: Wed Feb 16 2011
Записи: 65
Вы оказались правы. Не знал, что есть разница между графиком и скриптом в реале.
Спасибо большое, все заработало.
Вопрос про доступ через FinInfo снимается.
Остался только один вопрос к разработчикам:

BidQty транслирует СумПредл, а AskQty - ЗаявПок.
Необходимо исправить ошибку и сделать трансляцию СумСпрос через AskQty. И как предложение добавить два свойства в класс BidAskBar
для трансляции ЗаявПок и ЗаявПред.

Наверх
Page 1 of 2 1 2 >


Moderator:  ViL, sar