Анализатор входов/выходов
Идея вычитана мною в статье
|
Краткое описание Библиотека разработана в виде плагина для Амиброкер. Плагин написан на C++ VisualStudio 2005.
|
Основные возможности Функция позволяет в графическом виде представить зависимость прибыли от времени после сигнала на покупку, продажу, закрытие, изменение размера позиции. |
Список функций BBL_SignalGraph( arSource, iCount, iSpread); arSource - Массив цен по которым вычисляется статистикаВ обычном режиме, это Close, но в приведенном ниже примере, сюда подставляется специально созданный массив. iCount - Количество точек на графике iSpread - спред в пунктах. Все графики в окошке должны начинаться с этого значения (со знаком минус) Скрытым параметром являетсяTickSize, значение которого устанавливается в меню Symbol->Information. Для евро 0.0001, для йены 0.01. Замечание. Для расчета статистики по всем имеющимся данным следует в текст AFL вставить строку SetBarsRequired( 100000, 100000); График не должен двигаться при прокрутке в окне цен. |
Описание Довольно простая и полезная функция. Для её использования нужна программа GraphWindow.exe. Эта программа представляет собой окно, принимающее информацию от плагина и отображающее эту информацию в графическом виде. В окне отображается зависимость средней по всем сделкам данного вида (Buy, Sell, Short и Cover) прибыли (с учетом спреда) в зависимости от времени. Зачем это нужно? Некоторые считают, что полностью сделку можно разделить на открытие, закрытие и сопровождение позиции. И, даже, можно представить себе следующий способ построения стратегии. Берем некоторое множество входов и выбираем из него наилучший. Затем аналогично подбираем наилучший способ ведения позиции и наилучший способ закрытия. Мне этот способ представляется сомнительным, и вот почему. Во первых, у стратегии должна быть своя собственная идея. Идея эта может вполне однозначно определить типы входов, выходов и ведения позиции вполне однозначно. Кроме того, есть мнение, что наличие уже нескольких параметров у стратегии приводит к её неустойчивости и подгону бэктестинга под кривую. В случае же отдельного тестирования входов, выходов и сопровождения, необходимо наличие хотя бы одного параметра для каждого теста. Здесь можно сказать, что параметры могут быть равными, но идея то другая - выбрать три лучших способа и их объединить. Так вот, теперь представьте, что Вы имеете возможность, прицепить анализатор непосредственно к своей стратегии и увидеть, допустим, что вся прибыль вашей стратегии получается за счет правильного ведения позиции, а все открытия носят случайный характер и не вносят в стратегию совершенно никаких положительных свойств. Что Вы будете делать? Для пояснения действий программы создадим тестовый график такого вот вида.
short_step = 0.001*Param( "Short Sin Period", 10, 1, 100); short_size = TickSize*30*Param( "Short Sin Size", 10, 0, 100); ungle = 0.001*TickSize*Param( "Ungle", 43, 1, 5000); long_step = 0.0001*Param( "Long Sin Period", 10, 1, 100); long_size = TickSize*20*Param( "Long Sin Size", 25, 0, 200); x1 = 0; x2 = 0; u = 0; for(i=0; i<BarCount; i++) { short_sin[i] = sin( x1); short_source[i] = short_size * short_sin[i]; long_source[i] = long_size * sin( x2) + u; x1 = x1 + short_step; x2 = x2 + long_step; u = u + ungle; } source = short_source + long_source; Покупать будем по зеленым сигналам, а продавать - по красным. Очевидно, после каждого сигнала на покупку или продажу мы пойдем в плюс, а дальнейшая судьба нашей позиции, если её вовремя не закрыть, будет зависеть от того, в каком месте следующего графика мы находимся.
Кроме того, заметьте, что весь график наклонен вверх, поэтому любой лонг даст плюс, если его как следует подержать. А как же определить качество наших входов? Да очень просто, нужно посмотреть, куда в среднем пойдет цена после открытия сделки. Вот как это будет выглядеть
Видно, что сиреневая линия (покупки) имеет наклон вверх, а синяя - продажи - вниз. Относится ли это к качеству наших сигналов на вход и выход. Конечно нет. Так давайте их уберем, точнее, пусть внутри функции будет убираться средний наклон графика.
|
Download BBL_SignalGraph.dll GraphWindow.exe Пример с синусом на AFL Возможно, без этого не будет работать (библиотеки Microsoft) |