событие NewPortfolios

событие NewPortfolios
Atom
9/21/2010
Алексей


Добрый день.
Почему-то в примере SimpleConsole не срабатывает событие
NewPortfolios. Программа так и остается в ожидании сигнала из другого
потока.

WindowsXP SP3, Quik 5.17.0.165, S# 2.2
запускаю на вечерней сессии, virifier проверил (пришлось удалить одну
колонку из окна 'инструменты', в прилагающейся к примерам конфигурации
квика)
соединение с квиком проходит, затем появляются securities, и на этом
все заканчивается.

Tags:


Thanks:


< 1 2 3  >
Alexander

Avatar
Date: 2/16/2012
Reply


curious
Alexander Mukhanchikov
Экспорт идёт по таблице с портфелями?

Портфель для ммвб - это то что с бумагами, на фортсе - с деривативами.
В Trader.Portfolios будет и тот и тот.

Посмотрите SampleQuik, Портфели.


Идёт экспорт по таблице "инструменты", по таблице "портфель по бумагам", но не по таблице "портфель по деривативам".
Запускаю пример SampleConsole для QUIK.


А в портфеле по бумагам у вас какие есть портфели?
Для SampleQuik какие портфели отображаются?
Thanks:

curious

Avatar
Date: 2/16/2012
Reply


Alexander Mukhanchikov

А в портфеле по бумагам у вас какие есть портфели?
Для SampleQuik какие портфели отображаются?


Александр, в портфеле по бумагам у меня пусто. Есть только FORTS'овский счет в портфеле по деривативам.

Что значит SampleQuik? Есть пример Sample, есть SampleConsole.
С первым примером в портфелях отображается FORTS'овский счёт, а вот со вторым проблема: событие появления нового портфеля не происходит.
Thanks:

Alexander

Avatar
Date: 2/16/2012
Reply


Вы ждёте портфеля по ММВБ, которого у вас нет.
Раз нет портфеля - можно не ждать, он не придёт. :)
Thanks:

Moadip

Avatar
Date: 2/16/2012
Reply


curious

С первым примером в портфелях отображается FORTS'овский счёт, а вот со вторым проблема: событие появления нового портфеля не происходит.


Думаю в этом посте найдете ответ на свой вопрос.
Thanks: curious

curious

Avatar
Date: 2/17/2012
Reply


Alexander Mukhanchikov
Вы ждёте портфеля по ММВБ, которого у вас нет.
Раз нет портфеля - можно не ждать, он не придёт. :)


Alexander Mukhanchikov

Портфель для ммвб - это то что с бумагами, на фортсе - с деривативами.
В Trader.Portfolios будет и тот и тот.


Александр,
всё-таки, событие NewPortfolios обрабатывает только ММВБ'шные портфели или FORTS'овские тоже?!
Thanks:

Alexander

Avatar
Date: 2/17/2012
Reply


Для всех существующих портфелей.
Thanks:

curious

Avatar
Date: 2/17/2012
Reply


Alexander Mukhanchikov
Для всех существующих портфелей.


Александр,
тогда повторю свой вопрос: почему при отсутствии ММВБ'шного портфеля и наличии FORTS'овского событие NewPortfolios может не происходить в примере SampleConsole?
Thanks:

Alexander

Avatar
Date: 2/17/2012
Reply


curious
Alexander Mukhanchikov
Для всех существующих портфелей.


Александр,
тогда повторю свой вопрос: почему при отсутствии ММВБ'шного портфеля и наличии FORTS'овского событие NewPortfolios может не происходить в примере SampleConsole?


Потому что не запущен экспорт по нужной таблице.
Смотрите как идёт работа с экспортом в SampleQuik.
Thanks:

curious

Avatar
Date: 2/17/2012
Reply


Moadip
curious

С первым примером в портфелях отображается FORTS'овский счёт, а вот со вторым проблема: событие появления нового портфеля не происходит.


Думаю в этом посте найдете ответ на свой вопрос.


Пропустил ваш ответ.
Действительно, следующая замена решает проблему:
Code

trader.StartExport(trader.SecuritiesTable, trader.MyTradesTable, trader.EquityPositionsTable,
          trader.EquityPortfoliosTable, trader.OrdersTable, trader.DerivativePositionsTable, trader.DerivativePortfoliosTable);
 
...
 
trader.StopExport(trader.SecuritiesTable, trader.MyTradesTable, trader.EquityPositionsTable,
          trader.EquityPortfoliosTable, trader.OrdersTable, trader.DerivativePositionsTable, trader.DerivativePortfoliosTable);



Alexander Mukhanchikov

Потому что не запущен экспорт по нужной таблице.
Смотрите как идёт работа с экспортом в SampleQuik.


Вопрос снят.
Thanks:

Algonavt

Avatar
Date: 5/12/2012
Reply


У меня обратная проблема - NewPortfolios отлично срабатывает на появление портфеля по деривативам, но появление таблиц "Портфель по бумагам" и "Позиции по бумагам" не порождают это событие. В чем я ошибаюсь?

Code
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading;

using Ecng.Common;

using StockSharp.BusinessEntities;
using StockSharp.Quik;
using StockSharp.Algo;

class Program
{
	
	static void Main()
	{
		try
		{
			var quikDefaultPath = @"C:\Documents and Settings\User\Рабочий стол\Quik (StockSharp tests)\info.exe";
			
			var quikPath = QuikTerminal.GetDefaultPath();
			var quikLogin = "***";
			var quikPassword = "***";

			if (quikPath.IsEmpty())
			{
				Console.WriteLine("Не найден ни один запущенный Quik, пробуем запустить Quik из " + quikDefaultPath);
				quikPath = quikDefaultPath;
			}
			else
				Console.WriteLine("Запущенный Quik найден по пути " + quikPath);

			using (var waitHandle = new AutoResetEvent(false))
			{
				// создаем шлюз к Quik-у
				using (var trader = new QuikTrader(quikPath))
				{
					// необходимо раскомментировать, если идет работа с РТС Стандарт
					//trader.FormatTransaction += builder => builder.RemoveInstruction(TransactionBuilder.ExecutionCondition);

					// подписываемся на событие успешного подключения
					// все действия необходимо производить только после подключения
					trader.Connected += () =>
					{
						Console.WriteLine("Подключение было произведено успешно.");

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

					// подписываемся на событие обновления портфеля
					trader.NewPortfolios += portfolios =>
					{
						foreach (var p in portfolios)
							Console.WriteLine("Найден портфель: {0}" +
							                  "\nExchange: {1}", p.Name, p.Exchange);
						waitHandle.Set();
					};
					
					Console.WriteLine("Производим подключение...");

					if (!trader.Terminal.IsLaunched)
					{
						trader.Terminal.Launch();
						trader.Terminal.Login(quikLogin, quikPassword);
					}
					trader.Connect();

					// дожидаемся события об успешном соединении
					waitHandle.WaitOne();

					Console.WriteLine("Запускаем экспорт таблиц по DDE");
					
					// запускаем экспорт по DDE портфеля по деривативам
					Console.WriteLine("Портфель по деривативам...");
					trader.StartExport(new[] {trader.DerivativePortfoliosTable});
					waitHandle.WaitOne();
					Console.WriteLine("Готово!");
					
					// запускаем экспорт по DDE таблицы позиций по бумагам
					Console.WriteLine("Позиции по бумагам...");
					trader.StartExport(new[] {trader.EquityPositionsTable});
					waitHandle.WaitOne();
					Console.WriteLine("Готово!");
					
					// запускаем экспорт по DDE портфеля по бумагам
					Console.WriteLine("Портфель по бумагам...");
					trader.StartExport(new[] {trader.EquityPortfoliosTable});
					
					waitHandle.WaitOne();
					Console.WriteLine("Готово!");

					Console.WriteLine("Нажмите Enter для выхода");
					Console.ReadLine();
					
					trader.StopExport();
				}
			}
		}
		catch (Exception ex)
		{
			Console.WriteLine(ex);
			Console.ReadLine();
		}
	}
}
Thanks:
< 1 2 3  >

Attach files by dragging & dropping, , or pasting from the clipboard.

loading
clippy