| Mikhail Sukhov 
 
   
 
						
						
					 | Дата: 30.10.2012 
 
 
	
			Инструмент, дата в истории, код воспроизводящий проблему.
			
			
			
			
		
 | 
			
				|  | 
	
		| Спасибо: |   |  | 
			
				|  | 
		
			| 
 | 
		
			
				| Yury Smykalov 
 
   
 
						
						
					 | Дата: 31.10.2012 
						
							|  |  |  |   |  
 
 
	
			RIZ2@RTS Сделка №4178 из report.xls Дата сделки: 30.10.2012 10:10:35  Цена сделки: 142120	 Цена заявки: 141870 Направление: Продажа Цена сделки выглядит очень странной, на фоне сохраненных сделок: Код
Time;Code;Price;Volume
30.10.2012 10:10:34,780;RIZ2@RTS;141870;5
30.10.2012 10:10:34,840;RIZ2@RTS;141870;4
30.10.2012 10:10:34,840;RIZ2@RTS;141870;1
30.10.2012 10:10:34,927;RIZ2@RTS;141870;3
30.10.2012 10:10:34,927;RIZ2@RTS;141870;2
30.10.2012 10:10:34,935;RIZ2@RTS;141870;3
30.10.2012 10:10:35,259;RIZ2@RTS;141870;1
30.10.2012 10:10:36,786;RIZ2@RTS;141860;1
30.10.2012 10:10:36,864;RIZ2@RTS;141860;1
30.10.2012 10:10:36,864;RIZ2@RTS;141860;2
30.10.2012 10:10:36,952;RIZ2@RTS;141860;1
30.10.2012 10:10:36,952;RIZ2@RTS;141860;1
30.10.2012 10:10:37,041;RIZ2@RTS;141860;1 И стаканов: Код
DepthTime;Code;BestBid;BestAsk
30.10.2012 10:10:34,897;RIZ2@RTS;141870;141880
30.10.2012 10:10:34,937;RIZ2@RTS;141860;141870
30.10.2012 10:10:35,036;RIZ2@RTS;141860;141870
30.10.2012 10:10:35,155;RIZ2@RTS;141860;141870
30.10.2012 10:10:35,223;RIZ2@RTS;141860;141870
30.10.2012 10:10:35,270;RIZ2@RTS;141860;141870
30.10.2012 10:10:35,322;RIZ2@RTS;141860;141870
30.10.2012 10:10:35,588;RIZ2@RTS;141860;141870
30.10.2012 10:10:35,653;RIZ2@RTS;141860;141870
30.10.2012 10:10:35,757;RIZ2@RTS;141860;141870
30.10.2012 10:10:35,942;RIZ2@RTS;141860;141870
30.10.2012 10:10:36,639;RIZ2@RTS;141860;141870
30.10.2012 10:10:36,704;RIZ2@RTS;141860;141870
30.10.2012 10:10:36,844;RIZ2@RTS;141860;141870
30.10.2012 10:10:36,885;RIZ2@RTS;141860;141870
30.10.2012 10:10:36,952;RIZ2@RTS;141850;141860
30.10.2012 10:10:37,099;RIZ2@RTS;141860;141870 Для воспроизведения достаточно вот этих двух файлов: Program.cs Код
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using StockSharp.Algo;
using StockSharp.Algo.Strategies;
using StockSharp.BusinessEntities;
using System.Threading;
using System.Diagnostics;
using StockSharp.Algo.Storages;
using StockSharp.Logging;
using StockSharp.Algo.Testing;
using StockSharp.Algo.Reporting;
namespace BugDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            var security = new Security
            {
                Id = "RIZ2@RTS",
                Code = "RIZ2",
                Name = "RTS-12.12",
                MinStepSize = 10,
                MinStepPrice = 6.2m,
                Exchange = Exchange.Rts,
            };
            var storagePath = @"C:\StockSharp\4.1.5\StorageMDS";
            var portfolio = new Portfolio { Name = "test account", BeginValue = 1000000m };
            var startDate = new DateTime(2012, 10, 30, 10, 0, 0);
            var stopDate = new DateTime(2012, 10, 30, 10, 30, 0);
            var timeFrame = TimeSpan.FromMinutes(1);
            var storageRegistry = new StorageRegistry();
            ((LocalMarketDataDrive)storageRegistry.DefaultDrive).Path = storagePath;
            var logManager = new LogManager();
            var fileListener = new FileLogListener(String.Format("{0}_{1:00}_{2:00}.txt", DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day));
            logManager.Listeners.Add(fileListener);
            var emulationTrader = new EmulationTrader(
                new[] { security },
                new[] { portfolio })
            {
                MarketTimeChangedInterval = timeFrame,
                StorageRegistry = storageRegistry,
                UseMarketDepth = true
            };
            logManager.Sources.Add(emulationTrader);
            emulationTrader.RegisterTrades(security);
            emulationTrader.RegisterMarketDepth(security);
            
            emulationTrader.Connect();
            emulationTrader.StartExport();
            var strategy = new DemoStrategy()
            {
                Volume = 1,
                Trader = emulationTrader,
                Security = security,
                Portfolio = portfolio,
                StartDate = startDate,
                StopDate = stopDate
            };
            logManager.Sources.Add(strategy);
            strategy.Start();
            emulationTrader.Start(startDate, stopDate);
            while (emulationTrader.State == EmulationStates.Started && strategy.ProcessState == ProcessStates.Started)
            {
                Thread.Sleep(100);
            }
            new ExcelStrategyReport(strategy, "report.xls").Generate();
            Process.Start("report.xls");
            emulationTrader.Dispose();
            strategy.Dispose();
            Console.WriteLine("Press Enter to exit...");
            Console.ReadLine();
        }
    }
} DemoStrategy.cs Код
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using StockSharp.Algo;
using StockSharp.Algo.Strategies;
using StockSharp.BusinessEntities;
using System.Threading;
namespace BugDemo
{
    class DemoStrategy : Strategy
    {
        private bool _lock = false;
        public DateTime StartDate;
        public DateTime StopDate;
        protected override void OnStarted()
        {
            Security.WhenNewTrades()
                .Do(ProcessNewTrades)
                .Apply(this);
            base.OnStarted();
        }
        protected void ProcessNewTrades(IEnumerable<Trade> trades)
        {
            if (Security.LastTrade == null || Security.BestAsk == null || Security.BestBid == null) return;
            if (_lock) return;
            var marketTime = Trader.GetMarketTime(Exchange.Rts);
            if (StartDate.CompareTo(marketTime) > 0) return;
            if (StopDate.CompareTo(marketTime) < 0) Stop();
            OpenPosition();
        }
        protected void OpenPosition()
        {
            _lock = true;
            var order = RegisterNewOrder(OrderDirections.Buy, Security.BestAsk.Price);
            order.WhenMatched()
                .Do(ClosePosition)
                .Apply();
        }
        protected void ClosePosition()
        {
            var order = RegisterNewOrder(OrderDirections.Sell, Security.BestBid.Price);
            order.WhenMatched()
                .Do(() => _lock = false)
                .Apply();
        }
        protected Order RegisterNewOrder(OrderDirections direction, decimal price)
        {
            var newOrder = this.CreateOrder(direction, price, Volume);
            newOrder.ShrinkPrice();
            newOrder.Security = Security;
            while (!Trader.IsConnected) Trader.Reconnect();
            base.RegisterOrder(newOrder);
            return newOrder;
        }
           
    }
} | 
			
				|  | 
	
		| Спасибо: |   |  | 
			
				|  | 
		
			| 
 | 
		
			
				| Igor123 
 
   
 
						
						
					 | Дата: 08.11.2012 
						
							|  |  |  |   |  
 
 
	
			Та же самая проблема: при тестирование на истории выставляется лимитированная заявка, но она исполняется по невероятной цене , которой даже нет в истории, с проскальзыванием  -1340
 Номер сделки	Номер транзакции	Время	Цена	Цена заявки	Объем	Направление	Номер заявки	Проскальзывание	Проскальзывание (котирование)	Позиция
 1257	194837	31.10.2012 20:32:32	141970	141970	1	Покупка	1350	0	0	0
 1258	194838	31.10.2012 20:32:41	142030	142030	1	Покупка	1351	0	0	1
 1259	194839	31.10.2012 20:32:59	142140	142140	1	Покупка	1352	0	0	2
 1260	194840	31.10.2012 20:33:47	142800	142130	2	Продажа	1353	0	-1340	0
 1261	194841	31.10.2012 20:35:37	142800	142010	1	Продажа	1354	0	-790	-1
 1262	194842	31.10.2012 20:35:46	142080	142080	1	Покупка	1355	0	0	0
 
 2012.10.31 20:33:47.000|       |SS_RIZ2@RTS_test account|Заявка Sell цена 142130 количество 2
 2012.10.31 20:33:47.000|       |SS_RIZ2@RTS_test account|Новая Sell сделка 1260 по цене 142800 на 2 заявки 194840.
 2012.10.31 20:33:47.000|       |SS_RIZ2@RTS_test account|Новая позиция: test account-RIZ2@RTS=0.
 2012.10.31 20:33:47.000|       |SS_RIZ2@RTS_test account|Заявка 194840 больше не активна.
 
 4.1.5 версия
 проблема как нить решена?
 | 
			
				|  | 
	
		| Спасибо: |   |  | 
			
				|  | 
		
			| 
 | 
		
			
				| pyhta4og 
 
   
 
						
						
					 | Дата: 09.11.2012 
						
							|  |  |  |   |  
 
 
	
			Yury Smykalov RIZ2@RTS Сделка №4178 из report.xls Дата сделки: 30.10.2012 10:10:35  Цена сделки: 142120	 Цена заявки: 141870 Направление: Продажа Цена сделки выглядит очень странной, на фоне сохраненных сделок: Код
Time;Code;Price;Volume
30.10.2012 10:10:34,780;RIZ2@RTS;141870;5
30.10.2012 10:10:34,840;RIZ2@RTS;141870;4
30.10.2012 10:10:34,840;RIZ2@RTS;141870;1
30.10.2012 10:10:34,927;RIZ2@RTS;141870;3
30.10.2012 10:10:34,927;RIZ2@RTS;141870;2
30.10.2012 10:10:34,935;RIZ2@RTS;141870;3
30.10.2012 10:10:35,259;RIZ2@RTS;141870;1
30.10.2012 10:10:36,786;RIZ2@RTS;141860;1
30.10.2012 10:10:36,864;RIZ2@RTS;141860;1
30.10.2012 10:10:36,864;RIZ2@RTS;141860;2
30.10.2012 10:10:36,952;RIZ2@RTS;141860;1
30.10.2012 10:10:36,952;RIZ2@RTS;141860;1
30.10.2012 10:10:37,041;RIZ2@RTS;141860;1 И стаканов: Код
DepthTime;Code;BestBid;BestAsk
30.10.2012 10:10:34,897;RIZ2@RTS;141870;141880
30.10.2012 10:10:34,937;RIZ2@RTS;141860;141870
30.10.2012 10:10:35,036;RIZ2@RTS;141860;141870
30.10.2012 10:10:35,155;RIZ2@RTS;141860;141870
30.10.2012 10:10:35,223;RIZ2@RTS;141860;141870
30.10.2012 10:10:35,270;RIZ2@RTS;141860;141870
30.10.2012 10:10:35,322;RIZ2@RTS;141860;141870
30.10.2012 10:10:35,588;RIZ2@RTS;141860;141870
30.10.2012 10:10:35,653;RIZ2@RTS;141860;141870
30.10.2012 10:10:35,757;RIZ2@RTS;141860;141870
30.10.2012 10:10:35,942;RIZ2@RTS;141860;141870
30.10.2012 10:10:36,639;RIZ2@RTS;141860;141870
30.10.2012 10:10:36,704;RIZ2@RTS;141860;141870
30.10.2012 10:10:36,844;RIZ2@RTS;141860;141870
30.10.2012 10:10:36,885;RIZ2@RTS;141860;141870
30.10.2012 10:10:36,952;RIZ2@RTS;141850;141860
30.10.2012 10:10:37,099;RIZ2@RTS;141860;141870 Воспроизвел, будет фикс. 
			
			
			
			
		
 | 
			
				|  | 
	
		| Спасибо: |   |  | 
			
				|  | 
		
			| 
 | 
		
			
				| Mikhail Sukhov 
 
   
 
						
						
					 | Дата: 09.11.2012 
 
 
	
			pyhta4og Воспроизвел, будет фикс.  Выложил на КодеПлекс.
			
			
			
			
		
 | 
			
				|  | 
	
		| Спасибо: |   |  | 
			
				|  | 
		
			| 
 | 
		
			
				| khmike 
 
   
 
						
						
					 | Дата: 09.11.2012 
 
 
	
			Mikhail Sukhov pyhta4og Воспроизвел, будет фикс.  Выложил на КодеПлекс. Добрый день! Пришлите пожалуйста ссылку на версию с этим фиксом. А то я вижу последний update на coldplex - StockSharp 4.1.5 Oct 28, 2012 by mika_soukhov
			
			
			
			
		
 | 
			
				|  | 
	
		| Спасибо: |   |  | 
			
				|  | 
		
			| 
 | 
		
			
				| Alexander 
 
   
 
						
						
					 | Дата: 09.11.2012 
 
 
	
			khmike Mikhail Sukhov pyhta4og Воспроизвел, будет фикс.  Выложил на КодеПлекс. Добрый день! Пришлите пожалуйста ссылку на версию с этим фиксом. А то я вижу последний update на coldplex - StockSharp 4.1.5 Oct 28, 2012 by mika_soukhov Смотрите в исходниках, в папке References.Тут | 
			
				|  | 
	
		| Спасибо: |   |  | 
			
				|  | 
		
			| 
 | 
		
			
				| Yury Smykalov 
 
   
 
						
						
					 | Дата: 10.11.2012 
 
 
	
			Проблема исправлена. Всем спасибо!
			
			
			
			
		
 | 
			
				|  | 
	
		| Спасибо: |   |  | 
			
				|  | 
		
			| 
 | 
		
			
				| Igor123 
 
   
 
						
						
					 | Дата: 14.11.2012 
 
 
	
			Yury Smykalov Проблема исправлена. Всем спасибо! У меня проблема не решилась, как было так и осталось, скачен был файл stocksharp-20984.zip и заменены файлы в Reference, что то не так?
			
			
			
			
		
 | 
			
				|  | 
	
		| Спасибо: |   |  | 
			
				|  | 
		
			| 
 | 
		
			
				| Yury Smykalov 
 
   
 
						
						
					 | Дата: 14.11.2012 
 
 
	
			Igor123 У меня проблема не решилась, как было так и осталось, скачен был файл stocksharp-20984.zip и заменены файлы в Reference, что то не так? Решение-то пересобрали после обновления dll-ек? Возможно, файлы библиотеки берутся по другому пути? Я обычно обновляю S#, копируя новое содержимое References прямо в папку bin/Debug, рядом с роботом. После пересборки решения подхватываются обновленные файлы.
			
			
			
			
		
 | 
			
				|  | 
	
		| Спасибо: |   |  | 
			
				|  |