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

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


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

Код свободно доступен на http://stocksharpconnect...Control/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 Go to
Возникла такая трабла - утром все нормально работало, спустя пару часов запустил заново робота и начал выскакивать эксэпшн 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 Go to
Добавил бы сам, но еще не регистрировался на codeplex


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

Sergey Masyura

Avatar
Date: 12/14/2011
Reply


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


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

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


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

OvcharenkoVI

Avatar
Date: 12/14/2011
Reply


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

В AlfaTrader

Code
		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

Code
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 Go to
Цена закрытия предыдущей сессии. Нужна для расчета изменения стоимости актива(очень важно для стратегий парного трейдинга например). Я у себя в коннекторе добавил уже:

В AlfaTrader

И в AlfaWrapper

Code
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. Выслушать благодарности от пользователей и прочей публики
Thanks:

Sergey Masyura

Avatar
Date: 12/14/2011
Reply


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

В AlfaTrader

И в AlfaWrapper

Code
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

Thanks:

seashaman

Avatar
Date: 12/14/2011
Reply


OvcharenkoVI Go to
Возникла такая трабла - утром все нормально работало, спустя пару часов запустил заново робота и начал выскакивать эксэпшн 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