﻿<?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">Проблема с использованием RelativeStrengthIndex</title>
  <id>~/topic/5403/problema-s-ispolzovaniem-relativestrengthindex/</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-04-24T17:55:56Z</updated>
  <logo>https://stocksharp.com/images/logo.png</logo>
  <link href="https://stocksharp.com/handlers/atom.ashx?category=topic&amp;id=5403" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.com/posts/m/34803/</id>
    <title type="text">Может проблема в том что индикатор составляться из 10 свечей, а вы ему дали только 1. Нет, это все в...</title>
    <published>2016-05-25T06:59:03Z</published>
    <updated>2016-05-25T06:59:03Z</updated>
    <author>
      <name>kusko</name>
      <uri>https://stocksharp.com/users/95404/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Иван З. &lt;a href="https://stocksharp.com/posts/m/34802/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;Может проблема в том что индикатор составляться из 10 свечей, а вы ему дали только 1.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Нет, это все в цикле.&lt;br /&gt;&lt;br /&gt;&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Quote:&lt;/span&gt;&lt;div class="innerquote"&gt;Возможно вам помогут исходники индикатора &lt;a target="_blank" href="https://github.com/StockSharp/StockSharp/blob/master/Algo/Indicators/RelativeStrengthIndex.cs" title="https://github.com/StockSharp/StockSharp/blob/master/Algo/Indicators/RelativeStrengthIndex.cs"&gt;https://github.com/Stock...RelativeStrengthIndex.cs&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Спасибо! Именно они и помогли! &lt;br /&gt;&lt;br /&gt;Проблема решена.&lt;br /&gt;Как оказалось индикатор работал. &lt;br /&gt;А получить выходное значение удалось таким способом:&lt;br /&gt;вместо &lt;br /&gt;rsi.Process(candle.ClosePrice);&lt;br /&gt;var RSI = rsi.GetCurrentValue();&lt;br /&gt;написал&lt;br /&gt;var RSI = rsi.Process(candle.ClosePrice);&lt;br /&gt;Переменная RSI = 0 до тех пор пока индикатор не наберет нужное количество свечей для расчета.&lt;br /&gt;&lt;br /&gt;Как всегда, все просто)))</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/34802/</id>
    <title type="text">Может проблема в том что индикатор составляться из 10 свечей, а вы ему дали только 1. Возможно вам п...</title>
    <published>2016-05-25T06:44:58Z</published>
    <updated>2016-05-25T06:44:58Z</updated>
    <author>
      <name>Иван З.</name>
      <uri>https://stocksharp.com/users/6502/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Может проблема в том что индикатор составляться из 10 свечей, а вы ему дали только 1.&lt;br /&gt;Возможно вам помогут исходники индикатора &lt;a target="_blank" href="https://github.com/StockSharp/StockSharp/blob/master/Algo/Indicators/RelativeStrengthIndex.cs
" title="https://github.com/StockSharp/StockSharp/blob/master/Algo/Indicators/RelativeStrengthIndex.cs
"&gt;https://github.com/Stock...elativeStrengthIndex.cs
&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/34801/</id>
    <title type="text">Решил дополнить пример SampleSmartSMA индикатором RSI Вызвал конструктор public RelativeStrengthInde...</title>
    <published>2016-05-25T02:44:14Z</published>
    <updated>2016-05-25T02:50:05Z</updated>
    <author>
      <name>kusko</name>
      <uri>https://stocksharp.com/users/95404/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Решил дополнить пример SampleSmartSMA индикатором RSI&lt;br /&gt;Вызвал конструктор&lt;br /&gt;public RelativeStrengthIndex rsi = new RelativeStrengthIndex() { Length = 10 };&lt;br /&gt;Предал цену закрытия свечи&lt;br /&gt;rsi.Process(candle.ClosePrice);&lt;br /&gt;Записываю результат&lt;br /&gt;var RSI = rsi.GetCurrentValue();&lt;br /&gt;Но при запуске пишет что Значение индикатора не содержит данных&lt;br /&gt;Отслеживал значение переменной RSI - всегда 0&lt;br /&gt;&lt;a href='http://pastenow.ru/OGK6.png' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="http://pastenow.ru/OGK6.png" style='max-width: 600px;' alt="Скрин ошибки" title="Скрин ошибки" /&gt;&lt;/a&gt;&lt;br /&gt;Создал тестовую переменную RSII что бы увидеть что значение candle не пустое.&lt;br /&gt;&lt;a href='http://pastenow.ru/OGK4.png' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="http://pastenow.ru/OGK4.png" style='max-width: 600px;' alt="Точка останова" title="Точка останова" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Подскажите, в чем ошибка может быть? &lt;br /&gt;Может ему еще какие-то значения нужно передавать?&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Привожу код SmaStrategy.cs&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Code&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;

namespace SampleSmartSMA
{
    using Ecng.Common;

    using StockSharp.Algo;
    using StockSharp.Algo.Candles;
    using StockSharp.Algo.Indicators;
    using StockSharp.Algo.Strategies;
    using StockSharp.Algo.Strategies.Quoting;
    using StockSharp.Messages;

    class SmaStrategy : Strategy
    {
        private readonly CandleSeries _series;
        private bool _isShortLessThenLong;


        public SmaStrategy(CandleSeries series, SimpleMovingAverage longSma, SimpleMovingAverage shortSma)
        {
            _series = series;

            LongSma = longSma;
            ShortSma = shortSma;
        }

        public SimpleMovingAverage LongSma { get; private set; }
        public SimpleMovingAverage ShortSma { get; private set; }

        protected override void OnStarted()
        {
            _series
                .WhenCandlesFinished()
                .Do(ProcessCandle)
                .Apply(this);

            // запоминаем текущее положение относительно друг друга
            _isShortLessThenLong = ShortSma.GetCurrentValue() &amp;lt; LongSma.GetCurrentValue();
           // var RSI = ShortSma.GetCurrentValue();
            base.OnStarted();
        }

        private void ProcessCandle(Candle candle)
        {
            // если наша стратегия в процессе остановки
            if (ProcessState == ProcessStates.Stopping)
            {
                // отменяем активные заявки
                CancelActiveOrders();
                return;
            }
            
            // добавляем новую свечу
            LongSma.Process(candle);
            ShortSma.Process(candle);
            
            // вычисляем новое положение относительно друг друга
            var isShortLessThenLong = ShortSma.GetCurrentValue() &amp;lt; LongSma.GetCurrentValue();

            // если произошло пересечение
            if (_isShortLessThenLong != isShortLessThenLong)
            {

                // если короткая меньше чем длинная, то индикатор &amp;quot;продажа&amp;quot;, иначе, &amp;quot;покупка&amp;quot;.
                Options.Item = isShortLessThenLong ? 1 : 2;
                // если короткая меньше чем длинная, то продажа, иначе, покупка.
//                var direction = isShortLessThenLong ? Sides.Sell : Sides.Buy;

                // вычисляем размер для открытия или переворота позы
                var volume = Position == 0 ? Volume : Position.Abs() * 2;

                // регистрируем заявку (обычным способом - лимитированной заявкой)
                //RegisterOrder(this.CreateOrder(direction, (decimal)Security.GetCurrentPrice(direction), volume));

                // переворачиваем позицию через котирование
//				var strategy = new MarketQuotingStrategy(direction, volume);
//				ChildStrategies.Add(strategy);
                
                // запоминаем текущее положение относительно друг друга
                _isShortLessThenLong = isShortLessThenLong;
            }

            var RSII = candle.ClosePrice;

            rsi.Process(candle.ClosePrice);
            var RSI = rsi.GetCurrentValue();
            
        }

        public RelativeStrengthIndex rsi = new RelativeStrengthIndex() { Length = 10 };

    }
}
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
</feed>