[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==(IList1 #=q3CZwVggUAR39Xo3n6M8QTA==, Func2 #=qJw7 16_99Xz$HMvsVRk7$xA==) в #=qyI3M$owxn1pf_MA7$nXA4HLDmVvBVKCzKYGiWJTw77fB5lc2OkqlKVaUgqpAZrBF.#=qkBiD hgR1oGhHKNQ6Ak7XFg==(DdeTable #=qTsRCfdy5r09524LbkshnTg==, IList1 #=qtjxsniOpR7 IKH5XFwpNkpg==, Action2 #=q7P4b_3tPtVkPzAmjFI798g==, Action1 #=q2jZ4o65GGkKLYL bKfjofYA==) Экспорт по DDE запущен
Комментарии (7)
Вход или Создать аккаунт, Войдите или зарегистрируйтесь, чтобы оставить комментарий
интересная ситуация. у меня рубли называются ден. средства.
Это так в Quik Junior от Финама, применяю его для тестирования. В рабочем Quik от КИТ Финанс у меня тоже "Ден.средства" и приведенный код находит счет на ФОРТС. Кроме "Рубли" вместо "Ден.средства" еще и "Залоговые рубли" вместо "Залоговые ден.средства". И, наверное, в отношении клиринговых средств будет тоже самое, посмотрю после клиринга.
Ок, посмотрите, пожалуйста, и я исправлю, чтобы и финамоские термины работали.
Да, как и предполагал, добавились "Клиринговые рубли" и "Клиринговые залоговые рубли"
До версии квика 5.18 действительно использовалось "Рубли" вместо "Ден. средства". С последней версии изменили, сам с этим сталкивался, т.к. раньше экспортировал данную таблицу руками.
Да, Quik Junior версия 5.17
Проверил на [3.0.8] - работает, спасибо за исправление.