Торговая система на основе линий боллинджера

Торговая система на основе линий боллинджера


[b][size=6]Bollinger Bands[/size][/b] Хотел бы Вас познакомить со стратегией, которую я называю [b]BB[/b] ну или [b]Bollinger Bands[/b] или Big Boobs[rolleyes] , вообщем название пришло само по себе.

[size=6][b]Доходность:[/b][/size] [img]102327[/img]

[b][size=6]Характеристики:[/size][/b] [list][]Инструмент:склеенный фьючерс РТС (скачан с финама) []Таймфрейм: 1 час []Период тестирования: 01.04.2008 - 09.04.2013 []Проскальзывание:не учитывалось. Учитывался бар утренней сессии(10:00). [/list]

[b][size=6]Настраиваемые параметры:[/size][/b] [list][]Экспоненциальная скользящая средняя или EMA в народе. Две штуки - в коде "ma"(медленная) и "ma1"(быстрая). []Индикатор ROC. В коде - "roc" []Линия боллинджера(только верхняя). В коде - "BBUp". []Тейкпрофит.В коде - "_takeprofit". [*]Стоплосс. В коде - "_stoploss". [/list]

[size=6][b][color=green]Алгоритм для входа Покупка:[/color][/b][/size] Ecли [b]Close[/b](на текущем баре)[b]>BBUUp[/b], то покупаем по рынку(покупка по открытию следующей свечи).

[size=6][b][color=green]Алгоритм для выхода Покупка:[/color][/b][/size] Если [b]Close<ma[/b], то продаем по рынку(по открытию следующего бара).

[size=6][b][color=red]Алгоритм для входа Продажа:[/color][/b][/size] Если значение индикатора [b]ROC<0[/b] (на текущем баре) [b]и[/b] [b]Close[/b](Цена закрытия свечки) [b]< ma_1[/b], то продаём по рынку(продажа по открытию следующей свечи).

[size=6][b][color=red]Алгоритм для выхода Продажа:[/color][/b][/size] [list=1][]Если [b]Close>BBUp[/b], то покупка по рынку(по открытию следующего бара). [][b]Стоплосс[/b](определенный процент от точки входа). [*][b]Тейкпрофит[/b](определнный процент от точки входа) [/list]

[size=6][b]Код:[/b][/size] [SPOILER] [code=csharp] using System; using System.Collections.Generic; using System.Text; using System.Drawing; using WealthLab; using WealthLab.Indicators; /**************************************** Стратегия создана специально для обучения по Wealth-Lab от StockSharp все подробности тут http://stocksharp.com/lesson/wealth.aspx

StockSharp <<торговые роботы>>

*****************************************/ namespace WealthLab.Strategies { public class MyStrategy : WealthScript {

	private StrategyParameter _bbPeriod;
	private StrategyParameter _bbdev;
	private StrategyParameter _malength;
	private StrategyParameter _malength1;
	private StrategyParameter _roc;
	
	//тейк профит и стоплосс
	private StrategyParameter _takeprofit;
	private StrategyParameter _stoploss;
	
	
	public MyStrategy()
	{
		 //индикаторы
		_bbPeriod = CreateParameter("BBand Period", 114, 10, 200, 10);
		_bbdev = CreateParameter("BBand StdDev", 1.86, 1, 4, 0.25);
		_malength = CreateParameter("MA", 137, 10, 200, 5);
		_malength1 = CreateParameter("MA1",83,10, 200, 5);
		_roc = CreateParameter("ROC",1,1,5, 1);
		//тейк профит и стоплосс
		_takeprofit = CreateParameter("takeprpfit",1.81,1, 10, 0.1);
		_stoploss = CreateParameter("stoploss",6.68,1,10, 0.1);
	}
	
	
	protected override void Execute()
	{
		//линия боллинджера
		DataSeries BBUp = BBandUpper.Series( Close, _bbPeriod.ValueInt, _bbdev.ValueInt );
		//скользящая средняя
		DataSeries ma = EMAModern.Series(Close, _malength.ValueInt);//60
		//индикатор roc
		DataSeries roc = ROC.Series(Close,_roc.ValueInt);//2
		//еще одна скользящая
		DataSeries ma_1 = EMAModern.Series(Close, _malength1.ValueInt);//115
		
        //Выводим графику ( BB,ROC)
		PlotSeries(PricePane, BBUp, Color.Green, LineStyle.Solid, 2 );
		ChartPane paneROC = CreatePane(75,true,true);
		PlotSeries(paneROC,roc,Color.SlateGray,LineStyle.Histogram,20);
		//Выводим графику (EMA)
		PlotSeries(PricePane,ma,Color.Red,LineStyle.Solid,2);
		PlotSeries(PricePane,ma_1,Color.Blue,LineStyle.Solid,2);

		for(int bar = 114; bar < Bars.Count; bar++)
		{
			if (IsLastPositionActive)//если активна позиция
			{
				Position p = LastPosition;
				//Выход из позиции 
				if (p.EntrySignal.Contains("Sell"))
				{
					//уровень стопа для продажи
					double Stop = p.EntryPrice * (1 + _takeprofit.Value / 100);
					//уровень тейка для продажи
					double Target = p.EntryPrice * (1 - _stoploss.Value / 100);
					//выход по условию верхней линии Боллинджера
					if (CrossOver( bar, Close, BBUp ))
					{
						CoverAtMarket(bar + 1, p, "Exit_Sell_1");
					}
					//условие на выход по стоплоссу(заведомо знаем что на первом баре невозможно выйти без проскальзывания)
					if(bar+1<Bars.Count&&Bars.Date[bar+1].TimeOfDay.Hours!=10)
					{
						CoverAtStop(bar + 1, p, Stop, "Exit_Sell_2");
					}
					else if(Close[bar]>Stop)//если это первый бар, то выходим по его закрытию
					{
						CoverAtClose(bar+1,p,"");
					}
					
					CoverAtLimit(bar+1, p, Target, "Exit_Sell_3");
				}
				else if (p.EntrySignal.Contains("Buy"))
				{
					if (CrossUnder(bar, Close, ma))
					{
						SellAtClose(bar + 1, p, "Exit_Buy");
					}
				}					
			}
			else
			{
				//если значение Roc меньше нуля
				if (roc[bar] < 0)
				{
					//при пересечении цены закрытия свечи и скользящей
					if (CrossUnder(bar, Close, ma_1))
					{
						ShortAtMarket(bar + 1, "Sell");
					}
				}
				//пересечение цены закрытия и линии боллинджера вверх
				else if (CrossOver( bar, Close, BBUp ))
				{
					BuyAtMarket(bar + 1, "Buy");
				}

			}
		}
	}
}

}

[/code] [/SPOILER]



DM23

Фотография
Дата: 01.05.2013
Ответить


Здравствуйте. Напишите ,пожалуйста, торговая система Bollinger Bands,

которая представлена здесь заточена под фьючерс на индекс РТС или её можно применять для любых торговых инструментов? Если только под фьючерс на индекс РТС, то где нужно сделать изменения, чтобы её можно было применять на акциях?

Спасибо:

Валентин Мирошниченко

Фотография
Дата: 02.05.2013
Ответить


Достаточно будет просто переоптимизировать систему для интересующей вас бумаги.

Спасибо:

ring10

Фотография
Дата: 23.10.2013
Ответить


Хорошая система, тесты показывают и на других фьюч хорошие результаты, однако много опт параметров. Надо аккуратно сделать так, чтобы подгонки не было. И поз сайзер лучше использовать % волатильности, тогда экити будет ровная. Вопрос, откуда такой набор индикаторов взят подскажите первоисточник??

Спасибо:

Самунджян Артем

Фотография
Дата: 24.10.2013
Ответить


[quote=ring10;27875]Хорошая система, тесты показывают и на других фьюч хорошие результаты, однако много опт параметров. Надо аккуратно сделать так, чтобы подгонки не было. И поз сайзер лучше использовать % волатильности, тогда экити будет ровная. Вопрос, откуда такой набор индикаторов взят подскажите первоисточник??[/quote]

В основном стратежка дается как базис, чтобы новичкам было легче с чего то стартовать. Так что можно еще всякие различные вариации с ней поделать (уменьшить количество параметров). Меня больше всего на самом деле удивило другое.

На лонг и на шорт разные сигналы, хотя всегда составлял системы практически с идентичным подходом. Перво источник я [wink] Набор индикаторов, одни из самых простых были взяты. Есть стратегии посложнее, но народ их просто не поймет.

Спасибо:

Андрей Шабанов

Фотография
Дата: 03.11.2013
Ответить


любопытно сравнить BB против других подобных стратегий. Пример с картинками: http://gekkoquant.com/2013/09/29/linear-regression-curves-vs-bollinger-bands/

Спасибо:


Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy