﻿<?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">Торговая система на основе индикатора ConnorsRSI</title>
  <id>~/topic/334/torgovaya-sistema-na-osnove-indikatora-connorsrsi/</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-04-21T19:13:49Z</updated>
  <logo>https://stocksharp.com/images/logo.png</logo>
  <link href="https://stocksharp.com/handlers/atom.ashx?category=topic&amp;id=334" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.com/posts/m/168/</id>
    <title type="text">ConnorsRSI 102396 В этой статье я хотел бы рассказать вам о новом индикаторе, который был недавно ре...</title>
    <published>2013-09-24T15:53:46Z</published>
    <updated>2016-07-28T17:57:41Z</updated>
    <author>
      <name>Валентин Мирошниченко</name>
      <uri>https://stocksharp.com/users/6156/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;b&gt;&lt;span style="font-size:120%"&gt;ConnorsRSI&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href='https://stocksharp.com/file/102396/3.PNG' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="https://stocksharp.com/file/102396/3.PNG?size=800x800" alt=""/&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="left"&gt;В этой статье я хотел бы рассказать вам о новом индикаторе, который был недавно реализован в &lt;b&gt;Wealth lab&lt;/b&gt;. Данный индикатор называется &lt;b&gt;ConnorsRSI&lt;/b&gt;. &lt;br /&gt;Данный индикатор был разработан Ларри Коннорсом из Connors Research его доклад вы легко сможете найти в интернете по запросу &lt;br /&gt;“Connors Research Trading Strategy Series An Introduction to ConnorsRSI”. И так давайте рассмотрим, что же из себя представляет индикатор &lt;b&gt;ConnorsRSI&lt;/b&gt;. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;ConnorsRSI&lt;/b&gt; состоит из трех компонентов. Два из них используют расчеты, проводимые индикатором &lt;b&gt;RSI&lt;/b&gt;. &lt;br /&gt;Третий компонент измеряет последние ценовые изменения по шкале от 0 до 100. В сочетании все эти три компонента формируют осциллятор, то есть индикатор, &lt;br /&gt;который колеблется в диапазоне от 0 до 100 и указывает на уровень перекупленности или перепроданности. А сейчас, давайте вспомним, что из себя представляет &lt;b&gt;RSI&lt;/b&gt;. &lt;br /&gt;&lt;br /&gt;Индикатор &lt;b&gt;RSI&lt;/b&gt;сравнивает величину подъемов цены актива за последнее время с величиной ее падений и предоставляет эту информацию в виде числа находящегося &lt;br /&gt;в диапазоне от 0 до 100. Единственный параметр данного индикатора это временной период, то есть количество свечек используемых в расчете индикатора. &lt;br /&gt;В индикатор заложена простая идея: &lt;br /&gt;Рост цены отражает силу быков, ее падение говорит о преимуществе медведей. Проше говоря, индикатор RSI считает долю бычьих белых свечей на выбранном интервале. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Если RSI&amp;gt;70%, то на рынке правят быки, цены растут. &lt;br /&gt;Если же RSI&amp;lt;30%, то настроение определяют медведи, цены падают.&lt;/b&gt; &lt;br /&gt;&lt;br /&gt;Ну а теперь давайте вернемся к нашему индикатору &lt;b&gt;ConnorsRSI&lt;/b&gt;. Как я уже говорил, ConnorsRSI состоит из 3 компонентов. &lt;br /&gt;&lt;br /&gt;Ценовой Импульс &lt;b&gt;(Price Momentum)&lt;/b&gt; - использует индикатор RSI для измерения уровней перекупленности и перепроданности рынка.&lt;br /&gt;По умолчанию, &lt;b&gt;ConnorsRSI &lt;/b&gt;использует &lt;b&gt;RSI &lt;/b&gt;с периодом 3 применительно к ценам закрытия. Будем ссылаться на это значение как на RSI(Close,3).&lt;br /&gt;Длительность Бычьего/Медвежьего Тренда: Когда  текущая цена закрытия ниже предыдущей, это значит, что рынок закрылся с понижением. Если наоборот, &lt;br /&gt;то рынок закрылся с повышением. Исследования &lt;b&gt;Connors Research&lt;/b&gt; показали, что чем дольше длиться медвежий тренд (последовательность из нисходящих цен закрытия), &lt;br /&gt;тем более сильным будет рост, когда рынок развернется. То же самое можно сказать и о бычьем тренде. &lt;br /&gt;&lt;br /&gt;Иными словами, длительность тренда – это также индикатор перекупленности  и перепроданности рынка.&lt;br /&gt;Но проблема в том, что теоретически она неограниченна во времени. Хотя зачастую мы можем установить некоторые искусственные границы, основываясь на прошлом.&lt;br /&gt;К примеру, изучив исторические данные, можно заметить, что на определенном инструменте было очень мало случаев, &lt;br /&gt;когда последовательность из нисходящих или восходящих ценовых баров длилась больше 20 баров. &lt;br /&gt;Но это еще не дает нам значения индикатора, которое вписывается в диапазон от 0 до 100.&lt;br /&gt;&lt;br /&gt;Выход из данной ситуации состоит из двух шагов. Сначала мы подсчитываем количество последовательных баров, в течение которых цена двигалась в одном направлении. &lt;br /&gt;То есть используем положительные значения для бычьего тренда и отрицательные  - для медвежьего. К примеру давайте посмотрим на таблицу.&lt;br /&gt;&lt;br /&gt;&lt;a href='https://stocksharp.com/file/102394/1.PNG' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="https://stocksharp.com/file/102394/1.PNG?size=800x800" alt=""/&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Цена закрытия второго бара выше, чем цена закрытия первого бара, поэтому мы наблюдаем бычий тренд, который длится один бар. &lt;br /&gt;На третьем баре цена снова закрывается выше предыдущей. Теперь наш тренд длится уже два бара. На четвертом баре цена закрывается ниже цены предыдущего бара, &lt;br /&gt;давая нам медвежий тренд длительностью в один бар (тут мы указываем негативное значение: -1). Медвежий тренд продолжается на 5 и 6 баре (-2 и -3). &lt;br /&gt;На седьмом баре цена закрытия остается неизменной, поэтому показатель продолжительности тренда возвращается к 0. &lt;br /&gt;На восьмом баре цена закрытия снова растет, тем самым увеличивая показатель продолжительности тренда до 1.&lt;br /&gt;&lt;br /&gt;Следующая часть в решения проблемы заключается в способе применения расчетов RSI к последовательности значений длительности тренда (о которой только что шла речь). &lt;br /&gt;По умолчанию, для этой части расчетов для ConnorsRSI используется период 2. Будем обозначать его как RSI(Streak,2). &lt;br /&gt;В результате мы получаем следующую зависимость: &lt;br /&gt;чем больше продолжительность бычьего тренда, тем ближе к 100 будет значение RSI(Streak,2), и наоборот, чем больше продолжительность нисходящего тренда, &lt;br /&gt;тем ближе к 0 будет значение RSI(Streak,2). Теперь у нас есть два показателя: &lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;RSI(Close,3)&lt;br /&gt;&lt;li&gt;RSI(Streak,2) &lt;/ul&gt;&lt;br /&gt;Оба используют шкалу от 0 до 100. Которая указывает на перекупленность или перепроданность рынка. &lt;br /&gt;&lt;br /&gt;Относительная Величина Изменения Цены: Это последний компонент индикатора ConnorsRSI. Он измеряет размер текушего ценового изменения относительно предыдущих цен. &lt;br /&gt;Для этого используется градация в процентах (Percent Rank). Конкретное значение указывает на процент прошлых значений, которые меньше текущего значения. &lt;br /&gt;В данном случае мы измеряем расчеты не в рублях, а в процентах от цены предыдущего бара. &lt;br /&gt;Этот процентный показатель прибыли или убытка рассматривается как однодневный возврат средств.&lt;br /&gt;Если, цена закрытия предыдущего бара была 80.00, а цена закрытия текущего равна 81.60, то данный показатель составит: (81.60 ‐ 80.00) / 80.00 = 0.02 = 2.0%.&lt;br /&gt;Чтобы определить значение Percent Rank, нам нужно выбрать временной период.&lt;br /&gt;&lt;br /&gt;Значением Percent Rank – это сумма значений за выбранный период, которые меньше текущего значения, деленное на общее количество значений за данный период. &lt;br /&gt;Например, если мы выбрали период 20 баров, то нужно сравнивать текучее 2.0% значение с аналогичными значениями для всех 20 баров выбранного периода. &lt;br /&gt;Давайте предположим, что 3 из 20 значений меньше 2.0%. В этом случае  Percent Rank будет рассчитываться следующим образом:&lt;br /&gt;Percent Rank = 3 / 20 = 0.15 = 15%&lt;br /&gt;Временной период Percent Rank по умолчанию равен 100. Обозначается как PercentRank(100).&lt;br /&gt;&lt;br /&gt;Мы сравниваем текуший процентный показатель с аналогичными показателями для всех 100 баров.&lt;br /&gt;Конечный расчет индикатора ConnorsRSI заключается в простом вычислении среднего значения трех компонентов.&lt;br /&gt;Формула с параметрами по умолчанию выглядит следующим образом: &lt;b&gt;ConnorsRSI(3,2,100) = [ RSI(Close,3) + RSI(Streak,2) + PercentRank(100) ] / 3&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;В результате у нас получился индикатор, который эффективнее любого из трех компонентов, используемых отдельно.&lt;br /&gt;У &lt;b&gt;ConnorsRSI &lt;/b&gt;есть преимущество перед использованием трех его компонентов как 3 самостоятельных индикаторов. &lt;br /&gt;Когда мы используем 3 индикатора для генерации торговых сигналов, то обычно устанавливаем для каждого из них определенный целевой уровень. &lt;br /&gt;Чтобы появился сигнал, все три индикатора должны достичь этих уровней. &lt;br /&gt;Однако индикатор &lt;b&gt;ConnorsRSI &lt;/b&gt;основан на их усредненном значении. Тем самым он позволяет сильному сигналу от одного, частично компенсировать слабый сигнал от другого.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:120%"&gt;&lt;b&gt;Доходность:&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;a href='https://stocksharp.com/file/102395/2.PNG' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="https://stocksharp.com/file/102395/2.PNG?size=800x800" alt=""/&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size:120%"&gt;Характеристики:&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Инструмент:обыкновенные акции Сбербанка (скачан с финама)&lt;br /&gt;&lt;li&gt;Таймфрейм: 1 час&lt;br /&gt;&lt;li&gt;Период тестирования: 14.05.2008 - 10.05.2013&lt;br /&gt;&lt;li&gt;Проскальзывание:не учитывалось. Комиссия 0.05 на сделку.&lt;br /&gt;&lt;li&gt;Комиссия 0.05 на сделку.&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size:120%"&gt;Настраиваемые параметры:&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Oversold Level 29&lt;br /&gt;&lt;li&gt;Overbought Level 32&lt;br /&gt;&lt;li&gt;RSI Period 20&lt;br /&gt;&lt;li&gt;Streak Period 25&lt;br /&gt;&lt;li&gt;PercentRank Period 29&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:120%"&gt;&lt;b&gt;&lt;span style="color:green"&gt;Алгоритм для открытия длинной позиции:&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;Ecли ConnorsRSI(на текущем баре)пересекает уровень перепроданности снизу вверх, то покупаем по рынку(покупка по открытию следующей свечи).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:120%"&gt;&lt;b&gt;&lt;span style="color:green"&gt;Алгоритм для закрытия длинной позиции:&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;Если на текушем баре обнаружен свечной паттерн LongBlackLine, то продаем по рынку(по открытию следующего бара).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:120%"&gt;&lt;b&gt;&lt;span style="color:red"&gt;Алгоритм для входа в короткую позицию:&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;Ecли ConnorsRSI(на текущем баре)пересекает уровень перекупленности сверху вниз, то продаем по рынку(по открытию следующего бара).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:120%"&gt;&lt;b&gt;&lt;span style="color:red"&gt;Алгоритм для закрытия короткой позиции:&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;Если на текушем баре обнаружен свечной паттерн LongWhiteLine, то продаем по рынку(по открытию следующего бара).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:120%"&gt;&lt;b&gt;Код:&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class='spoilertitle'&gt;&lt;input type='button' value='Show spoiler' class='btn btn-primary' onclick="toggleSpoiler(this, 'spolier_39091b11954b4d2fa2becfbf5ba5fb36');" title='Show spoiler' /&gt;&lt;/div&gt;&lt;div class='spoilerbox' id='spolier_39091b11954b4d2fa2becfbf5ba5fb36' style='display:none'&gt;&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;

using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
using WealthLab;
using WealthLab.Indicators;
using Community.Indicators;
using WealthLab.Rules.Candlesticks;
/****************************************
Стратегия создана специально 
для обучения по Wealth-Lab от StockSharp
все подробности тут
÷ñÒ1206490147êÖ0õæ÷http://stocksharp.com/lesson/wealth.aspx
÷ñÒ1206490147êÖ1õæ÷

StockSharp &amp;lt;&amp;lt;торговые роботы&amp;gt;&amp;gt;

*****************************************/
namespace WealthLab.Strategies
{
	public class MyStrategy : WealthScript
	{
		StrategyParameter connorsRSIOversoldLevel;
		StrategyParameter connorsRSIOverboughtLevel;
		StrategyParameter connorsRSIPeriod;
		StrategyParameter connorsRSIStreakPeriod;
		StrategyParameter connorsRSIPercentRankPeriod;
		public MyStrategy()
		{
			connorsRSIOversoldLevel = CreateParameter(&amp;quot;Oversold Level&amp;quot;, 30, 1, 30, 1);
			connorsRSIOverboughtLevel = CreateParameter(&amp;quot;Overbought Level&amp;quot;, 35, 30, 60, 1);
			connorsRSIPeriod = CreateParameter(&amp;quot;RSI Period&amp;quot;, 22, 2, 30, 1);
			connorsRSIStreakPeriod = CreateParameter(&amp;quot;Streak Period&amp;quot;, 2, 2, 30, 1);
			connorsRSIPercentRankPeriod = CreateParameter(&amp;quot;PercentRank Period&amp;quot;, 100, 2, 100, 1);
			
		}
		
		protected override void Execute()
		{
			bool[] bearishLongBlackLine;
			CandlePattern.BearishLongBlackLine(this, &amp;quot;-Long Black Line&amp;quot;, true, out bearishLongBlackLine);
			bool[] bullishLongWhiteLine;
			CandlePattern.BullishLongWhiteLine(this, &amp;quot;+Long White&amp;quot;, true, out bullishLongWhiteLine);
			
			ConnorsRSI cr = ConnorsRSI.Series( Close, connorsRSIPeriod.ValueInt, connorsRSIStreakPeriod.ValueInt, connorsRSIPercentRankPeriod.ValueInt);
			
			ChartPane paneRSI = CreatePane(75,true,true);
			PlotSeries(paneRSI, cr, Color.Navy, LineStyle.Solid, 2);
			DrawHorzLine(paneRSI, connorsRSIOversoldLevel.Value, Color.Red, LineStyle.Solid, 1);
			DrawHorzLine(paneRSI, connorsRSIOverboughtLevel.Value, Color.Green, LineStyle.Solid, 1);
			
			for(int bar = 20; bar &amp;lt; Bars.Count; bar++)
			{
				if (IsLastPositionActive)
				{
					if (LastPosition.PositionType == PositionType.Short)
					{
						if (bullishLongWhiteLine[bar])
						{
							CoverAtMarket(bar + 1, LastPosition);
						}
					}
					else
					{
						if (bearishLongBlackLine[bar])
						{
							SellAtMarket(bar + 1, LastPosition);
						}
					}
				}
				else
				{
					if (CrossOver(bar, cr, connorsRSIOversoldLevel.Value))
					{
						BuyAtMarket(bar + 1, &amp;quot;&amp;quot;);
					}
					if (CrossUnder(bar, cr, connorsRSIOverboughtLevel.Value))
					{
						ShortAtMarket(bar + 1, &amp;quot;&amp;quot;);
					}
				}
			}
		}
	}
}

&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-size:120%"&gt;&lt;b&gt;P.S.&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;Цель данной статьи была в том что бы донести до вас сведения о существовании такого интересного индикатора как СonnorsRSI. &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/25892/</id>
    <title type="text">использовать свечные паттерны в качестве выхода. Ну не знаю. Не похоже на надёжный выход. Разве что ...</title>
    <published>2013-05-13T16:06:46Z</published>
    <updated>2013-05-13T16:06:46Z</updated>
    <author>
      <name>VassilSanych</name>
      <uri>https://stocksharp.com/users/6491/</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/25890/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;использовать свечные паттерны в качестве выхода.&lt;/div&gt;&lt;/div&gt;&lt;br /&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/25890/</id>
    <title type="text">Ну я же написал, экспериментируйте с выходами. Мне просто было интересно посмотреть каково, использо...</title>
    <published>2013-05-13T15:52:08Z</published>
    <updated>2013-05-13T15:52:45Z</updated>
    <author>
      <name>Валентин Мирошниченко</name>
      <uri>https://stocksharp.com/users/6156/</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/25889/</id>
    <title type="text">Если поставить начало отсчёта на весну 2009, то эквити будет херовенькая-херовенькая. Хуже, чем Buy&amp;amp;...</title>
    <published>2013-05-13T15:42:32Z</published>
    <updated>2013-05-13T15:42:32Z</updated>
    <author>
      <name>VassilSanych</name>
      <uri>https://stocksharp.com/users/6491/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Если поставить начало отсчёта на весну 2009, то эквити будет херовенькая-херовенькая. Хуже, чем Buy&amp;amp;Hold.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
</feed>