﻿<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type='text/css' href='https://stocksharp.ru/css/style.css'?>
<?xml-stylesheet type='text/css' href='https://stocksharp.ru/css/bbeditor.css'?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title type="html">Ордера выставляются с отстванием на 3 часа</title>
  <id>~/topic/15851/ordera-vystavlyayutsya-s-otstvaniem-na-3-chasa/</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-04-30T13:24:29Z</updated>
  <logo>https://stocksharp.ru/images/logo.png</logo>
  <link href="https://stocksharp.ru/handlers/atom.ashx?category=topic&amp;id=15851" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.ru/posts/m/56215/</id>
    <title type="text">сделки показываются во временной зоне биржи, которую вы использовали при создании инструмента Exchan...</title>
    <published>2021-05-18T12:06:48Z</published>
    <updated>2021-05-18T12:06:48Z</updated>
    <author>
      <name>Sergey Sokolov</name>
      <uri>https://stocksharp.ru/users/6014/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">сделки показываются во временной зоне биржи, которую вы использовали при создании инструмента ExchangeBoard.Cryptopia (временная зона UTC+0)&lt;br /&gt;вы можете настроить ось графика чтобы она также была в этой зоне.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/56213/</id>
    <title type="text">using System; using System.Windows; using System.Windows.Media; using Ecng.Collections; using Ecng.C...</title>
    <published>2021-05-18T09:12:53Z</published>
    <updated>2021-05-18T09:12:53Z</updated>
    <author>
      <name>dimdr</name>
      <uri>https://stocksharp.ru/users/73328/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">using System;&lt;br /&gt;using System.Windows;&lt;br /&gt;using System.Windows.Media;&lt;br /&gt;&lt;br /&gt;using Ecng.Collections;&lt;br /&gt;using Ecng.Common;&lt;br /&gt;&lt;br /&gt;using StockSharp.Algo;&lt;br /&gt;using StockSharp.Algo.Candles;&lt;br /&gt;using StockSharp.Algo.Commissions;&lt;br /&gt;using StockSharp.Algo.Indicators;&lt;br /&gt;using StockSharp.Algo.Storages;&lt;br /&gt;using StockSharp.Algo.Strategies;&lt;br /&gt;using StockSharp.Algo.Testing;&lt;br /&gt;using StockSharp.BusinessEntities;&lt;br /&gt;using StockSharp.Logging;&lt;br /&gt;using StockSharp.Messages;&lt;br /&gt;using StockSharp.Configuration;&lt;br /&gt;using StockSharp.Xaml;&lt;br /&gt;using StockSharp.Xaml.Charting;&lt;br /&gt;using StockSharp.Xaml.Charting.IndicatorPainters;&lt;br /&gt;namespace _02_bolinger_band_strategy&lt;br /&gt;{&lt;br /&gt;    /// &amp;lt;summary&amp;gt;&lt;br /&gt;    /// Interaction logic for MainWindow.xaml&lt;br /&gt;    /// &amp;lt;/summary&amp;gt;&lt;br /&gt;    public partial class MainWindow &lt;br /&gt;    {&lt;br /&gt;        private HistoryEmulationConnector _connector;&lt;br /&gt;        private ChartCandleElement _candleElement;&lt;br /&gt;        private ChartTradeElement _tradesElem;&lt;br /&gt;        private ChartIndicatorElement _bollingerElem;&lt;br /&gt;        private BollingerBands _bollingerBands;&lt;br /&gt;        private CandleSeries _candleSeries;&lt;br /&gt;        private Security _security;&lt;br /&gt;        private Portfolio _portfolio;&lt;br /&gt;        private readonly LogManager _logManager;&lt;br /&gt;        private Strategy _strategy;&lt;br /&gt;        private readonly string _pathHistory = @&amp;quot;..\..\..\..\..\\History&amp;quot;.ToFullPath();&lt;br /&gt;        private ChartBandElement _pnl;&lt;br /&gt;        private ChartBandElement _unrealizedPnL;&lt;br /&gt;        private ChartBandElement _commissionCurve;&lt;br /&gt;&lt;br /&gt;        public MainWindow()&lt;br /&gt;        {&lt;br /&gt;            InitializeComponent();&lt;br /&gt;&lt;br /&gt;            _logManager = new LogManager();&lt;br /&gt;            _logManager.Listeners.Add(new FileLogListener(&amp;quot;log.txt&amp;quot;));&lt;br /&gt;            _logManager.Listeners.Add(new GuiLogListener(Monitor));&lt;br /&gt;&lt;br /&gt;            DatePickerBegin.SelectedDate = new DateTime(2021, 02, 09);&lt;br /&gt;            DatePickerEnd.SelectedDate = new DateTime(2021, 02, 11);&lt;br /&gt;&lt;br /&gt;            CandleSettingsEditor.Settings = new CandleSeries&lt;br /&gt;            {&lt;br /&gt;                CandleType = typeof(TimeFrameCandle),&lt;br /&gt;                Arg = TimeSpan.FromMinutes(1),&lt;br /&gt;            };&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;		private void Start_Click(object sender, RoutedEventArgs e)&lt;br /&gt;		{&lt;br /&gt;			_security = new Security&lt;br /&gt;			{&lt;br /&gt;				Id = &amp;quot;ETHUSD_1@FINAM&amp;quot;,&lt;br /&gt;				Code = &amp;quot;ETHUSD_1&amp;quot;,&lt;br /&gt;				PriceStep = 0.0001m,&lt;br /&gt;				Board = ExchangeBoard.Cryptopia&lt;br /&gt;			};&lt;br /&gt;			_portfolio = new Portfolio { Name = &amp;quot;test account&amp;quot;, BeginValue = 1 };&lt;br /&gt;			var storageRegistry = new StorageRegistry&lt;br /&gt;			{&lt;br /&gt;				DefaultDrive = new LocalMarketDataDrive(_pathHistory),&lt;br /&gt;			};&lt;br /&gt;&lt;br /&gt;			_connector = new HistoryEmulationConnector(new[] { _security }, new[] { _portfolio })&lt;br /&gt;			{&lt;br /&gt;				HistoryMessageAdapter =&lt;br /&gt;				{&lt;br /&gt;					StorageRegistry = storageRegistry,&lt;br /&gt;					StorageFormat = StorageFormats.Binary,&lt;br /&gt;					StartDate = DatePickerBegin.SelectedDate.Value.ChangeKind(DateTimeKind.Utc),&lt;br /&gt;					StopDate = DatePickerEnd.SelectedDate.Value.ChangeKind(DateTimeKind.Utc),&lt;br /&gt;				},&lt;br /&gt;				LogLevel = LogLevels.Info,&lt;br /&gt;			};&lt;br /&gt;&lt;br /&gt;			_logManager.Sources.Add(_connector);&lt;br /&gt;			_candleSeries = new CandleSeries(CandleSettingsEditor.Settings.CandleType, _security,&lt;br /&gt;				CandleSettingsEditor.Settings.Arg)&lt;br /&gt;			{&lt;br /&gt;				//BuildCandlesMode = MarketDataBuildModes.Build,&lt;br /&gt;				BuildCandlesFrom2 = DataType.CandleTimeFrame,&lt;br /&gt;			};&lt;br /&gt;&lt;br /&gt;			InitChart();&lt;br /&gt;			_connector.CandleSeriesProcessing += Connector_CandleSeriesProcessing;&lt;br /&gt;			//-------------------------------------------------&lt;br /&gt;			_connector.NewSecurity += Connector_NewSecurity;&lt;br /&gt;			_connector.NewOrder += OrderGrid.Orders.Add;&lt;br /&gt;			_connector.OrderRegisterFailed += OrderGrid.AddRegistrationFail;&lt;br /&gt;&lt;br /&gt;			_bollingerBands = new BollingerBands();&lt;br /&gt;			_strategy = new BoligerStrategy_001(_candleSeries)&lt;br /&gt;			{&lt;br /&gt;				Security = _security,&lt;br /&gt;				Connector = _connector,&lt;br /&gt;				Portfolio = _portfolio,&lt;br /&gt;				BollingerBands = new BollingerBands()&lt;br /&gt;			};&lt;br /&gt;&lt;br /&gt;			_logManager.Sources.Add(_strategy);&lt;br /&gt;			_strategy.NewMyTrade += MyTradeGrid.Trades.Add;&lt;br /&gt;			_strategy.NewMyTrade += FirstStrategy_NewMyTrade;&lt;br /&gt;			_strategy.PnLChanged += Strategy_PnLChanged;&lt;br /&gt;&lt;br /&gt;			CollectionHelper.AddRange(StatisticParameterGrid.Parameters, _strategy.StatisticManager.Parameters);&lt;br /&gt;&lt;br /&gt;			_connector.Connect();&lt;br /&gt;			_connector.SendInMessage(new CommissionRuleMessage&lt;br /&gt;			{&lt;br /&gt;				Rule = new CommissionPerTradeRule { Value = 0.01m }&lt;br /&gt;			});&lt;br /&gt;		}&lt;br /&gt;&lt;br /&gt;		private void InitChart()&lt;br /&gt;		{&lt;br /&gt;			//-----------------Chart--------------------------------&lt;br /&gt;			Chart.ClearAreas();&lt;br /&gt;&lt;br /&gt;			var area = new ChartArea();&lt;br /&gt;			Chart.AddArea(area);&lt;br /&gt;&lt;br /&gt;			_candleElement = new ChartCandleElement();&lt;br /&gt;			Chart.AddElement(area, _candleElement);&lt;br /&gt;&lt;br /&gt;			_bollingerElem = new ChartIndicatorElement()&lt;br /&gt;			{&lt;br /&gt;				IndicatorPainter = new BollingerBandsPainter()&lt;br /&gt;			};&lt;br /&gt;			Chart.AddElement(area, _bollingerElem);&lt;br /&gt;&lt;br /&gt;			_tradesElem = new ChartTradeElement { FullTitle = &amp;quot;Trade&amp;quot; };&lt;br /&gt;			Chart.AddElement(area, _tradesElem);&lt;br /&gt;&lt;br /&gt;			_pnl = EquityCurveChart.CreateCurve(&amp;quot;PNL&amp;quot;, Colors.Green, ChartIndicatorDrawStyles.Area);&lt;br /&gt;			_unrealizedPnL = EquityCurveChart.CreateCurve(&amp;quot;unrealizedPnL&amp;quot;, Colors.Black, ChartIndicatorDrawStyles.Line);&lt;br /&gt;			_commissionCurve = EquityCurveChart.CreateCurve(&amp;quot;commissionCurve&amp;quot;, Colors.Red, ChartIndicatorDrawStyles.Line);&lt;br /&gt;		}&lt;br /&gt;&lt;br /&gt;		private void Connector_NewSecurity(Security security)&lt;br /&gt;		{&lt;br /&gt;			//_connector.RegisterTrades(security); // - out of date&lt;br /&gt;			_connector.SubscribeTrades(security);&lt;br /&gt;&lt;br /&gt;			_strategy.Start();&lt;br /&gt;			_connector.Start();&lt;br /&gt;		}&lt;br /&gt;&lt;br /&gt;		private void Strategy_PnLChanged()&lt;br /&gt;		{&lt;br /&gt;			var data = new ChartDrawData();&lt;br /&gt;			data.Group(_strategy.CurrentTime)&lt;br /&gt;				.Add(_pnl, _strategy.PnL)&lt;br /&gt;				.Add(_unrealizedPnL, _strategy.PnLManager.UnrealizedPnL ?? 0)&lt;br /&gt;				.Add(_commissionCurve, _strategy.Commission ?? 0);&lt;br /&gt;			EquityCurveChart.Draw(data);&lt;br /&gt;		}&lt;br /&gt;&lt;br /&gt;		private void FirstStrategy_NewMyTrade(MyTrade myTrade)&lt;br /&gt;		{&lt;br /&gt;			var data = new ChartDrawData();&lt;br /&gt;			data.Group(myTrade.Trade.Time)&lt;br /&gt;				.Add(_tradesElem, myTrade);&lt;br /&gt;			Chart.Draw(data);&lt;br /&gt;		}&lt;br /&gt;&lt;br /&gt;		private void Connector_CandleSeriesProcessing(CandleSeries candleSeries, Candle candle)&lt;br /&gt;		{&lt;br /&gt;			if (candle.State != CandleStates.Finished) return;&lt;br /&gt;			var s = _bollingerBands.Process(candle);&lt;br /&gt;&lt;br /&gt;			var data = new ChartDrawData();&lt;br /&gt;			data.Group(candle.OpenTime)&lt;br /&gt;				.Add(_candleElement, candle)&lt;br /&gt;				.Add(_bollingerElem, s);&lt;br /&gt;			Chart.Draw(data);&lt;br /&gt;		}&lt;br /&gt;	}&lt;br /&gt;}</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/56212/</id>
    <title type="text">можете выложить те данные которые вы используете для тестирования?</title>
    <published>2021-05-18T08:46:44Z</published>
    <updated>2021-05-18T08:46:44Z</updated>
    <author>
      <name>Sergey Sokolov</name>
      <uri>https://stocksharp.ru/users/6014/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">можете выложить те данные которые вы используете для тестирования?</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/56210/</id>
    <title type="text">Добрый день Тестирую стратегию bolinger_band_strategy из 8 урока. Перед этим закачал исторические да...</title>
    <published>2021-05-17T11:32:30Z</published>
    <updated>2021-05-17T11:32:30Z</updated>
    <author>
      <name>dimdr</name>
      <uri>https://stocksharp.ru/users/73328/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Добрый день&lt;br /&gt;&lt;br /&gt;Тестирую стратегию bolinger_band_strategy из 8 урока. Перед этим закачал исторические данные с биржи бинанс. Смотрю файл csv - везде стоит +3 часа.  При выставлении ордера стратегия берет нужную свечку и выставляет ордер по цене открытия. Но на графике и в логах  ордер выставляется с отставанием на 3 часа. Как это можно поправить?</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
</feed>