Фичи/Баги/Пожелания для AlfaConnector
Atom Ответить
04.05.2011


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

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

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

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

Теги:


Спасибо:




145 Ответов
<< < 2 3 4 5 6  >
Sergey Masyura

Фотография
Автор статей
Дата: 07.12.2011
Ответить


OvcharenkoVI Перейти
Это я знаю, просто до этого с одним трейдером второй инструмент молчал


Оба инструмента должны быть в списке позиций/балансов. Тогда должно нормально работать. В доке про это есть упоминание.
Автор топика
Спасибо: OvcharenkoVI

OvcharenkoVI

Фотография
Автор статей
Дата: 08.12.2011
Ответить


Как возможно получить Security.OpenPrice?

Инструмент регистрируется, но значение всегда null... в коннекторе не нашел
Спасибо:

Sergey Masyura

Фотография
Автор статей
Дата: 09.12.2011
Ответить


OvcharenkoVI Перейти
Как возможно получить Security.OpenPrice?

Инструмент регистрируется, но значение всегда null... в коннекторе не нашел


Добавил в коннектор.

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

Автор топика
Спасибо: OvcharenkoVI

OvcharenkoVI

Фотография
Автор статей
Дата: 09.12.2011
Ответить


Спасибо, Сергей
Спасибо:

OvcharenkoVI

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


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

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

Вот так вот
Спасибо:

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

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


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


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

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


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

OvcharenkoVI

Фотография
Автор статей
Дата: 13.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

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

Sergey Masyura

Фотография
Автор статей
Дата: 13.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. Создать баг/пожелание на https://stocksharp.codeplex.com/workitem/list/basic
2. Завести обсуждение на форуме, чтобы услышать комментарии пользователей/авторов библиотеки.
3. Если можете исправить самостоятельно - пофиксить и создать patch/diff ( https://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
Ответить


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

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



Спасибо:

Sergey Masyura

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


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

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





Цена открытия - это цена открытия вечерней сессии.
Автор топика
Спасибо: OvcharenkoVI

OvcharenkoVI

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


А реально получить цену открытия текущей сессии?
Спасибо:

OvcharenkoVI

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


Но спасибо за разъяснение
Спасибо:

Sergey Masyura

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


OvcharenkoVI Перейти
А реально получить цену открытия текущей сессии?


Да. Как вариант можно с сервера запросить минутную свечку 10:00 - 10:01 и посмотреть у нее цену открытия.
Автор топика
Спасибо:

OvcharenkoVI

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


Этот способ я пытался провернуть, но у меня почему то виснет GeHistoryData)

Сейчас решил провернуть стратегию без фьючей, так что надеюсь отложить этот вопрос в ящик)
Спасибо:

seashaman

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


Подскажите пожалуйста, это только у меня, или вообще с CandleManager проблемма под Alfa? Я никак не могу добиться от него любого не null значения. Перебрал уже все примеры, добавил по нему все что можно. Все подсоединяется, квоты бегут в логах,
GetMarketPrice выдает нормальные цифры, а candleManager молчит как партизан. Сборка 12564.
Спасибо:

Sergey Masyura

Фотография
Автор статей
Дата: 15.12.2011
Ответить


OvcharenkoVI Перейти
Этот способ я пытался провернуть, но у меня почему то виснет GeHistoryData)

Сейчас решил провернуть стратегию без фьючей, так что надеюсь отложить этот вопрос в ящик)


Берите эту свечку не с сервера, а локально из базы терминалы. Тогда ничего виснуть не будет.
Автор топика
Спасибо:

Sergey Masyura

Фотография
Автор статей
Дата: 15.12.2011
Ответить


seashaman Перейти
Подскажите пожалуйста, это только у меня, или вообще с CandleManager проблемма под Alfa? Я никак не могу добиться от него любого не null значения. Перебрал уже все примеры, добавил по нему все что можно. Все подсоединяется, квоты бегут в логах,
GetMarketPrice выдает нормальные цифры, а candleManager молчит как партизан. Сборка 12564.


Не знаю, не пробовал. Можно будет посмотреть. У меня своя реализация получения исторических/реал-тайм свечек из терминала. Возможно к Новому Году добавлю ее в публичный коннектор в том числе.
Автор топика
Спасибо:

seashaman

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


Sergey Masyura Перейти
seashaman Перейти
Подскажите пожалуйста, это только у меня, или вообще с CandleManager проблемма под Alfa? Я никак не могу добиться от него любого не null значения. Перебрал уже все примеры, добавил по нему все что можно. Все подсоединяется, квоты бегут в логах,
GetMarketPrice выдает нормальные цифры, а candleManager молчит как партизан. Сборка 12564.


Не знаю, не пробовал. Можно будет посмотреть. У меня своя реализация получения исторических/реал-тайм свечек из терминала. Возможно к Новому Году добавлю ее в публичный коннектор в том числе.

Был бы очень признателен, если бы Вы нашли время заглянуть хоть одним глазком. Поставить диагноз,куда копать. Просто невозможность собрать рабочий тривиальный пример, при ознакомлении, выбивает из тапок(. А начинать знакомство с Stock# с написания коннектора сильно круто для меня )

UP. Заработало. Обновил, все перекомпилил, открыл в Альфе все возможные таблицы.
Спасибо:

Sergey Masyura

Фотография
Автор статей
Дата: 16.12.2011
Ответить


seashaman Перейти
Sergey Masyura Перейти
seashaman Перейти
Подскажите пожалуйста, это только у меня, или вообще с CandleManager проблемма под Alfa? Я никак не могу добиться от него любого не null значения. Перебрал уже все примеры, добавил по нему все что можно. Все подсоединяется, квоты бегут в логах,
GetMarketPrice выдает нормальные цифры, а candleManager молчит как партизан. Сборка 12564.


Не знаю, не пробовал. Можно будет посмотреть. У меня своя реализация получения исторических/реал-тайм свечек из терминала. Возможно к Новому Году добавлю ее в публичный коннектор в том числе.

Был бы очень признателен, если бы Вы нашли время заглянуть хоть одним глазком. Поставить диагноз,куда копать. Просто невозможность собрать рабочий тривиальный пример, при ознакомлении, выбивает из тапок(. А начинать знакомство с Stock# с написания коннектора сильно круто для меня )


Хорошо, посмотрю.

У альфа-конектора мало пользователей, про ошибки тоже практически никто не пишет. Если возьмете Квик, то там точно все что есть в сток-шарпе работает.
Автор топика
Спасибо:
<< < 2 3 4 5 6  >

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

loading
clippy