﻿<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type='text/css' href='https://stocksharp.com/css/style.css'?>
<?xml-stylesheet type='text/css' href='https://stocksharp.com/css/bbeditor.css'?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title type="html">Конвертация из csv в bin</title>
  <id>~/topic/3457/konvertatsiya-iz-csv-v-bin/</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-06-11T03:56:37Z</updated>
  <logo>https://stocksharp.com/images/logo.png</logo>
  <link href="https://stocksharp.com/handlers/atom.ashx?category=topic&amp;id=3457" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.com/posts/m/47442/</id>
    <title type="text">Спасибо, всё работает. Излазил весь Git, документацию и форум, чтобы понять как заюзать S# API , что...</title>
    <published>2019-05-09T12:08:23Z</published>
    <updated>2019-05-09T12:08:23Z</updated>
    <author>
      <name>AlgoCoder</name>
      <uri>https://stocksharp.com/users/101888/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Спасибо, всё работает. Излазил весь Git, документацию и форум, чтобы понять как заюзать S# API , чтобы сохранить свои произвольные свечи как это делает гидра (csv/bin), чтобы потом можно было работать с ними через исторический эмулятор.
Единственное, модифицировал обращение к свечному хранилищу:
var candleStorage = new StorageRegistry().GetCandleStorage(typeof(TimeFrameCandle), Security, Timeframe, new LocalMarketDataDrive(pathToStorage), StorageFormats.Binary);
Возможно это кому-то поможет.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/24469/</id>
    <title type="text">Я не могу сказать что я очень тщательно искал ответ на свой вопрос, но всёж в силу своих возможносте...</title>
    <published>2013-03-10T17:42:20Z</published>
    <updated>2013-03-10T17:42:20Z</updated>
    <author>
      <name>Flame</name>
      <uri>https://stocksharp.com/users/26883/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Я не могу сказать что я очень тщательно искал ответ на свой вопрос, но всёж в силу своих возможностей потратил не один час )
Не люблю задавать вопросы не найдя предварительно решения (возможно и корявого) )&lt;/p&gt;
&lt;p&gt;Вопрос в общем то у меня был простой, как котировки из обычного текстового файла закинуть, либо в bin формат гидры, либо напрямую получить из них CandleSeries
Вот что-то сделал. По крайней мере оно работает...&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-csharp"&gt;
private void ConvertRoutine()
{
	TimeSpan timeFrame = TimeSpan.FromMinutes(5);
	CandleManager cm = new CandleManager();
	Security sec = new Security
	{
		Id = &amp;quot;EUR5@EUR&amp;quot;,
		Code = &amp;quot;EUR5&amp;quot;,
		Name = &amp;quot;EURUSD&amp;quot;,
		MinStepSize = 0.0001M,
		ExchangeBoard = ExchangeBoard.Test,
	};
	CandleSeries cs = new CandleSeries(typeof(TimeFrameCandle), sec, timeFrame);
	cm.Start(cs, StartDate, EndDate);
	cm.Container.CandlesKeepTime = EndDate - StartDate;

	foreach (OHLC candle in candlesList)
	{
		if(candle.Date&amp;lt;StartDate || candle.Date&amp;gt;EndDate) continue;
		Candle newC = new TimeFrameCandle();
		newC.ClosePrice = candle.Close;
		newC.CloseTime = candle.Date;
		newC.CloseVolume = candle.Volume;
		newC.HighPrice = candle.High;
		newC.HighTime = candle.Date;
		newC.HighVolume = candle.Volume;
		newC.LowPrice = candle.Low;
		newC.LowTime = candle.Date;
		newC.LowVolume = candle.Volume;
		newC.OpenPrice = candle.Open;
		newC.OpenTime = candle.Date;
		newC.OpenVolume = candle.Volume;
		newC.Security = sec;
		newC.Arg = timeFrame;
		newC.RelativeVolume = 0;
		newC.Series = cs;
		newC.TotalPrice = candle.Close;
		newC.TotalVolume = candle.Volume;
		newC.State = CandleStates.Finished;
		cm.Container.AddCandle(cs, newC);
	}
	var storage = new StorageRegistry();
	var candleStorage =
		storage.GetCandleStorage&amp;lt;TimeFrameCandle, TimeSpan&amp;gt;(sec, timeFrame);
	candleStorage.Save(cs.GetCandles&amp;lt;TimeFrameCandle&amp;gt;());
}

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Здесь candlesList это массив объектов&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-csharp"&gt;
public class OHLC
{
	public DateTime Date { get; set; }
	public decimal Open { get; set; }
	public decimal High { get; set; }
	public decimal Low { get; set; }
	public decimal Close { get; set; }
	public int Volume { get; set; }
}

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Его мы получаем считывая текстовой файл&lt;/p&gt;
&lt;p&gt;&lt;a href="http://yadi.sk/d/vVnxFYWI3Ayiw" rel="nofollow" target="_blank"&gt;Ccылка&lt;/a&gt; на простенький конвертер с подобным кодом
&lt;a href="http://imgur.com/a/sZdkK" rel="nofollow" target="_blank"&gt;Скрины-инструкции&lt;/a&gt;
&lt;a href="http://pastebin.com/k0mN93Px" rel="nofollow" target="_blank"&gt;Код&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;**И собственно вопросы:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;как то же самое сделать адекватным образом? :)&lt;/li&gt;
&lt;li&gt;кроме того**
Если просто прописать в References dllки
Ecng.Common, Ecng.ComponentModel, Ecng.Serialization, StockSharp.Algo,
StockSharp.BusinessEntities, StockSharp.Logging
То при выполнении candleStorage.Save(cs.GetCandles&lt;TimeFrameCandle&gt;());
вылезает следующая ошибка:
Инициализатор типа &amp;quot;Ecng.Reflection.Emit.AssemblyHolder&amp;quot; выдал исключение.
Подробнее об ошибке по &lt;a href="http://pastebin.com/zHCRXdfm" rel="nofollow" target="_blank"&gt;ссылке&lt;/a&gt;, чтобы не захламлять пост
&lt;a href="http://yadi.sk/d/gFNi6xHP3B1ou" rel="nofollow" target="_blank"&gt;Ссылка&lt;/a&gt; на версию программы с ошибкой&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Если же заменить StockSharp.Algo.dll в References на исходники - проект StockSharp.Algo, то всё работает
Более того, если после этого удалить этот проект и опять поставить StockSharp.Algo.dll в References, то всё равно всё работает. Видимо что-то связанное с assembly - а в этой теме я не силён )&lt;/p&gt;
&lt;p&gt;Спасибо тем, кто смог осилить этот пост ))&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
</feed>