Получение портфеля ФОРТС [3.0.6]
Atom Ответить
24.02.2011


vvt

Фотография
[3.0.6]
В Quik есть счет для работы на ФОРТС
Цитата:
SPBFUT00835



Пытаюсь его получить:
Код
using System;
using System.Linq;
using System.Threading;
using Ecng.Trading.BusinessEntities;
using Ecng.Trading.Quik;

namespace SampleConsolePortfolio
{
    internal class Program
    {
        private static QuikTrader _trader;
        private static Portfolio _portfolio;

        private static void Main()
        {
            try
            {
                const string account = "SPBFUT00835";

                using (var waitHandle = new AutoResetEvent(false))
                {
                    // создаем шлюз к Quik-у
                    using (_trader = new QuikTrader(@"C:\FinamJunior\info.exe"))
                    {
                        // подписываемся на событие успешного подключения
                        // все действия необходимо производить только после подключения
                        _trader.Connected += () =>
                             {
                                 Console.WriteLine("Подключение было произведено успешно.");

                                 // извещаем об успешном соединени
                                 waitHandle.Set();
                             };

                        Console.WriteLine("Производим подключение...");

                        _trader.Connect();

                        // дожидаемся события об успешном соединении
                        waitHandle.WaitOne();
                        
                        _trader.ProcessDataError += error => Console.WriteLine(error.ToString());

                        _trader.NewPortfolios += portfolios =>
                             {
                                 if (_portfolio == null)
                                 {
                                     // находим Счет и присваиваем ее переменной portfolio
                                     _portfolio = portfolios.FirstOrDefault(p => p.Name == account);

                                     if (_portfolio != null)
                                     {
                                         Console.WriteLine("Портфель {0} появился.", account);

                                         // извещаем о появившемся портфеле
                                         waitHandle.Set();
                                     }
                                 }
                             };


                        // запускаем экспорт по DDE
                        _trader.Terminal.StartDde(_trader.DerivativePortfoliosTable);

                        Console.WriteLine("Экспорт по DDE запущен");

                        // дожидаемся появления портфеля
                        waitHandle.WaitOne();

                        Console.WriteLine("Чтобы закончить, нажмите любую клавишу...");
                        Console.ReadKey();

                        // останавливаем экспорт по DDE
                        _trader.Terminal.StopDde(_trader.DerivativePortfoliosTable);
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
                Console.WriteLine("Чтобы закончить, нажмите любую кнопку...");
                Console.ReadKey();
            }
        }
    }
}


Получаю ошибку:
Цитата:
Производим подключение...
Подключение было произведено успешно.
System.ArgumentOutOfRangeException: Неправильное значение для типа лимита.
Имя параметра: func
Фактическое значение было Рубли.
в #=qyI3M$owxn1pf_MA7$nXA4HLDmVvBVKCzKYGiWJTw77fB5lc2OkqlKVaUgqpAZrBF.#=qDz1x
5a7MslOjcUWgai4vyQ==(Func`2 #=qT1vn0Gic3ovvXEeiRaZd_w==)
в Ecng.Trading.Quik.QuikTrader.#=qCyQKhW4O6l$WIkYewKOfoSpu63sMuKE4Kt23XzECYbY
=.#=qskTOA9gQ2f9kOgBLRrbMoA==(IList`1 #=q3CZwVggUAR39Xo3n6M8QTA==, Func`2 #=qJw7
16_99Xz$HMvsVRk7$xA==)
в #=qyI3M$owxn1pf_MA7$nXA4HLDmVvBVKCzKYGiWJTw77fB5lc2OkqlKVaUgqpAZrBF.#=qkBiD
hgR1oGhHKNQ6Ak7XFg==(DdeTable #=qTsRCfdy5r09524LbkshnTg==, IList`1 #=qtjxsniOpR7
IKH5XFwpNkpg==, Action`2 #=q7P4b_3tPtVkPzAmjFI798g==, Action`1 #=q2jZ4o65GGkKLYL
bKfjofYA==)
Экспорт по DDE запущен

Теги:


Спасибо:




7 Ответов
Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 24.02.2011
Ответить


интересная ситуация. у меня рубли называются ден. средства.
Спасибо:

vvt

Фотография
Дата: 24.02.2011
Ответить


Это так в Quik Junior от Финама, применяю его для тестирования.
В рабочем Quik от КИТ Финанс у меня тоже "Ден.средства" и приведенный код находит счет на ФОРТС.
Кроме "Рубли" вместо "Ден.средства" еще и "Залоговые рубли" вместо "Залоговые ден.средства". И, наверное, в отношении клиринговых средств будет тоже самое, посмотрю после клиринга.
Автор топика
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 24.02.2011
Ответить


vvt Перейти
Это так в Quik Junior от Финама, применяю его для тестирования.
В рабочем Quik от КИТ Финанс у меня тоже "Ден.средства" и приведенный код находит счет на ФОРТС.
Кроме "Рубли" вместо "Ден.средства" еще и "Залоговые рубли" вместо "Залоговые ден.средства". И, наверное, в отношении клиринговых средств будет тоже самое, посмотрю после клиринга.


Ок, посмотрите, пожалуйста, и я исправлю, чтобы и финамоские термины работали.
Спасибо:

vvt

Фотография
Дата: 24.02.2011
Ответить


Да, как и предполагал, добавились "Клиринговые рубли" и "Клиринговые залоговые рубли"

Автор топика
Спасибо:

Alexander

Фотография
Дата: 24.02.2011
Ответить


До версии квика 5.18 действительно использовалось "Рубли" вместо "Ден. средства".
С последней версии изменили, сам с этим сталкивался, т.к. раньше экспортировал данную таблицу руками.
Спасибо:

vvt

Фотография
Дата: 24.02.2011
Ответить


Да, Quik Junior версия 5.17
Автор топика
Спасибо:

vvt

Фотография
Дата: 25.02.2011
Ответить


Проверил на [3.0.8] - работает, спасибо за исправление.
Автор топика
Спасибо:


Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy