Prival
|
Дата: 11.04.2017
Support  Сделайте следующую проверку с последней версией: посмотрите добавляются ли сделки в коллекцию strategy.MyTrades так я написал, что сделал проверку с новой версия. 4.3.23 Все ошибки сохранились. Про политику работы над ошибками прочитал, это право компании, как хочет так и работает. Меня другое интересует, такое ощущение что никто даже не посмотрел код, не проверил. Скажите эти ошибки (что описаны выше) у вас воспроизводятся или нет ? Это действительно баг или незнание мной библиотеки ? Ведь от этого ответа зависят мои действия (и ваши тоже)...
|
Автор топика
|
|
|
Support
|
Дата: 11.04.2017
Воспроизводится 1 и 2 ошибки - это баг. Так в strategy.MyTrades сделки есть или нет?
|
|
|
|
Prival
|
Дата: 11.04.2017
Если правильно понимаю вопрос то сделки приходят. Код ...... Connector.NewMyTrades += Connector_NewMyTrades; base.OnStarted(); }
private void Connector_NewMyTrades(IEnumerable<MyTrade> trades) { foreach (var trade in trades) { this.AddInfoLog(@"{0} Прошла сделка №{5} {4} по цене {1}, объём {2}, направление {3}.", TimeHelper.Now.TimeOfDay, trade.Trade.Price, trade.Trade.Volume, trade.Order.Direction, trade.Trade.Security.Code, trade.Trade.Id); } } Лог показывает что сюда сделки приходят 2017/04/11 21:24:54.378| |S_RIM7@FORTS_Симулятор|21:24:54.4203760 Прошла сделка №1 RIM7 по цене 108902, объём 1, направление Buy.
|
Автор топика
|
|
|
Support
|
Дата: 12.04.2017
Не правильно... В коллекцию strategy.MyTrades записываются сделки, совершенные стратегией, а средняя цена считается на базе этой коллекции..
|
|
|
|
Prival
|
Дата: 16.09.2017
Support  Воспроизводится 1 и 2 ошибки - это баг. Так в strategy.MyTrades сделки есть или нет? Скажите описанные баги в этой ветке уже поправлены ?
|
Автор топика
|
|
|
Support
|
Дата: 18.09.2017
Prival  Support  Воспроизводится 1 и 2 ошибки - это баг. Так в strategy.MyTrades сделки есть или нет? Скажите описанные баги в этой ветке уже поправлены ? Спасибо за вашу информацию. Проверьте, пожалуйста, на последних версиях.
|
|
|
|
Prival
|
Дата: 20.09.2017
А вы что не знаете ? Исправили вы это или нет ? Баг был показан в апреле месяце, сейчас конец сентября ... пол года жду.
|
Автор топика
|
|
|
Prival
|
Дата: 24.01.2018
|
|
|
|
Проверил на версии 4.4.4 - ошибка не исправлена. на 800-м перевороте снова недостаточно денег на счете. 23:31:03.100| |SecurityMarketEmulator|Заявка 84322794 зарегистрирована. 23:31:03.100| |SecurityMarketEmulator|Заявка 84322794. Исполнение объема 2 по цене 130030. 23:31:03.100| |SecurityMarketEmulator|Заявка 84322794 полностью исполнена. 23:31:03.100| |SecurityMarketEmulator|Сделка 798 заявки 84322794 P=130030 V=2. 23:31:03.082| |RealTimeEmulationTrader`1|Order changed: 84322794/810 RIH8@FORTS Симулятор Продажа Цена=0 Объем=2 Сост=Done Бал=0 23:31:03.082| |RealTimeEmulationTrader`1|RegisterOrder: 0/ RIH8@FORTS Симулятор Покупка Цена=0 Объем=2 Сост=None Бал=0 23:31:03.082| |RealTimeEmulationTrader`1|New order: 84322795/ RIH8@FORTS Симулятор Покупка Цена=0 Объем=2 Сост=Pending Бал=2 23:31:03.101| |SecurityMarketEmulator|Заявка 84322795 зарегистрирована. 23:31:03.101| |SecurityMarketEmulator|Заявка 84322795. Исполнение объема 1 по цене 130040. 23:31:03.101| |SecurityMarketEmulator|Заявка 84322795 отменяется, так как является рыночной с неисполненным объемом 1. 23:31:03.101| |SecurityMarketEmulator|Сделка 799 заявки 84322795 P=130040 V=1. 23:31:03.082| |RealTimeEmulationTrader`1|Order changed: 84322795/811 RIH8@FORTS Симулятор Покупка Цена=0 Объем=2 Сост=Done Бал=1 23:31:03.082| |RealTimeEmulationTrader`1|RegisterOrder: 0/ RIH8@FORTS Симулятор Покупка Цена=0 Объем=1 Сост=None Бал=0 23:31:03.082| |RealTimeEmulationTrader`1|New order: 84322796/ RIH8@FORTS Симулятор Покупка Цена=0 Объем=1 Сост=Pending Бал=1 23:31:03.102| |SecurityMarketEmulator|Заявка 84322796 не зарегистрирована. Причина 'На счету Симулятор недостаточно денег для регистрации заявки 84322796. Необходимо 1016816.43, имеется 985580, заблокировано 1002079.96.'. 23:31:03.082|Error |RealTimeEmulationTrader`1|OrderRegisterFailed 84322796/ RIH8@FORTS Симулятор Покупка Цена=0 Объем=1 Сост=Failed Бал=1 System.InvalidOperationException: На счету Симулятор недостаточно денег для регистрации заявки 84322796. Необходимо 1016816.43, имеется 985580, заблокировано 1002079.96.
Скоро будет год как жду исправления...
|
Автор топика
|
|
|
Prival
|
Дата: 07.03.2018
Support  Сделайте следующую проверку с последней версией: посмотрите добавляются ли сделки в коллекцию strategy.MyTrades Проверил. Одну ошибку так и не поправили. Версия 4.4.5.3 order .WhenMatched(Connector) .Do(() => { this.AddInfoLog(@"{0} Заявка {2} {3} полностью исполнена Volume={4}. Позиция {1} Price={5} TH={6}", TimeHelper.Now.TimeOfDay, Position, order.Direction, order.Security.Code, order.Volume, order.Price, TraderHelper.GetAveragePrice(order, Connector)); } в лог выводиться 20:31:30.086| |S_RIH8@FORTS_Симулятор|20:31:30.1103235 Заявка Buy RIH8 полностью исполнена Volume=1. Позиция 1 Price=0 TH=0Может я что то не так делаю (не понимаю). Мне нужно получить цену по которой прошла сделка. Как её получить ?
|
Автор топика
|
|
|
Константин
|
Дата: 07.03.2018
Цитата:Может я что то не так делаю (не понимаю). Мне нужно получить цену по которой прошла сделка. Как её получить ? Вам наверное нужно подписаться на сделки по ордеру чтоб узнать их цену На сколько я понимаю Price = 0 может быть у ордера который исполнен по рынку.
|
|
|
|
Prival
|
Дата: 07.03.2018
Ордер большой объем, и нужно получить среднюю цену когда он весь исполниться. order.WhenNewTrade пробовал, там да, цена приходит this.AddInfoLog(@"WhenNewTrade Цена заявки ={0}, Цена сделки={0} ", trade.Order.Price, trade.Trade.Price);
а вот как её получить в order.WhenMatched никак не пойму. TraderHelper.GetAveragePrice(order, Connector) то что нужно, но он возвращает ноль (((
|
Автор топика
|
|
|
Константин
|
Дата: 07.03.2018
А если так: Код order.WhenNewTrade(Connector).Do((trade) => {
if (trade.Order.State == OrderStates.Done) { //Заявка исполнена полностью var averagePrice = order.GetAveragePrice(Connector); } else { //Заявка исполнена не полностью return; }
}) .Apply(this);
|
|
|
|
Prival
|
Дата: 15.03.2018
|
|
|
|
Support  Prival  Support  Воспроизводится 1 и 2 ошибки - это баг. Так в strategy.MyTrades сделки есть или нет? Скажите описанные баги в этой ветке уже поправлены ? Спасибо за вашу информацию. Проверьте, пожалуйста, на последних версиях. 1 ошибка все таки осталась или я неправильно понимаю PnL Вот лог 07:41:13.611| |S_RIM8@FORTS_Симулятор|Стратегия Запущена. [0,-1]. Позиция 0. 07:41:13.611| |S_RIM8@FORTS_Симулятор|07:41:14.6011093 Strategy OnStarted: S_RIM8@FORTS_Симулятор BeginValue=1000000 CurrentValue=1000000 Position=0 10:07:32.771| |S_RIM8@FORTS_Симулятор|=> ENTER SHORT. 10:07:32.771| |S_RIM8@FORTS_Симулятор|Регистрация новой Market (0x2B3FFA1) заявки на Sell с ценой 0 и объемом 1. 10:07:32.823| |S_RIM8@FORTS_Симулятор|Новая позиция: (S#:RIM8@FORTS, Native:,Type:Future, Симулятор)=-1. 10:07:32.823| |S_RIM8@FORTS_Симулятор|Заявка 27662344 (0x2B3FFA1) больше не активна. 10:07:32.823| |S_RIM8@FORTS_Симулятор|Новая Sell сделка 1 по цене 125890 на 1 заявки 27662344. 10:07:32.823| |S_RIM8@FORTS_Симулятор|*** Заявка исполнена полностью Цена заявки =0, Цена сделки=125890 AveragePrice=125890 TP=125790 SL= 125990 *** 10:07:32.823| |S_RIM8@FORTS_Симулятор|Position = -1 Current P/L = 0 10:23:18.514| |S_RIM8@FORTS_Симулятор|<= EXIT SHORT. 10:23:18.514| |S_RIM8@FORTS_Симулятор|Регистрация новой Market (0x1C5627E) заявки на Buy с ценой 0 и объемом 1. 10:23:18.514| |S_RIM8@FORTS_Симулятор|Новая позиция: (S#:RIM8@FORTS, Native:,Type:Future, Симулятор)=0. 10:23:18.514| |S_RIM8@FORTS_Симулятор|Заявка 27662345 (0x1C5627E) больше не активна. 10:23:18.514| |S_RIM8@FORTS_Симулятор|Новая Buy сделка 2 по цене 125720 на 1 заявки 27662345. 10:23:18.514| |S_RIM8@FORTS_Симулятор|*** Заявка исполнена полностью Цена заявки =0, Цена сделки=125720 AveragePrice=125720 TP=125790 SL= 125990 *** 10:23:18.514| |S_RIM8@FORTS_Симулятор|Position = 0 Current P/L = 194,539840 Не могу понять почему PnL= 194,539840 Это сделка фьючерс RIM8 125890-125720 должно быть.... =170 this.AddInfoLog("Position = {0} Current P/L = {1} ", Position, this.PnLManager.PnL); Вопрос PnL он в пунктах выводиться или в деньгах ? Если в деньгах, то как его привести к пунктам ? Заранее спасибо. Версия 4.4.5.3
|
Автор топика
|
|
|
Prival
|
Дата: 20.04.2018
|
|
|
|
Support  Prival  Support  Воспроизводится 1 и 2 ошибки - это баг. Так в strategy.MyTrades сделки есть или нет? Скажите описанные баги в этой ветке уже поправлены ? Спасибо за вашу информацию. Проверьте, пожалуйста, на последних версиях. Проверил. К сожалению режим совсем поломался ((( Quik 7.16.3.14 Версия 4.4.6.1 В режиме RealQuikConnector(); Все работает, все приходит В режиме EmulationQuikConnector() и EmulationQuikConnector2(); событие ValuesChanged срабатывает, но OpenInterest BidsCount ... не приходят (( Версия 4.4.5.4 В режиме RealQuikConnector(); Все работает, все приходит В режиме EmulationQuikConnector() и EmulationQuikConnector2(); событие ValuesChanged срабатывает, но OpenInterest BidsCount ... не приходят (( Версия 4.4.5.3 Во всех режимах, все приходит. Получен портфель - Симулятор SBER@TQBR - зарегестрирован, все ок RIM8@FORTS - зарегестрирован, все ок RIM8@FORTS BidsCount=798 RIM8@FORTS OpenInterest=510700 Кодusing System; using System.Collections.Generic; using System.Diagnostics; using System.Security; using System.Windows; using Ecng.Common; using MoreLinq; using StockSharp.Algo; using StockSharp.Algo.Testing; using StockSharp.BusinessEntities; using StockSharp.Logging; using StockSharp.Messages; using StockSharp.Quik; using StockSharp.Quik.Lua;
namespace Test2 { public partial class MainWindow : Window { private Connector _trader;
public MainWindow() { InitializeComponent(); }
private QuikTrader RealQuikConnector() { var qtrader = new QuikTrader { LuaLogin = "quik", LuaFixServerAddress = QuikTrader.DefaultLuaAddress, LuaPassword = "quik".To<SecureString>() }; return qtrader; }
private RealTimeEmulationTrader<IMessageAdapter> EmulationQuikConnector() { var tMessageAdapter = new QuikTrader { LuaLogin = "quik", LuaFixServerAddress = QuikTrader.DefaultLuaAddress, //"127.0.0.1:5001".To<EndPoint>(), LuaPassword = "quik".To<SecureString>(), LogLevel = LogLevels.Debug, UpdateSecurityByLevel1 = true }.MarketDataAdapter;
var portfolio = new Portfolio {Name = "Симулятор", BeginValue = 100000}; var etrader = new RealTimeEmulationTrader<IMessageAdapter>(tMessageAdapter, portfolio);
return etrader; }
private RealTimeEmulationTrader<IMessageAdapter> EmulationQuikConnector2() { var quikMd = new LuaFixMarketDataMessageAdapter(new MillisecondIncrementalIdGenerator()) { Login = "quik", Password = "quik".To<SecureString>(), Address = QuikTrader.DefaultLuaAddress, TargetCompId = "StockSharpMD", SenderCompId = "quik", RequestAllSecurities = true };
var portfolio = new Portfolio {Name = "Симулятор", BeginValue = 100000}; var etrader = new RealTimeEmulationTrader<IMessageAdapter>(quikMd, portfolio);
return etrader; }
private void Button_Click(object sender, RoutedEventArgs e) { if (_trader == null) { //_trader = RealQuikConnector(); _trader = EmulationQuikConnector2();
_trader.NewSecurities += securities => { securities.ForEach(s => { try { if (s.Id == "SBER@TQBR" || s.Id == "SBER@QJSIM") // { _trader.RegisterMarketDepth(s); _trader.RegisterSecurity(s); _trader.RegisterTrades(s); Console.WriteLine(@"{0} - зарегестрирован, все ок", s); }
if (s.Id == "RIM8@FORTS") // { _trader.RegisterMarketDepth(s); _trader.RegisterSecurity(s); _trader.RegisterTrades(s); Console.WriteLine(@"{0} - зарегестрирован, все ок", s); } } catch (Exception exc) { Console.WriteLine(exc.Message, @" Ошибка регистрации ", s); throw; } }); };
_trader.NewPortfolio += portfolio => { Console.WriteLine(@"Получен портфель - {0}", portfolio.Name); }; //_trader.NewTrades += Trader_NewTrades; //_trader.SecuritiesChanged += Trader_SecuritiesChanged; _trader.ValuesChanged += _trader_ValuesChanged; }
_trader.Connect(); }
private void _trader_ValuesChanged(Security security, IEnumerable<KeyValuePair<Level1Fields, object>> value, DateTimeOffset serverTime, DateTimeOffset localTime) { if (security == null || value == null) return; if (security.Code == "SBER" || security.Code == "RIM8") foreach (var keyValuePair in value) if (keyValuePair.Key == Level1Fields.OpenInterest || keyValuePair.Key == Level1Fields.BidsCount) Console.WriteLine(@"{0} {1}={2}", security, keyValuePair.Key, keyValuePair.Value); }
private void Trader_SecuritiesChanged(IEnumerable<Security> securities) { foreach (var security in securities) { Console.Write(@"Событие SecuritiesChanged"); if (security.LastTrade != null) Console.WriteLine(@" Name={0} LastTrade.Price={1} AsksCount={2}", security.Id, security.LastTrade.Price, security.AsksCount); else Console.WriteLine(@" LastTrade.Price=null"); } }
private void Trader_NewTrades(IEnumerable<Trade> trades) { foreach (var trade in trades) Debug.Print(trade.ToString()); } } } Пожалуйста сделайте режим работоспособным. И курсы покупал и платная тех поддержка, а за эти годы так рабочего варианта и не смог получить (увидеть). Обидно очень ....
|
Автор топика
|
|
|
Mikhail Sukhov
|
Дата: 21.04.2018
Prival  и платная тех поддержка У вас нет активной подписки на техническую поддержку. По нашей информации она истекла более полу года назад. Наши специалисты не видят ваши сообщения. Приобретите подписку и тогда мы сможем вам помочь - https://stocksharp.ru/support/ Или вы можете найти программиста на S# среди зарегистрированных пользователей и на коммерческой основе помочь вам сделать желаемый результат.
|
|
|
|
Prival
|
Дата: 21.04.2018
|
|
|
|
Mikhail Sukhov  Prival  и платная тех поддержка У вас нет активной подписки на техническую поддержку. По нашей информации она истекла более полу года назад. Наши специалисты не видят ваши сообщения. Приобретите подписку и тогда мы сможем вам помочь - https://stocksharp.ru/support/ Или вы можете найти программиста на S# среди зарегистрированных пользователей и на коммерческой основе помочь вам сделать желаемый результат. Михаил а как быть с тем фактом, что пока она была (платная тех поддержка). Так и не починили. Не смогли исправить все ошибки ? Мне снова платить и ждать когда заработает ? Первое сообщение 11.02.2017....сейчас 21.04.2018 Какую вы даете гарантию что починят, если я снова заплачу ? Михаил пожалуйста посмотрите нашими глазами на тех. поддержку. Я готов заплатить снова, но где гарантия что через год мы снова не вернемся к этому вопросу ? Пока была платная тех. поддержка так и не смогли починить... Мне платить и снова ждать, сколько ждать ? Я прошел обучение 29.05.2013 и с тех пор режим RealTimeEmulationTrader так ни разу и не увидел полностью работоспособным. Все время вылазят ошибки, баги. Я их нахожу (баги), показываю и еще должен платить за их исправление ? Михаил нужно уметь держать свое слово. Пожалуйста почините режим. Я за это уже заплатил. Перестаньте вытягивать деньги из ваших клиентов. Михаил 5 лет !!! 5 ЛЕТ ЖДУ...
|
Автор топика
|
|
|
Mikhail Sukhov
|
Дата: 21.04.2018
Prival  Мне снова платить и ждать когда заработает ?
Возможно у нас не полная информация, и вы платили с другой учетной записи. Но за техничесную поддержку у вас нет ни одного платежа. Предыдущий раз вам была предоставлена подписка на 1 год в рамках программы лояльности. Это был бонус, а не обязательное условие с нашей стороны. Так же за разработку или экспресс- устранение багов от вас мы никогда не получали платежи. Вы можете написать на info@stocksharp.com если такие платежи действительно когда-либо существовали.
|
|
|