﻿<?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">Пример рендерера</title>
  <id>~/topic/4441/primer-renderera/</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-04-21T11:10:31Z</updated>
  <logo>https://stocksharp.com/images/logo.png</logo>
  <link href="https://stocksharp.com/handlers/atom.ashx?category=topic&amp;id=4441" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.com/posts/m/30134/</id>
    <title type="text">Спасибо! то что надо.</title>
    <published>2014-03-28T13:44:35Z</published>
    <updated>2014-03-28T13:44:35Z</updated>
    <author>
      <name>towace</name>
      <uri>https://stocksharp.com/users/6501/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Спасибо! то что надо.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/30132/</id>
    <title type="text"> /// /// Рендерер для . /// public class IchimokuPainter : BaseChartIndicatorPainter { private Color...</title>
    <published>2014-03-28T09:35:49Z</published>
    <updated>2014-03-28T09:35:49Z</updated>
    <author>
      <name>esper</name>
      <uri>https://stocksharp.com/users/5990/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;div class='spoilertitle'&gt;&lt;input type='button' value='Show spoiler' class='btn btn-primary' onclick="toggleSpoiler(this, 'spolier_dc78c109a364404a9f26ba8655828d81');" title='Show spoiler' /&gt;&lt;/div&gt;&lt;div class='spoilerbox' id='spolier_dc78c109a364404a9f26ba8655828d81' style='display:none'&gt;&lt;div class="code"&gt;&lt;strong&gt;Code&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;
	/// &amp;lt;summary&amp;gt;
	/// Рендерер для &amp;lt;see cref=&amp;quot;Ichimoku&amp;quot;/&amp;gt;.
	/// &amp;lt;/summary&amp;gt;
	public class IchimokuPainter : BaseChartIndicatorPainter&amp;lt;Ichimoku&amp;gt;
	{
		private Color _tenkanColor = Colors.Red;

		/// &amp;lt;summary&amp;gt;
		/// Цвет Tenkan линии.
		/// &amp;lt;/summary&amp;gt;
		[DisplayName(&amp;quot;Цвет Tenkan&amp;quot;)]
		[Description(&amp;quot;Цвет Tenkan линии.&amp;quot;)]
		public Color TenkanColor
		{
			get { return _tenkanColor; }
			set { _tenkanColor = value; }
		}

		private Color _kijunColor = Colors.Blue;

		/// &amp;lt;summary&amp;gt;
		/// Цвет Kijun линии.
		/// &amp;lt;/summary&amp;gt;
		[DisplayName(&amp;quot;Цвет Kijun&amp;quot;)]
		[Description(&amp;quot;Цвет Kijun линии.&amp;quot;)]
		public Color KijunColor
		{
			get { return _kijunColor; }
			set { _kijunColor = value; }
		}

		private Color _senkouAColor = Colors.SandyBrown;

		/// &amp;lt;summary&amp;gt;
		/// Цвет SenkouA линии.
		/// &amp;lt;/summary&amp;gt;
		[DisplayName(&amp;quot;Цвет SenkouA&amp;quot;)]
		[Description(&amp;quot;Цвет SenkouA линии.&amp;quot;)]
		public Color SenkouAColor
		{
			get { return _senkouAColor; }
			set { _senkouAColor = value; }
		}

		private Color _senkouBColor = Colors.Thistle;

		/// &amp;lt;summary&amp;gt;
		/// Цвет SenkouA линии.
		/// &amp;lt;/summary&amp;gt;
		[DisplayName(&amp;quot;Цвет SenkouB&amp;quot;)]
		[Description(&amp;quot;Цвет SenkouB линии.&amp;quot;)]
		public Color SenkouBColor
		{
			get { return _senkouBColor; }
			set { _senkouBColor = value; }
		}

		private Color _chinkouColor = Colors.Green;

		/// &amp;lt;summary&amp;gt;
		/// Цвет Chinkou линии.
		/// &amp;lt;/summary&amp;gt;
		[DisplayName(&amp;quot;Цвет Chinkou&amp;quot;)]
		[Description(&amp;quot;Цвет Chinkou линии.&amp;quot;)]
		public Color ChinkouColor
		{
			get { return _chinkouColor; }
			set { _chinkouColor = value; }
		}

		/// &amp;lt;summary&amp;gt;
		/// Инициализировать рендерер.
		/// &amp;lt;/summary&amp;gt;
		/// &amp;lt;param name=&amp;quot;areaName&amp;quot;&amp;gt;Название области.&amp;lt;/param&amp;gt;
		/// &amp;lt;param name=&amp;quot;isIndexed&amp;quot;&amp;gt;Индексирована ли область.&amp;lt;/param&amp;gt;
		/// &amp;lt;returns&amp;gt;Графические данные.&amp;lt;/returns&amp;gt;
		public override IDictionary&amp;lt;IIndicator, ChartIndicatorElement&amp;gt; Init(String areaName, bool isIndexed)
		{
			IndicatorSeries.Clear();

			IndicatorSeries.Add(Indicator.Tenkan, new ChartIndicatorElement
			{
				Indicator = Indicator.Tenkan,
				DrawStyle = ChartIndicatorDrawStyles.Line,
				Color = TenkanColor,
				StrokeThickness = BaseElement.StrokeThickness,
				Title = &amp;quot;Tenkan&amp;quot;
			});

			IndicatorSeries.Add(Indicator.Kijun, new ChartIndicatorElement
			{
				Indicator = Indicator.Kijun,
				DrawStyle = ChartIndicatorDrawStyles.Line,
				Color = KijunColor,
				StrokeThickness = BaseElement.StrokeThickness,
				Title = &amp;quot;Kijun&amp;quot;
			});

			IndicatorSeries.Add(Indicator.SenkouA, new ChartIndicatorElement
			{
				Indicator = Indicator.SenkouA,
				DrawStyle = ChartIndicatorDrawStyles.Band,
				Color = SenkouAColor,
				AdditionalColor = SenkouBColor,
				StrokeThickness = BaseElement.StrokeThickness,
				Title = &amp;quot;SenkouA(B)&amp;quot;
			});

			IndicatorSeries.Add(Indicator.Chinkou, new ChartIndicatorElement
			{
				Indicator = Indicator.Chinkou,
				DrawStyle = ChartIndicatorDrawStyles.Line,
				Color = ChinkouColor,
				StrokeThickness = BaseElement.StrokeThickness,
				Title = &amp;quot;Chinkou&amp;quot;
			});

			return IndicatorSeries;
		}

		/// &amp;lt;summary&amp;gt;
		/// Обработать новые значения.
		/// &amp;lt;/summary&amp;gt;
		/// &amp;lt;param name=&amp;quot;time&amp;quot;&amp;gt;Временная отметка формирования новых данных.&amp;lt;/param&amp;gt;
		/// &amp;lt;param name=&amp;quot;value&amp;quot;&amp;gt;Значения индикатора.&amp;lt;/param&amp;gt;
		/// &amp;lt;param name=&amp;quot;draw&amp;quot;&amp;gt;Метод отрисовки значения на графике.&amp;lt;/param&amp;gt;
		/// &amp;lt;returns&amp;gt;Новые значения для отображения на графике.&amp;lt;/returns&amp;gt;
		public override IEnumerable&amp;lt;decimal&amp;gt; ProcessValues(DateTime time, ChartIndicatorValue value, DrawHandler draw)
		{
			var newYValues = new List&amp;lt;decimal&amp;gt;();

			if (!value.IsFormed)
			{
				draw(Indicator.Tenkan, 0, double.NaN);
				draw(Indicator.Kijun, 0, double.NaN);
				draw(Indicator.SenkouA, 0, double.NaN, double.NaN);
				draw(Indicator.Chinkou, 0, double.NaN);
			}
			else
			{
				var values = value.GetSimpleValues();

				var tenkanY = values[Indicator.Tenkan].GetValue&amp;lt;decimal&amp;gt;();
				var kijunY = values[Indicator.Kijun].GetValue&amp;lt;decimal&amp;gt;();
				var senkouaY = values[Indicator.SenkouA].GetValue&amp;lt;decimal&amp;gt;();
				var senkoubY = values[Indicator.SenkouB].GetValue&amp;lt;decimal&amp;gt;();
				var chinkouY = values[Indicator.Chinkou].GetValue&amp;lt;decimal&amp;gt;();

				draw(Indicator.Tenkan, 0, (double)tenkanY);
				newYValues.Add(tenkanY);
				
				draw(Indicator.Kijun, 0, (double)kijunY);
				newYValues.Add(kijunY);

				draw(Indicator.SenkouA, 0, (double)senkouaY, (double)senkoubY);
				newYValues.Add(senkouaY);
				newYValues.Add(senkoubY);

				draw(Indicator.Chinkou, 0, double.NaN);
				draw(Indicator.Chinkou, Indicator.Kijun.Length, (double)chinkouY);
				newYValues.Add(chinkouY);
			}

			return newYValues;
		}
	}&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/30130/</id>
    <title type="text">Приветствую, имею индикатор с несколькими линиями, но вот столкнулся с проблемой его раскараски ), м...</title>
    <published>2014-03-28T03:26:21Z</published>
    <updated>2014-03-28T03:26:21Z</updated>
    <author>
      <name>towace</name>
      <uri>https://stocksharp.com/users/6501/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Приветствую, имею индикатор с несколькими линиями, но вот столкнулся с проблемой его раскараски ), может есть у кого пример рендерера? в документации ни слова об этом.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
</feed>