Блог им. gifron

Превращаем убыточную трендовую в прибыльную контртрендовую систему.

    • 17 ноября 2013, 20:26
    • |
    • gifron
  • Еще
Добрый день, коллеги!

На вчерашней встрече клуба Эдуарда Ланчева мне предложили протестировать простую торговую систему. Далее много буквок, но приведен иллюстрированный пример как из «сливающей» трендовой сделать прибыльную контртрендовую систему.
Это только идея, а не конечный вариант. Заготовка, так сказать.

Правила торговой системы:
1. Если цена три бара подряд растет, при этом цена последнего бара выше значения скользящей средней некоторого периода — покупаем.
2. Если цена два бара подряд падает — продаем.

Любое моделирование накладывает на нас некоторые ограничения, поэтому немного изменим правила:
1. Если цена выше трех предыдущих баров, при этом цена последнего бара выше значения скользящей средней некоторого периода — покупаем.
2. Если цена ниже двух предыдущих баров — продаем.

Моделирование производим по следующим параметрам:
размер счета безграничен;

в одной сделке используем 1 единицу ценной бумаги (не лот) — получим результаты в пунктах цены без учета размеров лотов;
работаем только в лонг (это у меня традиционно, плюс усложняет задачу);
тестируем только идею без правил удержания, стопов и прочего — как есть;

период бара — дневки;
период времени с 1 января 2012 года по н.в.
период средней — 5 (простая скользящая);
тестовые активы:
а) Сбербанк (ао)
б) Портфель: Сбербанк, Роснефть, Газпром, Северсталь, Мечел, Уралкалий.

Результаты теста:
Сбербанк с 1 января 2012 года
Сбербанк с 1 января 2012 годв
 
Портфель с 1 января 2012 годаПортфель с 1 января 2012 года
Рассматриваемая система является представителем трендследящих систем. В тоже время ни для кого не секрет, что российский рынок в последние годы находится в боковике. Следовательно, естественно эта система будет «сливать».

Но, перевернув правила, из нее можно сделать контртрендовую систему.
Для этого применим следующие правила:
1. Если цена ниже трех предыдущих баров, при этом цена последнего бара ниже значения скользящей средней некоторого периода — покупаем.
2. Если цена выше двух предыдущих баров — продаем.

Условия теста те же.

Результаты:
Сбербанк с 1 января 2012 года
Сбербанк перевертыш с 1 января 2012 года

Портфель с 1 января 2012 года
Портфель перевертыш с 1 января 2012 года

Сбербанк с 1 января 2008 года
Сбербанк перевертыш с 1 января 2008 года

Портфель с 1 января 2008 года
Портфель перевертыш с 1 января 2008 года
 
 
★14
17 комментариев
1 имхо результат чисто за счет подбора бумаг в портфеле
2 я бы взял максимально ликвидные бумаги из индекса ммвб30… первую десятку или списка 13 бумаг доступные для шорта по т+2
avatar
Люблю когда кто-то исследует реальные какие-то вещи статистически!

Молодец, пиши еще!
в чем систему программировал?
Если под словом «цена» подразумевается «закрытие бара», за выражением «цена выше/ниже N баров» подразумевается «закрытие выше максимума/минимума», то выходит в общем то хрень.



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

Но с тем же успехом это можно сделать то же самое и с трендовой версией.



То есть имеем банальную подгонку. Если повозиться ещё минут 10 с условиями, то можно сделать эквити идеальное на истории, но которое, естественно, работать не будет в будущем. Потому как переоптимизация и подгонка — путь к сливу.
Николай Лазарев, Да в большей степени вероятно вы правы. В том виде каком это выложено — нерабочая идея.
avatar
Система без правил удержания позиции, не позволяет использовать условия тренда. А основная прибыль делается на тренде. Эта система работает в боковике (который определяется на большом промежутке времени), но на более коротких интервалах все равно есть тренд.
avatar
1. Программировал в велслабе.
2. Это далеко не полноценная торговая система. Цель статистического моделирования выявить потенциал системы. Если заложенная «идея» теоретически прибыльная, то ее можно брать за основу разработки практической торговой системы.
3. Во всех приведенных примерах прибыль измеряется в пунктах цены. Для этого не ставиться предела по размеру счета, но 1 сделка = 1 контракту (бумаге, даже не лоту).
4. Оптимизация не проводилась. Совсем. Тестировалось как есть, при этом я осознаю что в системе как минимум 3 переменных: параметр средней, количество баров используемых для входа и выхода.
avatar
И что, найдется хоть один человек, который захочет это торговать??
avatar
Это Нельзя торговать!!!
Это только пример как из трендовой сделать контртрендовую систему. На той же идее. И что в итоге может получиться.
avatar
Если будет интересно код для Вэлслаба 6

public class MyStrategy: WealthScript
{
protected override void Execute()
{
DataSeries ma = SMA.Series(Close, 5);

PlotSeries(PricePane,SMA.Series(Close,5),Color.Blue,LineStyle.Solid,2);

for(int bar = GetTradingLoopStartBar(6); bar < Bars.Count; bar++)
{
if (Close[bar] < Close[bar — 1])
{
if (Close[bar] < Close[bar — 2])
{
if (Close[bar] < Close[bar — 3])
{
if (Close[bar] < ma[bar])
{
BuyAtClose(bar, «Buy»);
}
}
}
}
for(int _pos = ActivePositions.Count — 1; _pos >= 0; _pos--)
{
Position p = ActivePositions[_pos];
if (p.Active)
{
if (p.EntrySignal.Contains(«Buy»))
{
if (Close[bar] > Close[bar — 1])
{
if (Close[bar] > Close[bar — 2])
{
SellAtClose(bar, p, «Sell»);
}
}
}

}
}
}
avatar
Надеюсь, на этой встрече хоть код этот не давали!
avatar
Сам подход правильный — чаще всего хорошая конртрендовая система является зеркальным или почти отражением трендовой. Это для тех кто торговал тренды, но теперь хочет торговать контртренды.
avatar
данный способ хорош и при входе в тредовой системе: вход на откатах от трендового движения. например: при растущей длиной ма покупка пробоя минимума за какое-либо количество периодов и дальнейшее удержание позиции.
avatar
Вставлю свои 5 копеек. как Мне каатца, немного лучче сместить акцент: не контртрендовая, а диапазонная, ибо контртренд это непродуктивная идея на дистанции. Диапазон определяется по третьему отражению (второму «контртендовому»).
И самое главное — Использование комбинации двух стратегий паралельно .(а лучше трёх=четырёх).
avatar
Игорь 63, Диверсификация по тс для сглаживания линии эквити.
Причём Трендследящих тс должно быть больше в группе, с разными параметрами (рынок меняет волатильность- средняя сгаживается)
avatar
Система скорее всего за счет мартингейла и удачной фазы рынка прибыльная, ибо позиции на падениях открываются без всякого лимита. Но на сильном падении это все приведет просто к обнулению счета.
avatar

теги блога gifron

....все тэги



UPDONW
Новый дизайн