<HELP> for explanation

Блог им. vlad1024

Простейшая стратегия долгосрочного инвестирования.

Попробуем сделать простейшую стратегию для долгосрочного инвестирования. В качестве рабочего будем использовать дневной таймфрейм. Вся суть стратегии будет заключаться в простейшей идеи, что падение рынка обычно связанно с более высокой волатильностью, чем в среднем. Соответсвенно, мы будем покупать, когда волатильность ниже среднего, и выходить из лонга когда она повышается. В качестве меры волатильности будем использовать размах бара High — Low. Остается вопрос лишь в том как измерить долгосрочное среднее волатильности. Можно использовать — среднее, то есть скользящую среднюю взятую за определенный период. Но так как мы имеем дело с распределением с тяжелыми хвостами, среднее будет плохой оценкой центра распределения. Поэтому будем использовать робастную оценку центра распределения — в нашем случаи это будет медиана, или более точно, скользящая медиана взятая с большим окном. Наши рассуждения достаточно напрямую транслируются в код на WealthLab:
 
using System.Collections.Generic;
using System.Text;
using System.Drawing;
using WealthLab;
using WealthLab.Indicators;

namespace WealthLab.Strategies
{
	public class MyStrategy : WealthScript
	{
		private StrategyParameter smaPeriod;
		public MyStrategy()
		{
			smaPeriod = CreateParameter("Range Sma Period", 1, 1, 50, 1);      
			
		}
		
		protected override void Execute()
		{
			DataSeries range = High - Low;
			DataSeries rangeSma = new WealthLab.Indicators.SMA(range, smaPeriod.ValueInt, "sma");
			DataSeries signal = rangeSma -  new WealthLab.Indicators.Median(range, 200, "median");
			
			for(int bar = 0; bar < Bars.Count; bar++)
			{				
				if (IsLastPositionActive)
				{
					//code your exit rules here
					if (signal[bar] > 0)
						SellAtMarket(bar + 1, LastPosition, "sell");
				}
				else
				{
					//code your entry rules here
					if (signal[bar] < 0)
						BuyAtMarket(bar + 1, "buy");
				}
			}
		}
	}
}


Единственный параметр, это длина скользящей средней для сглаживания текущего сигнала High-Low (полный аналог ATR), в дальнейшем мы будем его использовать лишь чтобы сократить количество входов. Установим сначала smaPeriod = 1, то есть не будем использовать сглаживание сигнала.
Получим:
Простейшая стратегия долгосрочного инвестирования.

Простейшая стратегия долгосрочного инвестирования.
Судя по полученным параметрам бэктеста, идея содержит какое-то статистеческое преимущество. Теперь попробудем уменьшить количество сигналов, увеличив период фильтрации High-Low. Сначала проверим робастность этого параметра, тоесть что параметры стратегии сохраняются на широком диапазоне значений параметра. Убедившись в этом, возьмем его к примеру равным 12. И финально получаем:
Простейшая стратегия долгосрочного инвестирования.

Простейшая стратегия долгосрочного инвестирования.

Как видно, стратегия bye & hold принесла за рассматриваемый период нулевую доходность, в то время как наша простейшая система показала, не большую, не совсем стабильную, но прибыль. Аналогичную систему можно построить на часах добавив параметр medianPeriod, которая будет совершать больше сделок и показывать сравнимый результат.

Разработка роботов на заказ
Клуб алготрейдеров StockSharp 
 

Отлично, плюс!
а инструмент — фьючерс на индекс РТС?
mirovan, да фьючерс ртс.
Влад, Резалты не тестов, а реальной работы на реале были бы более убедительны показать как идея грамотно реализованная и оттестироваддая приводит к конкретному результату.
avatar

Sekator

Sekator, корректные тесты, практически тоже самое что и реал. а так каждый желающий может запустить и проверить, весь код приведен выше. )
vlad1024, Если это зарабатывающая стратегия, чего сами не запускаете?
нужно же ещё оптимальные параметры подогнать
Sekator, там заработок в районе 30-40% годовых и long-only в общем на любителя. Но тут вообще большинство с нулевым мат ожиданием торгует, так что им будет полезно. )
vlad1024, наверное даже 20-30%, в общем это наверное интересно только ПИФ-ам и другим крупным фондам или долгосрочным инвесторам. Ну и так системщикам новичкам, в качестве примера работающей системы будет интересно, в какую сторону копать, а то читать про пересечения МА и RSI даже меня задолбало. )
vlad1024, ничего себе 30-40 «на любителя»:)
Если одна из рабочих стратегий и система будет распределять капитал между стратегиями, кажется нейронная называется, тоже неплохо.
А если плечи увеличить то уже не 30-40?
Тоже плюсанул за доступность выигрывателя.
avatar

Invest-Fund

о, даже с кодом, спасибо, очень интересно, можно попробовать эту идею в качестве фильтра для других стратегий на меньших таймфреймах.
avatar

val

А Net Framework поддерживается?
Игорь Рябушкин, в wealth-lab, да.
vlad1024, а вас какая доходность устраивает?
vlad1024, тупой вопрос: а как эту медиану в квик транслировать или ввести?) если ответишь что-то, то большое спасибо.
Артур Медков, в квике нет такого, но наверное можно написать на купайле, просто скользящее окно внутри которого берется медиана (то есть значение которое будет посередине если отсортировать все значения внутри окна)
ты так скоро себе врагов наживешь :)
avatar

trader_notes

trader_notes, из-за того что «палю граали»? ))
скорее подход. что хуже, потому что граали применят в лоб (и ничего в долгосроке не выйдет), а на подходом думать будут (и что нибудь возможно выйдет) :)
avatar

trader_notes

а как связать с квиком?
avatar

disis

компилировал код. проверил на некоторых акциях и индексах из стандартного набора wealthlab за периоды > 10 лет. ни на одном инструменте стратегия не превосходит рынок. на индексе РТС (не фьючерс) стратегия превосходит рынок с 2008 г. до этого — результат посредственный.

думаю, стратегия — очень специфичная (
avatar

Сергей

дарю не менее ценный алгоритм):
покупка по пробитии предыдущего дневного хая. выход по трейлинг-стопу согласно каналу Дончиана с периодом 1. все.

хорошо работает(ла) на сипи и некоторых фондовых индексах. на множестве других инструментов — бесполезна.
avatar

Сергей


Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.

Залогиниться

Зарегистрироваться
....все тэги
Регистрация
UP