Получение портфеля ФОРТС [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==(Func2 #=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 запущен


Теги:


Спасибо:


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