Помогите пожалуйста правильно запрограммировать получение данных Сумспрос и сумпредл. А еще лучше сделайте их стандартными и/или может код для открытого интереса покажите правильный (на основе его можно будет разобраться)
Я подключен к айтиинвест и к демо счету алор. У обоих брокеров трансляция этих данных в tslab идет, что видно в окне котировок. А вот доступ к ним получить не получается. Стандартных блоков нет, существующие ссылки на способ реализации некорректен:
http://www.tslab.ru/ubb/ubbthreads.php?ubb=showflat&Number=2422#Post2422 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;
}
}