Фичи/Баги/Пожелания для AlfaConnector

Фичи/Баги/Пожелания для AlfaConnector
Atom
04.05.2011
Sergey Masyura


Основная функциональность в альфа-коннекторе завершена.

Код свободно доступен на http://stocksharpconnect...Control/list/changesets

Из основных явных недоделок можно выделить:
- отсутствие поддержки опционов
- отсутствие поддержки стоп-ордеров.

В связи с этим, если есть активные пользователи данного коннектора, буду рад услышать замечаниях о багах, фичах и пожеланиях.

Теги:


Спасибо:


<< < 7 8 9 10 11  > >>
OvcharenkoVI

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


кстати на примерах вылетает то же самое
Спасибо:

Sergey Masyura

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


OvcharenkoVI
Возникла такая трабла - утром все нормально работало, спустя пару часов запустил заново робота и начал выскакивать эксэпшн stcClientError. Просто при попытке создания шлюза к серверу. Пробовал на всех своих заготовках, там везде разные сборки StockSharp.AlfaDirect.dll

Никто не знает, может у альфы какие то проблемы там?((

Вот так вот


Распечатайте текст ошибки сообщения message и код ошибки. Все станет понятно. А так, для информации, иногда надо терминал перезапускать.
Спасибо:

OvcharenkoVI

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


Кстати, было бы хорошо добавить еще Security.ClosePrice. Добавил бы сам, но еще не регистрировался на codeplex
Спасибо:

Alexander

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


OvcharenkoVI
Добавил бы сам, но еще не регистрировался на codeplex


Кто мешает? Регистрация занимает 1 минуту :)
Спасибо:

Sergey Masyura

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


OvcharenkoVI
Кстати, было бы хорошо добавить еще Security.ClosePrice. Добавил бы сам, но еще не регистрировался на codeplex


На будущее стоит заводить баг через Issue Tracker на код плекс.

http://stocksharp.codepl.../workitem/list/advanced


ClosePrice - это цена закрытия сессии или последняя цена? Зачем она нужна в нерабочее время? Если после вечернего клиринга, то OpenPrice как раз содержит цену открытия вечерней сессии. Какой use-case для цены открытия и что под этим имеету в виду?
Спасибо:

OvcharenkoVI

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


Цена закрытия предыдущей сессии. Нужна для расчета изменения стоимости актива(очень важно для стратегий парного трейдинга например). Я у себя в коннекторе добавил уже:

В AlfaTrader

Код
		private void OnProcessSecurities(string data, bool create = false)
		{
			this.AddInfoLog("OnProcessSecurities {0}", data);

            if (data.IsNull())
            {
                return;
            }

			var secutities = data.Split(new[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries);

			ProcessEvents(() =>
			{
				foreach (var s in secutities)
				{
					var securityInfo = s;

					var details = securityInfo.Split('|');

					if(details[1].IsEmpty())
					{
						continue;
					}

					if (create)
					{
						GetSecurity(details[0], name =>
						{
							this.AddInfoLog("Security create : {0}", securityInfo);

							var security = EntityFactory.CreateSecurity(details[4] + "@" + details[5]);
							security.ExtensionInfo = new Dictionary<object, object>();

							security.Name = details[1];
							security.ShortName = details[1];
							security.ExpiryDate = DateTime.Parse(details[2]);
							security.Code = details[4];
							security.State = AlfaUtils.SecurityStateFromAlfa(details[3]);
							var exCode = Wrapper.GetExchangeCode(details[5]);
							security.Exchange = AlfaUtils.ExchangeCodeToExchange(exCode);
							security.MarginBuy = details[7].To<decimal>();
							security.MarginSell = details[8].To<decimal>();

							security.SetPaperNo(details[0]);
							security.SetCurrency(details[6]);
							security.SetPlaceCode(details[5]);

							decimal priceStep, priceStepCost;
							Wrapper.GetPriceStepInfo(security, out priceStep, out priceStepCost);
							security.MinStepSize = priceStep;

							if (priceStepCost == 0)
							{
								this.AddWarningLog("Стоимость шага цены равна нулю для {0}.", security.Name);
							}
							else
							{
								security.MinStepPrice = priceStepCost;	
							}

							security.Type = AlfaUtils.BoardCodeToSecurityType(details[9]);
							security.SetOpenInteres(details[10].To<long>());

							security.OpenPrice = details[11].To<decimal>();

                            security.ClosePrice = details[12].To<decimal>();

							return security;
						}, null);
					}
					else
					{
						GetSecurity(details[0], security =>
						{
							this.AddInfoLog("Security update {0}.", security.Id);

							security.BestAsk = new Quote
							{
								Price = details[1].To<decimal>(),
								Volume = details[2].To<int>(),
								Security = security,
								OrderDirection = OrderDirections.Sell
							};

							security.BestBid = new Quote
							{
								Price = details[3].To<decimal>(),
								Volume = details[4].To<int>(),
								Security = security,
								OrderDirection = OrderDirections.Buy
							};

							security.LowPrice = details[5].To<decimal>();
							security.HighPrice = details[6].To<decimal>();
							security.SetOpenInteres(details[7].To<long>());

							security.OpenPrice = details[8].To<decimal>();

                            security.ClosePrice = details[9].To<decimal>();

							// TODO: Update security state
							// TODO: Add missing fields

							security.RaisePropertyChanged();
							RaiseSecuritiesChanged(new[] { security });
						});
					}
				}
			});


И в AlfaWrapper

Код
const string _securityFieldsCreate = "paper_no, ANSI_name, mat_date, status, p_code, place_code, curr_code, go_buy, go_sell, board_code, open_pos_qty, open_price, close_price";
		const string _securityFieldsUpdate = "paper_no, sell, sell_qty, buy, buy_qty, min_deal, max_deal, open_pos_qty, open_price, close_price";


К сожалению, не умею пока пользоваться codeplex, чтобы добавить, в ближайшее время постараюсь освоить...
Спасибо:

Sergey Masyura

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


OvcharenkoVI
Цена закрытия предыдущей сессии. Нужна для расчета изменения стоимости актива(очень важно для стратегий парного трейдинга например). Я у себя в коннекторе добавил уже:

В AlfaTrader

И в AlfaWrapper

Код
const string _securityFieldsCreate = "paper_no, ANSI_name, mat_date, status, p_code, place_code, curr_code, go_buy, go_sell, board_code, open_pos_qty, open_price, close_price";
		const string _securityFieldsUpdate = "paper_no, sell, sell_qty, buy, buy_qty, min_deal, max_deal, open_pos_qty, open_price, close_price";


К сожалению, не умею пока пользоваться codeplex, чтобы добавить, в ближайшее время постараюсь освоить...


У "себя в коннекторе" можно пропустить важные фиксы, которые делаются в репо. Например, до недавнего времени ордера совсем неправильно матчились.

Правильный путь
1. Создать баг/пожелание на http://stocksharp.codepl...com/workitem/list/basic
2. Завести обсуждение на форуме, чтобы услышать комментарии пользователей/авторов библиотеки.
3. Если можете исправить самостоятельно - пофиксить и создать patch/diff ( http://stackoverflow.com...a-patch-file-on-windows ) и приатачить его к багу
4. Выслушать благодарности от пользователей и прочей публики
Спасибо:

Sergey Masyura

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


Sergey Masyura
OvcharenkoVI
Цена закрытия предыдущей сессии. Нужна для расчета изменения стоимости актива(очень важно для стратегий парного трейдинга например). Я у себя в коннекторе добавил уже:

В AlfaTrader

И в AlfaWrapper

Код
const string _securityFieldsCreate = "paper_no, ANSI_name, mat_date, status, p_code, place_code, curr_code, go_buy, go_sell, board_code, open_pos_qty, open_price, close_price";
		const string _securityFieldsUpdate = "paper_no, sell, sell_qty, buy, buy_qty, min_deal, max_deal, open_pos_qty, open_price, close_price";


К сожалению, не умею пока пользоваться codeplex, чтобы добавить, в ближайшее время постараюсь освоить...


У "себя в коннекторе" можно пропустить важные фиксы, которые делаются в репо. Например, до недавнего времени ордера совсем неправильно матчились.

Правильный путь
1. Создать баг/пожелание на http://stocksharp.codepl...com/workitem/list/basic
2. Завести обсуждение на форуме, чтобы услышать комментарии пользователей/авторов библиотеки.
3. Если можете исправить самостоятельно - пофиксить и создать patch/diff ( http://stackoverflow.com...a-patch-file-on-windows ) и приатачить его к багу
4. Выслушать благодарности от пользователей и прочей публики



Добавил цену закрытия в коннектор.

http://stocksharp.codepl...changeset/changes/12592

Спасибо:

seashaman

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


OvcharenkoVI
Возникла такая трабла - утром все нормально работало, спустя пару часов запустил заново робота и начал выскакивать эксэпшн stcClientError. Просто при попытке создания шлюза к серверу. Пробовал на всех своих заготовках, там везде разные сборки StockSharp.AlfaDirect.dll

Никто не знает, может у альфы какие то проблемы там?((

Вот так вот


У меня тоже самое возникает в не рабочее время. Вообще в нерабочее время и по выходным с Альфы добиться какого либо вменяемого результата практически не возможно бывает. Выкачать данных и то дилемма. И кэш чистю, и перегружаю. Боле менее стабильная работа тока в рабочие часы.

Осваиваю Stock#, очень нравится. Планирую глобальный переезд. Немножко пока плыву в многочисленных методах. Не хватает рабочего примера работы с альфой через ту же SmaStrategy. В частности несовпадение методов Trader для Смарта и альфы немножко сбивает. А так продолжаю разбираться, работа конечно огромная сделана, большое человеческое спасибо создателям.
Спасибо:

OvcharenkoVI

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


Товарищи, есть такая трабла, может кто знает как ее решить?

Терминал дает не правильную цену открытия в таблице котировок, при этом на графике на свечке все правильно...



Спасибо:
<< < 7 8 9 10 11  > >>

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

loading
clippy