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
Товарищи, есть такая трабла, может кто знает как ее решить? Терминал дает не правильную цену открытия в таблице котировок, при этом на графике на свечке все правильно...
|
|
Спасибо:
|
|
|
|