У вас не стоит Flash Player
Настройки
#54009 - Mon Apr 08 2013 10:39 AM IportfolioSource
UraTradeUra Offline
newbie

Registered: Fri Jul 20 2012
Записи: 38
Я так понимаю...данный интерфейс работает только в режиме агента и при наличие реального счета а не виртуального(тестового)?или все же на тестовом финамовском счете его можно испытать?если это возможно, хотелось бы получить пример, где можно вытащить текущий баланс портфеля, учитывая переоценку по открытым позициям...

Наверх
#54011 - Mon Apr 08 2013 10:51 AM Re: IportfolioSource [Re: UraTradeUra]
Nektodron Offline

Carpal Tunnel

Registered: Thu Oct 23 2008
Записи: 5492
этот интерфейс предназначен для внутренних нужд, для создания поставщиков данных

Наверх
#54013 - Mon Apr 08 2013 11:16 AM Re: IportfolioSource [Re: Nektodron]
UraTradeUra Offline
newbie

Registered: Fri Jul 20 2012
Записи: 38
Понятно...не туда залез получается...подскажите пожалуйста тогда, как мне вытащить текущую стоимость моего портфеля через скрипт...если не сложно можно примерчик...:)

Наверх
#54020 - Mon Apr 08 2013 04:31 PM Re: IportfolioSource [Re: UraTradeUra]
ra81 Offline
Carpal Tunnel

Registered: Thu Sep 27 2012
Записи: 2860
Code:
    // Скрипт демонстрирует использования интерфейса ISecurityRt для получения текущей биржевой информации
    public class SampleRtScript : IExternalScript
    {
        public void Execute(IContext ctx, ISecurity sec)
        {
            var rtSec = sec as ISecurityRt;
            if (rtSec == null)
            {
                ctx.Log("Мы в режиме лаборатории!!!", new Color());
                return;
            }

            // FinInfo это то что можно извлечь из окна Котировки!
            // Ниже примеры данных которые можно извлечь из данного объекта
            var bid = rtSec.FinInfo.Bid; // Бид и аск.
            var ask = rtSec.FinInfo.Ask;

            // Текущее ГО по инструменту. Если это не фьючерс то будет null
            var sellDepo = rtSec.FinInfo.SellDeposit;
            var buyDepo = rtSec.FinInfo.BuyDeposit;

            // Цена закрытия предыдущего дня.
            var prevSession = rtSec.FinInfo.ClosePrice;

            // Время последнего обновления котировок.
            var lastUpdate = rtSec.FinInfo.LastUpdate;


            // Информация по позиции и по балансу портфеля так же доступна для использования.
            var cb = rtSec.CurrencyBalance; // Размер свободных денег (Колонка текущая стоимость)
            var bq = rtSec.BalanceQuantity; // Сколько взято лотов всего по портфелю для бумаги
            var eb = rtSec.EstimatedBalance; // Чистый баланс. Все обязательства учтены. (Колонка чистая стоимость)
            var pn = rtSec.PortfolioName; // Имя потфеля.
        }
    }

_________________________
__


Наверх
#54036 - Tue Apr 09 2013 09:35 AM Re: IportfolioSource [Re: ra81]
UraTradeUra Offline
newbie

Registered: Fri Jul 20 2012
Записи: 38
Спасибо большое:)

Наверх
#74744 - Mon Nov 16 2015 03:57 PM Re: IportfolioSource [Re: UraTradeUra]
Artem Nau Offline
stranger

Registered: Sun Nov 09 2014
Записи: 2
Понимаю что поднимаю старую и изжеванную тему, но можно ли ISecurityRt использовать в кубиках, а не в скриптах

public class Portfel : IOneSourceHandler, ISecurityInput0, IDoubleReturns, IStreamHandler, IContextUses

{

public IContext Context { set; get; }
public double Execute(ISecurity sec)
{
var rtSec = sec as ISecurityRt;
if (rtSec == null)
{
//Context.Log("Мы в режиме лаборатории!!!", new Color());
return 0;
}

// var bid = rtSec.FinInfo.Bid ?? 0; // Бид и аск.
// var ask = rtSec.FinInfo.Ask ?? 0;
// Context.Log("BID" + bid.ToString(CultureInfo.InvariantCulture) + " ASK" + ask.ToString(CultureInfo.InvariantCulture), new Color());

var cb = rtSec.CurrencyBalance; // Размер свободных денег (Колонка текущая стоимость)
var bq = rtSec.BalanceQuantity; // Сколько взято лотов всего по портфелю для бумаги
var eb = rtSec.EstimatedBalance; // Чистый баланс. Все обязательства учтены. (Колонка чистая стоимость)
var pn = rtSec.PortfolioName; // Имя потфеля.
// Context.Log("svobodnie: " + cb.ToString(CultureInfo.InvariantCulture) + " balance: " + eb.ToString(CultureInfo.InvariantCulture), new Color());


return 0;
}


}

TsLab ругается
16:10:59.33 128 Скрипт 'testPortfel': c:\Users\INVEST\AppData\Local\TSLab\TSLab12\temp\code5.cs(30,24) : error CS0029: Неявное преобразование типа "double" в "System.Collections.Generic.IList<double>" невозможно
16:10:59.33 128 Скрипт 'testPortfel': c:\Users\INVEST\AppData\Local\TSLab\TSLab12\temp\code5.cs(30,17) : error CS1662: Не удается преобразовать "анонимный метод" в тип делегата "TSLab.DataSource.CacheObjectMaker<System.Collections.Generic.IList<double>>", так как некоторые типы возвращаемого значения в блоке не являются неявно преобразуемыми в тип возвращаемого значения делегата

Наверх
#74748 - Mon Nov 16 2015 05:30 PM Re: IportfolioSource [Re: Artem Nau]
ra81 Offline
Carpal Tunnel

Registered: Thu Sep 27 2012
Записи: 2860
IStreamHandler прописали а выход с кубика даете как public double Execute. Вам банально нужно разобраться с тем как собираются кубики что значат интерфейсы.
_________________________
__


Наверх
#74768 - Tue Nov 17 2015 11:14 AM Re: IportfolioSource [Re: ra81]
Artem Nau Offline
stranger

Registered: Sun Nov 09 2014
Записи: 2
Спасибо , ответ был перед носом, но только после вашего сообщения дошло )

Наверх


Moderator:  ViL, sar