Category: экономика

Category was added automatically. Read all entries about "экономика".

Дайджест последних постов в новом блоге

Сезонность индекса волатильности VIX (2014-08-13)
Время – деньги (2014-08-18)
Почему форекс брокеров стало больше чем дилинговых центров? (2014-08-20)
Быстрые HFT парни против умных (2014-08-25)

В этом блоге я буду не так часто публиковать ссылки на новые посты, скорее это будут дайджесты. В сентябре ждите новых публикаций!

Подписывайтесь на RSS Feed https://ubertrader.org/feed/

Edge Test

В прошлом посте я дал определение термину edge торговой системы, сейчас пришло время определиться с методами и инструментами определения - обладает ли система edge либо это простое стечение обстоятельств.

Для начала немного истории, в далеком 2006 году ваш покорный слуга, слабал портфель системок которые  давали хорошие результаты на том рынке. Все было хорошо, до начала 2007 года, когда рынок вошел в боковик и системы начали сливать. Естественно бычий тренд с 2000 года, вселил веру в свою гениальность и прочее. Но вопрос вот в чем, можно  ли было предотвратить закономерный fail для этих несовершенных систем? Понятно, что было такое время что зарабатывали банальные средние, или популярная система NRTR (от konkop), но в дальнейшем их рынок поломал через коленку.

Для любой системы необходимо определить имеет ли она edge. Действовать нужно в 2х направлениях:
  • На этапе проектирования
     
  1. Идея - должна базироваться на использовании рыночных неэффективностей. Грубо говоря нужно понимать за счет кого система будет зарабатывать деньги, и кто будет помогать нам драйвить цену в нужную нам сторону. Для понимания сути таких вещей как сентимент, стат. преимущество (edge) можно почитать в ветке Поговорим о паттернах или поискать посты на пауке и невесте человека по имени Атаман
  2.  Данные - данные на которых обкатывается система, должны содержать все рыночные фазы. Для Российского рынка считаю представительным период 2007-2010 годы, можно захватить и 2006 при желании. Для американских стоков, важно чтобы выборка содержала delisted stocks, и не забывать о такой вещи как survivorship bias.
  • На этапе тестирования
  1. Количественные параметры системы - NetProfit, Max/DD, Sharpe, PF, Risk-Reward-Ratio, %Win, Avg. Trade и пр. метрики доступные в любом пакете для тестирования систем Ami, WL, TS и пр.
  2. Качественные параметры edge системы - именно о них хочу поговорить. Этот подход определяет обладает ли испытуемая система умением извлекать неслучайную прибыль из случайного процесса, либо это очередной бычий тренд и  никакой гениальности.
Edge Test
Collapse )

System Development Basics II


 

В предыдущем посте были приведены доказательства преимуществ нормированного по волатильности сайза, называю его UnitSize, он считается как отношение константы K к некоему динамическому показателю волатильности рынка, я взял 10ти дневный ATR(). Важно понимать что 10 дневный считается именно на дневном таймфрейме, в т.ч. для внутридневных систем идет обращения к старшему фрейму, важно то чтобы для любого таймфрейма одного инструмента размер UnitSize был эквивалентен дневному!  
 

Ниже "шапка" кода для Амиброкера которая идет для любой моей системы:

 
SetOption( "InitialEquity", 100000); 
SetOption( "DisableRuinStop", True); 
SetOption( "AllowSameBarExit", True); 
SetOption( "ActivateStopsImmediately", True); 
SetOption( "MinShares", 0.0001);  
SetOption( "AllowPositionShrinking", True); 
SetOption( "MinPosValue", 0); 
SetOption( "MaxOpenPositions", 100); 
SetOption( "FuturesMode", True);
SetOption( "InterestRate", 0);  
SetOption( "PriceBoundChecking", False); 
SetOption( "AccountMargin", 100); 
SetOption( "ReverseSignalForcesExit", False); 
SetTradeDelays(0,0,0,0);  


//Расчитываем UnitSize
TimeFrameSet(inDaily);
  UnitDaily = Nz(1000/ATR(10));
TimeFrameRestore();

UnitSize = TimeFrameExpand(UnitDaily, inDaily, expandFirst);

MarginDeposit = 1;
PositionSize
= UnitSize * MarginDeposit;
SetBarsRequired(sbrAll,sbrAll); // Включаем все бары


UPD. 8.09.2010 У некоторых людей получались нули на выходе при тестах с UnitSize, из-за того что подход позволяет использовать дробные лоты < 0, задайте в окне Information и настройках тестера поле RoundLotSize = 0

Collapse )

System Development Basics

Предположим у нас появилась некая идея, которую мы хотим оттестировать при этом мы предполагаем (помечтаем) что эта идея будет универсально работать на любом финансовом инструменте в мире за любой период времени. Так как инструменты обладают величайшим разнообразием как по стоимости так по волатильности нам необходимо иметь инструмент который приводил бы результаты тестов на каждом инструменте к общему эквиваленту.

Какие подходы существуют к выбору сайза для прикидочных тестов:
  • Тест 1 лотом/контрактом  - самый простой подход, используется как правило для фьючерсов
  • Тест с привязкой к портфелю - подход как правило применим для акций (проблема тут состоит в привязке к начальной сумме на счете, а все результаты как правило считаются в % от портфеля, при этом возможно реинвестирование которое искажает картину)

Проблем с этими подходами не было, если бы нам не требовалось проводить дополнительные расчеты с композитными портфелями систем - так буду называть систему состоящую из других систем. Другая проблема, что эти подходы абсолютно не учитывают волатильность инструментов на котором они тестируются и волатильность периодов, соответственно они будут давать результаты разного порядка.
Каким же образом мы можем привести результаты тестов на совершенно разных инструмента, периодах и таймфреймах к общему знаменателю?

Collapse )