﻿<?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">Конвертация из csv в bin</title>
  <id>~/topic/3457/konvertatsiya-iz-csv-v-bin/</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-04-18T12:52:41Z</updated>
  <logo>https://stocksharp.ru/images/logo.png</logo>
  <link href="https://stocksharp.ru/handlers/atom.ashx?category=topic&amp;id=3457" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.ru/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.ru/users/101888/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Спасибо, всё работает. Излазил весь Git, документацию и форум, чтобы понять как заюзать S# API , чтобы сохранить свои произвольные свечи как это делает гидра (csv/bin), чтобы потом можно было работать с ними через исторический эмулятор.&lt;br /&gt;Единственное, модифицировал обращение к свечному хранилищу:&lt;br /&gt;var candleStorage = new StorageRegistry().GetCandleStorage(typeof(TimeFrameCandle), Security, Timeframe, new LocalMarketDataDrive(pathToStorage), StorageFormats.Binary);&lt;br /&gt;Возможно это кому-то поможет.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/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.ru/users/26883/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Я не могу сказать что я очень тщательно искал ответ на свой вопрос, но всёж в силу своих возможностей потратил не один час )&lt;br /&gt;Не люблю задавать вопросы не найдя предварительно решения (возможно и корявого) )&lt;br /&gt;&lt;br /&gt;Вопрос в общем то у меня был простой, как котировки из обычного текстового файла закинуть, либо в bin формат гидры, либо напрямую получить из них CandleSeries&lt;br /&gt;Вот что-то сделал. По крайней мере оно работает...&lt;br /&gt;&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush: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;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Здесь candlesList это массив объектов&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush: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;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Его мы получаем считывая текстовой файл&lt;br /&gt;&lt;br /&gt;&lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAADPSDpWMWjYmE3Esu0urmEdtV1Ydalut4hc4hmbJBlZ0Q" title="http://yadi.sk/d/vVnxFYWI3Ayiw"&gt;Ccылка&lt;/a&gt; на простенький конвертер с подобным кодом&lt;br /&gt;&lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAABgrImyG3HoTbmeCapykhj-DljpgyIYowIDyOZ5_ol9Uw" title="http://imgur.com/a/sZdkK"&gt;Скрины-инструкции&lt;/a&gt;&lt;br /&gt;&lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAACGbKb4OGqyVRvP33DJbGKgnQ5DZBnKSNeRri37gmdEVA" title="http://pastebin.com/k0mN93Px"&gt;Код&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;И собственно вопросы: &lt;br /&gt;- как то же самое сделать адекватным образом? :)&lt;br /&gt;- кроме того&lt;/b&gt;&lt;br /&gt;Если просто прописать в References dllки&lt;br /&gt;Ecng.Common, Ecng.ComponentModel, Ecng.Serialization, StockSharp.Algo,&lt;br /&gt;StockSharp.BusinessEntities, StockSharp.Logging&lt;br /&gt;То при выполнении candleStorage.Save(cs.GetCandles&amp;lt;TimeFrameCandle&amp;gt;());&lt;br /&gt;вылезает следующая ошибка:&lt;br /&gt;Инициализатор типа &amp;quot;Ecng.Reflection.Emit.AssemblyHolder&amp;quot; выдал исключение.&lt;br /&gt;Подробнее об ошибке по &lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAACGbKb4OGqyVRvP33DJbGKg1OqbeiATfYs_uiLtIh-l0g" title="http://pastebin.com/zHCRXdfm"&gt;ссылке&lt;/a&gt;, чтобы не захламлять пост&lt;br /&gt;&lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAADPSDpWMWjYmE3Esu0urmEduPwSoK9n3Cfym6cK8sgRUQ" title="http://yadi.sk/d/gFNi6xHP3B1ou"&gt;Ссылка&lt;/a&gt; на версию программы с ошибкой&lt;br /&gt;&lt;br /&gt;Если же заменить StockSharp.Algo.dll в References на исходники - проект StockSharp.Algo, то всё работает&lt;br /&gt;Более того, если после этого удалить этот проект и опять поставить StockSharp.Algo.dll в References, то всё равно всё работает. Видимо что-то связанное с assembly - а в этой теме я не силён )&lt;br /&gt;&lt;br /&gt;Спасибо тем, кто смог осилить этот пост ))</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
</feed>