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

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


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

Код свободно доступен на http://stocksharpconnectors.codeplex.com/SourceControl/list/changesets

Из основных явных недоделок можно выделить:

  • отсутствие поддержки опционов
  • отсутствие поддержки стоп-ордеров.

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


Tags:


Thanks:


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

Avatar
Date: 12/12/2011
Reply


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

Thanks:

Sergey Masyura

Avatar
Date: 12/12/2011
Reply


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

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

Вот так вот

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

Thanks:

OvcharenkoVI

Avatar
Date: 12/13/2011
Reply


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

Thanks:

Alexander

Avatar
Date: 12/13/2011
Reply


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

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

Thanks:

Sergey Masyura

Avatar
Date: 12/14/2011
Reply


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

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

http://stocksharp.codeplex.com/workitem/list/advanced

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

Thanks:

OvcharenkoVI

Avatar
Date: 12/14/2011
Reply


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

В 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, чтобы добавить, в ближайшее время постараюсь освоить...

Thanks:

Sergey Masyura

Avatar
Date: 12/14/2011
Reply


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.codeplex.com/workitem/list/basic
2. Завести обсуждение на форуме, чтобы услышать комментарии пользователей/авторов библиотеки.
3. Если можете исправить самостоятельно - пофиксить и создать patch/diff ( http://stackoverflow.com/questions/1648595/how-to-create-a-patch-file-on-windows ) и приатачить его к багу
4. Выслушать благодарности от пользователей и прочей публики
Thanks:

Sergey Masyura

Avatar
Date: 12/14/2011
Reply


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.codeplex.com/workitem/list/basic
> 2. Завести обсуждение на форуме, чтобы услышать комментарии пользователей/авторов библиотеки.
> 3. Если можете исправить самостоятельно - пофиксить и создать patch/diff ( http://stackoverflow.com/questions/1648595/how-to-create-a-patch-file-on-windows ) и приатачить его к багу
> 4. Выслушать благодарности от пользователей и прочей публики


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

http://stocksharp.codeplex.com/SourceControl/changeset/changes/12592

Thanks:

seashaman

Avatar
Date: 12/14/2011
Reply


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

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

Вот так вот

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

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

Thanks:

OvcharenkoVI

Avatar
Date: 12/14/2011
Reply


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

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

Thanks:
<< < 7 8 9 10 11  > >>

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

loading
clippy