Skip to content

Commit a62a57d

Browse files
committed
Fix commit 25e621a
1 parent ef1f049 commit a62a57d

12 files changed

Lines changed: 55 additions & 53 deletions

Algo/Export/ExcelExporter.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ public class ExcelExporter(IExcelWorkerProvider provider, DataType dataType, Str
2424
{
2525
worker
2626
.SetCell(0, 0, LocalizedStrings.Id).SetStyle(0, typeof(string))
27-
.SetCell(1, 0, LocalizedStrings.Time).SetStyle(1, "yyyy-MM-dd HH:mm:ss.fff zzz")
27+
.SetCell(1, 0, LocalizedStrings.Time).SetStyle(1, "yyyy-MM-dd HH:mm:ss.fff")
2828
.SetCell(2, 0, LocalizedStrings.Price).SetStyle(2, typeof(decimal))
2929
.SetCell(3, 0, LocalizedStrings.Volume).SetStyle(3, typeof(decimal))
3030
.SetCell(4, 0, LocalizedStrings.Direction)
@@ -80,7 +80,7 @@ public class ExcelExporter(IExcelWorkerProvider provider, DataType dataType, Str
8080
{
8181
worker
8282
.SetCell(0, 0, LocalizedStrings.Id).SetStyle(0, typeof(string))
83-
.SetCell(1, 0, LocalizedStrings.Time).SetStyle(1, "yyyy-MM-dd HH:mm:ss.fff zzz")
83+
.SetCell(1, 0, LocalizedStrings.Time).SetStyle(1, "yyyy-MM-dd HH:mm:ss.fff")
8484
.SetCell(2, 0, LocalizedStrings.Price).SetStyle(2, typeof(decimal))
8585
.SetCell(3, 0, LocalizedStrings.Volume).SetStyle(3, typeof(decimal))
8686
.SetCell(4, 0, LocalizedStrings.Direction)
@@ -124,7 +124,7 @@ public class ExcelExporter(IExcelWorkerProvider provider, DataType dataType, Str
124124
return Do(worker =>
125125
{
126126
worker
127-
.SetCell(0, 0, LocalizedStrings.Time).SetStyle(0, "yyyy-MM-dd HH:mm:ss.fff zzz")
127+
.SetCell(0, 0, LocalizedStrings.Time).SetStyle(0, "yyyy-MM-dd HH:mm:ss.fff")
128128
.SetCell(1, 0, LocalizedStrings.Portfolio)
129129
.SetCell(2, 0, LocalizedStrings.TransactionId)
130130
.SetCell(3, 0, LocalizedStrings.OrderId)
@@ -193,7 +193,7 @@ public class ExcelExporter(IExcelWorkerProvider provider, DataType dataType, Str
193193

194194
worker
195195
.SetCell(0, rowIndex, LocalizedStrings.Time)
196-
.SetCell(1, rowIndex, message.ServerTime).SetStyle(1, "yyyy-MM-dd HH:mm:ss.fff zzz");
196+
.SetCell(1, rowIndex, message.ServerTime).SetStyle(1, "yyyy-MM-dd HH:mm:ss.fff");
197197

198198
var columnIndex = 0;
199199

Algo/Export/XmlExporter.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ namespace StockSharp.Algo.Export;
1313
/// <param name="stream">The stream to write to.</param>
1414
public class XmlExporter(DataType dataType, Stream stream) : BaseExporter(dataType)
1515
{
16-
private const string _timeFormat = "yyyy-MM-dd HH:mm:ss.fff zzz";
16+
private const string _timeFormat = "yyyy-MM-dd HH:mm:ss.fff";
1717

1818
/// <summary>
1919
/// Gets or sets a value indicating whether to indent elements.

Algo/Storages/Csv/BoardStateCsvSerializer.cs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,11 @@ public class BoardStateCsvSerializer(Encoding encoding) : CsvMarketDataSerialize
1212
/// <inheritdoc />
1313
protected override void Write(CsvFileWriter writer, BoardStateMessage data, IMarketDataMetaInfo metaInfo)
1414
{
15-
writer.WriteRow(
15+
writer.WriteRow(data.ServerTime.WriteTime().Concat(
1616
[
17-
data.ServerTime.WriteTime(),
18-
data.ServerTime.ToString("zzz"),
1917
data.BoardCode,
2018
((int)data.State).To<string>(),
21-
]);
19+
]));
2220

2321
metaInfo.LastTime = data.ServerTime;
2422
}

Algo/Storages/Csv/CandleCsvSerializer.cs

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -107,16 +107,14 @@ protected override void Write(CsvFileWriter writer, TCandleMessage data, IMarket
107107
if (data.State == CandleStates.Active)
108108
throw new ArgumentException(LocalizedStrings.CandleActiveNotSupport.Put(data), nameof(data));
109109

110-
writer.WriteRow(new[]
111-
{
112-
data.OpenTime.WriteTime(),
113-
data.OpenTime.ToString("zzz"),
110+
writer.WriteRow(data.OpenTime.WriteTime().Concat(
111+
[
114112
data.OpenPrice.ToString(),
115113
data.HighPrice.ToString(),
116114
data.LowPrice.ToString(),
117115
data.ClosePrice.ToString(),
118116
data.TotalVolume.ToString()
119-
}.Concat(data.BuildFrom.ToCsv()).Concat(
117+
]).Concat(data.BuildFrom.ToCsv()).Concat(
120118
[
121119
data.SeqNum.DefaultAsNull().ToString(),
122120
]));

Algo/Storages/Csv/CsvHelper.cs

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,17 +21,29 @@ public static DateTime ReadTime(this FastCsvReader reader, DateTime date)
2121
if (reader == null)
2222
throw new ArgumentNullException(nameof(reader));
2323

24-
return (date + reader.ReadString().ToTimeMls()).ToDateTimeOffset(TimeSpan.Parse(reader.ReadString().Remove("+"))).UtcDateTime;
24+
date += reader.ReadString().ToTimeMls();
25+
26+
var offset = reader.ReadString();
27+
28+
if (offset.IsEmpty())
29+
date = date.UtcKind();
30+
else
31+
date = date.ToDateTimeOffset(TimeSpan.Parse(offset.Remove("+"))).UtcDateTime;
32+
33+
return date;
2534
}
2635

2736
public static string WriteTime(this TimeSpan time)
2837
{
2938
return time.ToString(_tsFormat);
3039
}
3140

32-
public static string WriteTime(this DateTime time)
41+
public static string[] WriteTime(this DateTime time)
3342
{
34-
return time.TimeOfDay.ToString(_timeFormat);
43+
return [
44+
time.TimeOfDay.ToString(_timeFormat),
45+
string.Empty
46+
];
3547
}
3648

3749
public static string WriteDate(this DateTime time)

Algo/Storages/Csv/Level1CsvSerializer.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ protected override void Write(CsvFileWriter writer, Level1ChangeMessage data, IM
1818
{
1919
var row = new List<string>();
2020

21-
row.AddRange([data.ServerTime.WriteTime(), data.ServerTime.ToString("zzz")]);
21+
row.AddRange(data.ServerTime.WriteTime());
2222

2323
row.AddRange(data.BuildFrom.ToCsv());
2424

@@ -35,7 +35,8 @@ protected override void Write(CsvFileWriter writer, Level1ChangeMessage data, IM
3535
if (pair.Value == typeof(DateTime))
3636
{
3737
var date = (DateTime?)data.TryGet(field);
38-
row.AddRange([date?.WriteDate(), date?.WriteTime(), string.Empty]);
38+
row.Add(date?.WriteDate());
39+
row.AddRange(date?.WriteTime() ?? new string[2]);
3940
}
4041
else
4142
{
@@ -77,7 +78,7 @@ protected override Level1ChangeMessage Read(FastCsvReader reader, IMarketDataMet
7778

7879
if (dtStr != null)
7980
{
80-
level1.Changes.Add(field, (dtStr.ToDateTime() + reader.ReadString().ToTimeMls()).ToDateTimeOffset(TimeSpan.Parse(reader.ReadString().Remove("+"))).UtcDateTime);
81+
level1.Changes.Add(field, reader.ReadTime(dtStr.ToDateTime()));
8182
}
8283
else
8384
{

Algo/Storages/Csv/NewsCsvSerializer.cs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,8 @@ public class NewsCsvSerializer(Encoding encoding) : CsvMarketDataSerializer<News
1212
/// <inheritdoc />
1313
protected override void Write(CsvFileWriter writer, NewsMessage data, IMarketDataMetaInfo metaInfo)
1414
{
15-
writer.WriteRow(
15+
writer.WriteRow(data.ServerTime.WriteTime().Concat(
1616
[
17-
data.ServerTime.WriteTime(),
18-
data.ServerTime.ToString("zzz"),
1917
data.Headline,
2018
data.Source,
2119
data.Url,
@@ -27,7 +25,7 @@ protected override void Write(CsvFileWriter writer, NewsMessage data, IMarketDat
2725
data.SecurityId?.BoardCode,
2826
data.ExpiryDate?.WriteDateTimeEx(),
2927
data.SeqNum.DefaultAsNull().ToString(),
30-
]);
28+
]));
3129

3230
metaInfo.LastTime = data.ServerTime;
3331
}

Algo/Storages/Csv/OrderLogCsvSerializer.cs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,8 @@ public override IMarketDataMetaInfo CreateMetaInfo(DateTime date)
1919
/// <inheritdoc />
2020
protected override void Write(CsvFileWriter writer, ExecutionMessage data, IMarketDataMetaInfo metaInfo)
2121
{
22-
writer.WriteRow(
22+
writer.WriteRow(data.ServerTime.WriteTime().Concat(
2323
[
24-
data.ServerTime.WriteTime(),
25-
data.ServerTime.ToString("zzz"),
2624
data.TransactionId.ToString(),
2725
data.OrderId.ToString(),
2826
data.OrderPrice.ToString(),
@@ -46,7 +44,7 @@ protected override void Write(CsvFileWriter writer, ExecutionMessage data, IMark
4644
data.OpenInterest.ToString(),
4745
data.OriginSide.To<int?>().ToString(),
4846
data.TradeVolume.ToString()
49-
]);
47+
]));
5048

5149
metaInfo.LastTime = data.ServerTime;
5250
metaInfo.LastId = data.TransactionId;

Algo/Storages/Csv/PositionCsvSerializer.cs

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,18 +18,16 @@ protected override void Write(CsvFileWriter writer, PositionChangeMessage data,
1818
{
1919
var row = new List<string>();
2020

21-
row.AddRange(
21+
row.AddRange(data.ServerTime.WriteTime().Concat(
2222
[
23-
data.ServerTime.WriteTime(),
24-
data.ServerTime.ToString("zzz"),
2523
data.PortfolioName,
2624
data.ClientCode,
2725
data.DepoName,
2826
data.LimitType.To<int?>().ToString(),
2927
data.Description,
3028
data.StrategyId,
3129
data.Side.To<int?>().ToString(),
32-
]);
30+
]));
3331

3432
row.AddRange(data.BuildFrom.ToCsv());
3533

@@ -44,7 +42,8 @@ protected override void Write(CsvFileWriter writer, PositionChangeMessage data,
4442
if (type == PositionChangeTypes.ExpirationDate)
4543
{
4644
var date = (DateTime?)value;
47-
row.AddRange([date?.WriteDate(), date?.WriteTime(), date?.ToString("zzz")]);
45+
row.Add(date?.WriteDate());
46+
row.AddRange(date?.WriteTime() ?? new string[2]);
4847
}
4948
else
5049
row.Add(value?.ToString());
@@ -104,7 +103,7 @@ protected override PositionChangeMessage Read(FastCsvReader reader, IMarketDataM
104103

105104
if (dtStr != null)
106105
{
107-
posMsg.Changes.Add(type, (dtStr.ToDateTime() + reader.ReadString().ToTimeMls()).ToDateTimeOffset(TimeSpan.Parse(reader.ReadString().Remove("+"))));
106+
posMsg.Changes.Add(type, reader.ReadTime(dtStr.ToDateTime()));
108107
}
109108
else
110109
{

Algo/Storages/Csv/QuoteCsvSerializer.cs

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -39,10 +39,8 @@ protected override void Write(CsvFileWriter writer, NullableTimeQuoteChange data
3939
if (quote != null && quote.Value.Volume < 0)
4040
throw new ArgumentOutOfRangeException(nameof(data), quote.Value.Volume, LocalizedStrings.InvalidValue);
4141

42-
writer.WriteRow(new[]
43-
{
44-
data.ServerTime.WriteTime(),
45-
data.ServerTime.ToString("zzz"),
42+
writer.WriteRow(data.ServerTime.WriteTime().Concat(
43+
[
4644
quote?.Price.To<string>(),
4745
quote?.Volume.To<string>(),
4846
data.Side.To<int>().ToString(),
@@ -53,7 +51,7 @@ protected override void Write(CsvFileWriter writer, NullableTimeQuoteChange data
5351
quote?.Action.To<int?>().ToString(),
5452
data?.State.To<int?>().ToString(),
5553
data?.SeqNum.ToString(),
56-
}.Concat(data.BuildFrom.ToCsv()));
54+
]).Concat(data.BuildFrom.ToCsv()));
5755

5856
metaInfo.LastTime = data.ServerTime;
5957
}

0 commit comments

Comments
 (0)