«Сферический трейдер в вакууме»: инструкция по применению

в 9:54, , рубрики: data mining, forex, python, Алгоритмы, математика, распределение вероятностей, статистический тест, торговая система

«Сферический трейдер в вакууме»: инструкция по применению - 1

Если проанализировать «Сферический трейдер в вакууме»: инструкция по применению - 2 форумов о рынках (в том числе Форекс), можно выделить два достаточно устойчивых мнения, назовём их пессимистическим и оптимистическим:

Пессимисты утверждают: рынок случаен «потому что я построил график случайного процесса и мой друг (профессиональный трейдер) не смог отличить его от графика EURUSD», а значит иметь стабильный доход на рынке( на Форекс) невозможно по определению!

Оптимисты им возражают: если бы рынок был случаен, котировки не гуляли бы в окрестности 1, а ушли в бесконечность. Значит рынок неслучаен и на нём можно зарабатывать. Я видел реально стабильно зарабатывающую стратегию с большим профит-фактором (больше стольки-то)!

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


Рассматриваемые в статье методики универсальны для любых рынков, будь то фонд, Форекс или любой другой!


Постановка задачи

Благодаря известному анекдоту про сферического коня в вакууме родилась замечательная аллегория, означающая идеальную, но совершенно неприменимую на практике модель.

Тем не менее, при правильной постановке задачи можно извлечь вполне ощутимую практическую пользу, применяя «сферическую модель в вакууме». Например, через отрицание «сферичности» реального объекта исследования.

Предположим, что у нас есть торговая система, используемая на некотором рынке. Также предположим, что рынок не случаен и система использует для принятия торговых решений что-то не являющееся замаскированным под индикаторы генератором случайных чисел. Для оценки стабильности дохода используем профит-фактор: PF={P over L}, где «Сферический трейдер в вакууме»: инструкция по применению - 4 — сумма дохода, а «Сферический трейдер в вакууме»: инструкция по применению - 5 — сумма убытка (положительное число).

Каким должен быть профит-фактор, чтобы можно было говорить о стабильности данной системы? Очевидно, что чем профит-фактор выше, тем больше поводов доверять системе. А вот нижняя граница оценивается разными специалистами по разному. Наиболее популярные варианты: > 2 (так себе), > 5 (хорошая система), > 10 (отличная система). Ещё встречается такая вариация: PF_m={P-p_m over L}, где «Сферический трейдер в вакууме»: инструкция по применению - 7 — максимальное значение дохода по сделке, такая величина называется достоверным профит-фактором. Считается, что минимальное допустимое значение для достоверного профит-фактора 1,6.

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

Осталось только построить идеальную модель для сравнения.

«Сферический трейдер...»

Предположим, что мы рассматриваем некоторую случайную торговую систему («сферический трейдер»). Так как модель случайна, то торговые события наступают в случайные моменты времени, независимо от решений, принятых ранее. Направление сделок также случайно (с вероятностью 0,5 продажа либо покупка). Объём сделок предположим константой и без потери общности будем оценивать доход и убыток в пунктах.

Пусть средняя длительность сделки составляет «Сферический трейдер в вакууме»: инструкция по применению - 8, а среднее время между закрытием двух последующих сделок «Сферический трейдер в вакууме»: инструкция по применению - 9 (не будем накладывать никаких ограничений на количество одновременно открытых сделок).

Также предположим, что мы будем иметь дело с Пуассоновыми потоками событий:

Длительность сделки «Сферический трейдер в вакууме»: инструкция по применению - 10 будет являться случайной величиной с экспоненциальным распределением:

f(t)=lambda_te^{-lambda_tt}   (1.1)

где «Сферический трейдер в вакууме»: инструкция по применению - 12.

Количество сделок «Сферический трейдер в вакууме»: инструкция по применению - 13, совершённых за период времени «Сферический трейдер в вакууме»: инструкция по применению - 14 будет описываться распределением Пуассона:

P_T(k)={{left(lambda_tau T right)}^k over k!}e^{-lambda_tau T}   (1.2)

где «Сферический трейдер в вакууме»: инструкция по применению - 16.

"… в вакууме"

Теперь рассмотрим идеальную среду обитания «сферического трейдера» — «вакуум», то есть полностью случайный рынок.

Предположим, что рынок описывается нормальным распределением изменения значений котировок «Сферический трейдер в вакууме»: инструкция по применению - 17 за период времени «Сферический трейдер в вакууме»: инструкция по применению - 18:

f(Delta)={1 over sigma_T sqrt{2 pi}}e^{Delta^2 over {2 sigma_T^2}}   (2.1)

где «Сферический трейдер в вакууме»: инструкция по применению - 20 определяется следующим образом: пусть за единичное время котировки меняются на нормально распределённую случайную величину с дисперсией «Сферический трейдер в вакууме»: инструкция по применению - 21, тогда, если рассматривать интервалы времени «Сферический трейдер в вакууме»: инструкция по применению - 22, по изменения котировок будет иметь дисперсию:

sigma_T^2=sigma_1^2 T   (2.2)

Это известное соотношение для Броуновского процесса.

С учётом формул (2.1) и (1.1) результат сделки, рассматриваемый как изменение котировок за период времени с начала до конца сделки будет описываться как интеграл условной вероятности «Сферический трейдер в вакууме»: инструкция по применению - 24 по «Сферический трейдер в вакууме»: инструкция по применению - 25:

f_{sigma_1,lambda_t}(Delta)=intlimits_{0}^{infty} {lambda_t over {sigma_1 sqrt{2 pi t}}}e^{-{Delta^2 over {2 sigma_1^2 t}}}e^{-lambda_tt}dt

или

f_{sigma_1,lambda_t}(Delta)={lambda_t over {sigma_1 sqrt{2 pi}}}intlimits_{0}^{infty} t^{-{1 over 2}}e^{-{Delta^2 over {2 sigma_1^2 t}}}e^{-lambda_tt}dt   (2.3)

Решение этого интеграла с использованием Wolfram Mathematica даёт следующий результат:

f_{sigma_1,lambda_t}(Delta)={1 over sqrt{2}}{sqrt{lambda_t} over sigma_1}e^{-sqrt{2} {sqrt{lambda_t} over sigma_1}|Delta|}

или

f_{sigma_1,lambda_t}(Delta)={alpha over 2}e^{-alpha|Delta|}   (2.4)

где alpha={sqrt{2 lambda_t} over sigma_1}.

Полученная закономерность является распределением Лапласа.

Таким образом, доход или убыток по одной сделке случайной системы на случайном рынке описывается распределением Лапласа, а абсолютная величина результата «Сферический трейдер в вакууме»: инструкция по применению - 31 сделки имеет экспоненциальное распределение:

f_alpha(R)=alpha e^{-alpha R}   (2.5)

где alpha={sqrt{2 lambda_t} over sigma_1}.

Известно, что экспоненциальное распределение является частным случаем распределения хи-квадрат («Сферический трейдер в вакууме»: инструкция по применению - 34 при «Сферический трейдер в вакууме»: инструкция по применению - 35). Это значит, что суммарный доход и суммарные потери могут описываться как суммы случайных величин с распределением хи-квадрат, а значит сами являются хи-квадрат величинами.

Пусть было совершено «Сферический трейдер в вакууме»: инструкция по применению - 36 прибыльных сделок с результами «Сферический трейдер в вакууме»: инструкция по применению - 37 и «Сферический трейдер в вакууме»: инструкция по применению - 38 убыточных с абсолютными значениями потерь «Сферический трейдер в вакууме»: инструкция по применению - 39. Тогда суммарный доход «Сферический трейдер в вакууме»: инструкция по применению - 40 (нормированный на «Сферический трейдер в вакууме»: инструкция по применению - 41) и суммарные потери «Сферический трейдер в вакууме»: инструкция по применению - 42 (также нормированные на «Сферический трейдер в вакууме»: инструкция по применению - 43) будут описываться распределениями хи-квадрат со степенями свободы «Сферический трейдер в вакууме»: инструкция по применению - 44 и «Сферический трейдер в вакууме»: инструкция по применению - 45 соответственно:

fleft(P_alpha right)=chi_{k_p}^2left({P_alpharight)   (2.6)

fleft(L_alpha right)=chi_{k_l}^2left({L_alpharight)   (2.7)

где P_alpha={1 over {2alpha}}sumlimits_{i=1}^{k_p}R_i^+ и L_alpha={1 over {2alpha}}sumlimits_{i=1}^{k_l}R_i^-.

отношение этих величин будет выглядеть следующим образом:

{P_alpha over {L_alpha}}={{{1 over {2alpha}}sumlimits_{i=1}^{k_p}R_i^+}over {{1 over {2alpha}}sumlimits_{i=1}^{k_l}R_i^-}}={{sumlimits_{i=1}^{k_p}R_i^+} over {sumlimits_{i=1}^{k_l}R_i^-}}={P over L}=PF   (2.8)

где P=sumlimits_{i=1}^{k_p}R_i^+ суммарный доход, а L=sumlimits_{i=1}^{k_l}R_i^- суммарные потери. Их отношение «Сферический трейдер в вакууме»: инструкция по применению - 51 — профит-фактор.

Теперь рассмотрим следующую величину:

PF_k=PFtimes{k_lover {k_p}}   (2.9)

Эту величину можно интерпретировать как «нормированный профит-фактор»: отношение среднего дохода к среднему убытку за сделку. Посмотрим, какое распределение имеет эта величина:

PF_k=PFtimes{k_lover {k_p}}={P over L}times{k_lover {k_p}}={{P_alpha} over {L_alpha}}times{k_lover {k_p}}={{{P_alpha} over {2k_p}}over{{L_alpha} over {2k_l}}}   (2.10)

Полученная величина, отношение хи-квадрат величин, нормированных на количества их степеней свободы, — имеет распределение Фишера.

Таким образом, мы нашли распределение величины, статистики «Сферический трейдер в вакууме»: инструкция по применению - 54 для профит-фактора «сферического трейдера в вакууме» при известном количестве прибыльных «Сферический трейдер в вакууме»: инструкция по применению - 55 и убыточных «Сферический трейдер в вакууме»: инструкция по применению - 56 сделок.

Прежде чем переходить к обобщению на случай неизвестных «Сферический трейдер в вакууме»: инструкция по применению - 57 и «Сферический трейдер в вакууме»: инструкция по применению - 58, рассмотрим поведение «сферического трейдера» на «не совсем случайном» рынке (назовём эту среду в шутку «идеальным газом»).

"… в идеальном газе"

Теперь рассмотрим чуть более сложную ситуацию: когда рынок является обобщённым броуновским движением. То есть, в отличие от случайного, обладает памятью. В этом случае формула (2.2) примет следующий вид:

sigma_T^2=sigma_1^2 T^{2H}   (3.1)

где «Сферический трейдер в вакууме»: инструкция по применению - 60 — показатель Хёрста, величина, характеризующая фрактальные свойства временного ряда и связанная с фрактальной размерностью Хаусдорфа-Безиковича «Сферический трейдер в вакууме»: инструкция по применению - 61 следующим образом: «Сферический трейдер в вакууме»: инструкция по применению - 62. Показатель Хёрста может принимать значения «Сферический трейдер в вакууме»: инструкция по применению - 63.

При «Сферический трейдер в вакууме»: инструкция по применению - 64 временной ряд вырождается в случайный, не обладающий памятью, соответсвует рассмотренному выше случаю. При «Сферический трейдер в вакууме»: инструкция по применению - 65 ряд постоянно стремится к изменению направления существующей тенденции, а значит обладает памятью, такой ряд называется антиперсистентным, хаотическим. При «Сферический трейдер в вакууме»: инструкция по применению - 66 ряд также обладает памятью, но стремится к сохранению существующей тенденции, такой ряд называется персистентным, детерминированным. Чем сильнее показатель Хёрста отличен от 0.5, тем чётче у ряда выражены хаотические или детерминированные свойства.

Для различных рынков характерны различные значения показателя Хёрста, кроме того, они могут меняться со времен. Показатель Хёрста может быть рассчитан по значениям временного ряда. А значит, при оценке профит-фактора можно учесть величину «Сферический трейдер в вакууме»: инструкция по применению - 67, рассчитанную по ряду котировок в тот же период, когда совершались сделки анализируемой стратегии. Для оценки показателя Хёрста существует несколько стандартных процедур, например RS-статистика или методы основанные на вейвлетах.

Предположим, что случайная торговая стратегия работает на рынке с показателем Хёрста H, тогда с учётом (3.1), формула (2.3) примет вид:

f_{sigma_1,lambda_t,H}(Delta)={lambda_t over {sigma_1 sqrt{2 pi}}}intlimits_{0}^{infty} t^{-H}e^{-{Delta^2 over {2 sigma_1^2 t^{2H}}}}e^{-lambda_tt}dt   (3.2)

Очевидно, что при «Сферический трейдер в вакууме»: инструкция по применению - 69 это выражение эквивалентно (2.3).

К сожалению, выражение (3.2) в аналитическом виде не интегрируется. Поэтому, для нахождения распределения абсолютных значений разностей котировок между моментами времени начала и конца сделки (абсолютных итогов сделок) при случайной торговле на рынке с показателем Хёрста «Сферический трейдер в вакууме»: инструкция по применению - 70 мы воспользуемся численным моделированием.

Я проводил моделирование с использованием Python.

Моделирование проводится следующим образом

1) Задаём параметры моделирования:
«Сферический трейдер в вакууме»: инструкция по применению - 71 — объём экспериментальной выборки;
«Сферический трейдер в вакууме»: инструкция по применению - 72 — количество диапазонов для построения гистограммы

2) Генерируем выборку distE экспоненциально распределённой случайной величины и выборку distN нормально распределённой величины объёмом N каждая.

3) Учитывая соотношение (3.1), создаём тестовую выборку distT, каждое значение которой рассчитывается из соответствующих значений distN и distE: «Сферический трейдер в вакууме»: инструкция по применению - 73

4) Для полученного распределения строится гистограмма из M диапазонов (количество попаданий в диапазоны). Из полученной гистограммы выбирается K первых диапазонов, количество попаданий в которые отлично от нуля. Также производится нормирование на количество попаданий в первый диапазон.

5) На основании полученной гистограммы аппроксимируется вид распределения.

import matplotlib.pyplot as plt
import numpy as np
from scipy import stats

def testH(N, M, H, p):
    distE = np.random.exponential(1, N)
    distN = np.random.normal(0, 1, N)
    
    distT = abs(distN * distE**H)
    
    if p == 1:
        plt.figure(1)
        plt.hist(distT, M)
        plt.title('H='+str(H))
    
    [y, x] = np.histogram(distT, M)
    
    K = 0;
    for i in range(M):
        if y[i] > 0:
            K = i
        else:
            break  
    
    y = y * 1.0 / y[0]
    x = x[1:K]
    y = y[1:K]
    
    return getCoeff(x, y, p, 'H='+str(H))

Примеры гистограмм полученных распределений для значений показателя Хёрста 0.1, 0.3, 0.5, 0.7 и 0.9 приведены ниже.

«Сферический трейдер в вакууме»: инструкция по применению - 74

«Сферический трейдер в вакууме»: инструкция по применению - 75

«Сферический трейдер в вакууме»: инструкция по применению - 76

«Сферический трейдер в вакууме»: инструкция по применению - 77

«Сферический трейдер в вакууме»: инструкция по применению - 78

Общий вид гистограмм даёт основание предположить, что полученные распределения с точностью до константы могут описываться функцией вида:

f_{sigma_1,lambda_t,H}(Delta)=Ce^{-Delta^{K_{sigma_1,lambda_t,H}}}   (3.3)

Для поиска параметро распределения воспользуемся следующим алгоритмом:

1) Пусть нам даны «Сферический трейдер в вакууме»: инструкция по применению - 80 — центроиды диапазонов гистограммы и «Сферический трейдер в вакууме»: инструкция по применению - 81 — количества попаданий в диапазоны, нормированные на количество попадание в первый диапазон.

2) Тогда, игнорируя первый диапазон, выполним преобразования: «Сферический трейдер в вакууме»: инструкция по применению - 82 и «Сферический трейдер в вакууме»: инструкция по применению - 83

3) Воспользовавшись методом наименьших квадратов, найдём параметры линейной регрессии «Сферический трейдер в вакууме»: инструкция по применению - 84 и «Сферический трейдер в вакууме»: инструкция по применению - 85 такие, что «Сферический трейдер в вакууме»: инструкция по применению - 86

4) На основании полученного «Сферический трейдер в вакууме»: инструкция по применению - 87 принимаем:

«Сферический трейдер в вакууме»: инструкция по применению - 88.

Параметр «Сферический трейдер в вакууме»: инструкция по применению - 89 компенсирует погрешность нормировки.

Листинг процедуры, выполняющей расчёт коэффициентов приведён ниже:

def getCoeff(x, y, p, S):
    X = np.log(x)
    Y = np.log(-np.log(y))
    n = len(X)
    
    k = (sum(X) * sum(Y) - n * sum(X * Y)) / (sum(X) ** 2 - n * sum(X ** 2))
    b = (sum(Y) - k * sum(X)) / n
    if p == 1:
        plt.figure(2)
        plt.plot(np.exp(X), np.exp(-np.exp(Y)), 'b', np.exp(X), np.exp(-np.exp(k * X + b)), 'r')
        plt.title(S)
        
        plt.show()
        
    return k

Ниже приводятся примеры для огибающих гистограмм для значений показателя Хёрста 0.1, 0.3, 0.5, 0.7 и 0.9 (синяя линия) и их модели (красная линия):

«Сферический трейдер в вакууме»: инструкция по применению - 90

«Сферический трейдер в вакууме»: инструкция по применению - 91

«Сферический трейдер в вакууме»: инструкция по применению - 92

«Сферический трейдер в вакууме»: инструкция по применению - 93

«Сферический трейдер в вакууме»: инструкция по применению - 94

При значениях показателя Хёрста выше 0.5 точность моделирования выше.

Теперь найдём зависимость «Сферический трейдер в вакууме»: инструкция по применению - 95 от «Сферический трейдер в вакууме»: инструкция по применению - 96. Для этого смоделируем ряд значений «Сферический трейдер в вакууме»: инструкция по применению - 97 для различных «Сферический трейдер в вакууме»: инструкция по применению - 98 и попробуем установить функциональную зависимость.

Я использовал для моделирования значения «Сферический трейдер в вакууме»: инструкция по применению - 99 от 0.01 до 0.99 с шагом 0.01. При этом, для каждого значения «Сферический трейдер в вакууме»: инструкция по применению - 100 значения «Сферический трейдер в вакууме»: инструкция по применению - 101 вычислялись 20 раз и усреднялись:

if __name__ == "__main__":

    N = 1000000;  
    M = 100; 
    
    Z = np.zeros((99, 2))
    
    for i in range(99):
        Z[i, 0] = (i + 1) * 0.01
        
        for j in range(20):
            W = float('nan')
            while np.isnan(W):
                W = testH(N, M, (i + 1) * 0.01, 0)
            Z[i, 1] += W
            
        Z[i, 1] *= 0.05
        print Z[i, :]
                
    X = Z[:, 0].T
    Y = Z[:, 1].T

    plt.figure(1)
    plt.plot(X, Y)
     
    plt.show()

Полученная зависимость имеет следующий вид:

«Сферический трейдер в вакууме»: инструкция по применению - 102

График похож на искажённый сигмоид, поэтому и закономерность будем искать в виде сигмоида:

K(H)=d - {c over b + e^{a_3 H^3 + a_2 H^2 + a_1 H + a_0}}   (3.4)

Проведение численной процедуры минимизации методом наименьших квадратов даёт следующие результаты:

«Сферический трейдер в вакууме»: инструкция по применению - 104

Суммарная квадратичная ошибка составляет порядка 0.005.

Ниже приведёны графики экспериментальной зависимости «Сферический трейдер в вакууме»: инструкция по применению - 105 (синяя линия) и модельной по формуле (3.4) (красная линия):

«Сферический трейдер в вакууме»: инструкция по применению - 106

Следует отметить, что полученная закономерность справедлива лишь для случая, когда «Сферический трейдер в вакууме»: инструкция по применению - 107 и «Сферический трейдер в вакууме»: инструкция по применению - 108. Поэтому в дальнейшем будем полагать эти условия выполняющимися (обеспечим их выполнение) и опустим соответствующие индексы.

Теперь, учитывая (3.3) и (3.4) для оцененного значения «Сферический трейдер в вакууме»: инструкция по применению - 109 мы знаем распределение абсолютного значения сделок. Используя свойство распределения преобразования случайной величины, произведём замену переменной в (3.4):

«Сферический трейдер в вакууме»: инструкция по применению - 110

Тогда:

f_{H}(Delta)=Ce^{-Delta^{K(H)}} >>> f'_{H}(delta)={C over K}delta^{{1 over {K(H)}}-1}e^{-delta}   (3.6)

Это функция плотности вероятности величины, имеющей гамма-распределение с количеством степеней свободы «Сферический трейдер в вакууме»: инструкция по применению - 112 и единичным параметром масштаба. Учитывая это, формула (3.6). Должна быть переписана как:

f'_{H}(delta)={1 over {Gammaleft({1 over {K(H)}}right)}}delta^{{1 over {K(H)}}-1}e^{-delta}   (3.7)

Подведём промежуточный итог:

Имея информацию о показателе Хёрста рынка «Сферический трейдер в вакууме»: инструкция по применению - 114, рассчитанном для того же периода истории, на котором мы тестируем систему, мы можем найти величину «Сферический трейдер в вакууме»: инструкция по применению - 115 используя формулу (3.4). Также мы можем найти среднюю интенсивность торговли «Сферический трейдер в вакууме»: инструкция по применению - 116 и параметр «Сферический трейдер в вакууме»: инструкция по применению - 117 для результатов сделок. Для того, чтобы предложенные выше формулы были справедливы, необходимо привести значения «Сферический трейдер в вакууме»: инструкция по применению - 118 и «Сферический трейдер в вакууме»: инструкция по применению - 119 к единице. Для этого выполним нормировку: «Сферический трейдер в вакууме»: инструкция по применению - 120, где «Сферический трейдер в вакууме»: инструкция по применению - 121 — результат «Сферический трейдер в вакууме»: инструкция по применению - 122 сделки (независимо от знака результата). Это преобразование следует из (3.1).

Согласно (3.7), величины «Сферический трейдер в вакууме»: инструкция по применению - 123 будут иметь гамма-распределения с параметрами «Сферический трейдер в вакууме»: инструкция по применению - 124. Следовательно, величины «Сферический трейдер в вакууме»: инструкция по применению - 125 будут иметь распределение хи-квадрат c «Сферический трейдер в вакууме»: инструкция по применению - 126 степенями свободы.

Пусть было совершено «Сферический трейдер в вакууме»: инструкция по применению - 127 прибыльных сделок со значениями дохода «Сферический трейдер в вакууме»: инструкция по применению - 128 и «Сферический трейдер в вакууме»: инструкция по применению - 129 с величинами убытка «Сферический трейдер в вакууме»: инструкция по применению - 130 (положительные значения). Тогда, с учётом «Сферический трейдер в вакууме»: инструкция по применению - 131 и (3.7), величины

P_H=2sum limits_{i=1}^{k_P}{(R_i^+)}^{K(H)}

и

L_H=2sum limits_{i=1}^{k_L}{(R_i^-)}^{K(H)}

будут иметь хи-квадрат распределения с количествами степеней свободы «Сферический трейдер в вакууме»: инструкция по применению - 134 и «Сферический трейдер в вакууме»: инструкция по применению - 135 соответственно.

Следовательно, величина:

PF_H={P_Hover{L_H}}times{k_Lover {k_P}}={{sum limits_{i=1}^{k_P}{(R_i^+)}^{K(H)}}over{sum limits_{i=1}^{k_L}{(R_i^-)}^{K(H)}}}times{k_Lover {k_P}}   (3.8)

будет иметь распределение Фишера c «Сферический трейдер в вакууме»: инструкция по применению - 137 степенями свободы (количество степеней свободы, в общем случае, будет нецелым, таким образом проявляются фрактальные свойства рынка).

Назовём величину «Сферический трейдер в вакууме»: инструкция по применению - 138 обобщённым нормированным профит-фактором. При «Сферический трейдер в вакууме»: инструкция по применению - 139 обобщённый профит-фактор вырождается в привычный нам нормированный профит-фактор (2.9).

Окончательное обобщение

Итак, мы исследовали «сферического трейдера» на случайном рынке и нашли распределение нормированного профит-фактора. Затем обобщили результаты на случай рынка с произвольной фрактальной размерностью, представленной измеримой величиной — показателем Хёрста.

Теперь у нас есть величина, которую мы назвали обобщённым нормированным профит-фактором, который вычисляется с использованием информации о результатах сделок (не забудем, кстати, скорректировать их с учётом спреда: отнять его от убытков и прибавить к доходам). Для большей универсальности методики, объём сделок считаем постоянным, либо измеряем всё в пунктах. Не забываем также проводить нормировку на среднюю длительность сделки и стандартное отклонение распределения результатов сделок: «Сферический трейдер в вакууме»: инструкция по применению - 140, где «Сферический трейдер в вакууме»: инструкция по применению - 141 — результат «Сферический трейдер в вакууме»: инструкция по применению - 142 сделки.

Все полученные на данный момент результаты завязаны на известное количество прибыльных и убыточных сделок, которое является случайной величиной с биномиальным распределением для известного общего количества сделок, которое, в свою очередь, также случайная величина, распределённая по Пуассону.

Введем новое обозначение. Пусть обобщённый нормированный профит-фактор (3.8) для заданного количества прибыльных «Сферический трейдер в вакууме»: инструкция по применению - 143 и количества убыточных «Сферический трейдер в вакууме»: инструкция по применению - 144 сделок (при известном показателе Хёрста «Сферический трейдер в вакууме»: инструкция по применению - 145) обозначается как «Сферический трейдер в вакууме»: инструкция по применению - 146 и имеет распределение Фишера со степенями свободы «Сферический трейдер в вакууме»: инструкция по применению - 147.

Тогда, с учётом биномиального распределения количества прибыльных и убыточных сделок, а также равновероятности получения дохода либо убытка на каждой сделке введём величину «Сферический трейдер в вакууме»: инструкция по применению - 148 — обобщённый нормированный профит-фактор, учитывающий лишь общее количество сделок. Эта величина будет иметь следующее распределение:

F_N(PF_{H, N})=left({1 over 2}right)^Nsumlimits_{k=0}^{N}{left[{N!over{k!(N-k)!}} F_{2kK(H),2(N-k)K(H)}(PF_{H, N})right]}   (4.1)

где «Сферический трейдер в вакууме»: инструкция по применению - 150 — плотность распределения Фишера со степенями свободы «Сферический трейдер в вакууме»: инструкция по применению - 151 и «Сферический трейдер в вакууме»: инструкция по применению - 152, а величина «Сферический трейдер в вакууме»: инструкция по применению - 153 описывается формулой (3.4), где «Сферический трейдер в вакууме»: инструкция по применению - 154 — показатель Хёрста.

На практике, при достаточно больших «Сферический трейдер в вакууме»: инструкция по применению - 155 выражение (4.1) может быть аппроксимировано неполной суммой:

F_N(PF_{H, N})={sumlimits_{k=a}^{b}{left[{N!over{k!(N-k)!}} F_{2kK(H),2(N-k)K(H)}(PF_{H, N})right]} over {sumlimits_{k=a}^{b}{N!over{k!(N-k)!}}}}   (4.1*)

где «Сферический трейдер в вакууме»: инструкция по применению - 157 и «Сферический трейдер в вакууме»: инструкция по применению - 158 («Сферический трейдер в вакууме»: инструкция по применению - 159) ограничивают некоторое подмножество возможных значений количества прибыльных сделок.

Теперь рассмотрим обобщённый нормированный профит-фактор без привязки к какому-либо количеству сделок, а лишь учитывающий среднюю интенсивность торговли «Сферический трейдер в вакууме»: инструкция по применению - 160 и период тестирования стратегии «Сферический трейдер в вакууме»: инструкция по применению - 161: «Сферический трейдер в вакууме»: инструкция по применению - 162. Учитывая, что общее количество сделок распределено по Пуассону, «Сферический трейдер в вакууме»: инструкция по применению - 163 будет иметь следующее распределение:

PF_{lambda_tau,T,H}=sumlimits_{k=0}^infty {{left(lambda_tau Tright)^kover{k!}}F_k(PF_{H,N})}   (4.2)

Или, для рассматриваемого количества сделок в диапазоне «Сферический трейдер в вакууме»: инструкция по применению - 165:

PF_{lambda_tau,T,H}={sumlimits_{k=a}^b {{left(lambda_tau Tright)^kover{k!}}F_k(PF_{H,N})} over {sum limits _{k=a}^b{left(lambda_tau Tright)^kover{k!}}}}   (4.2*)

Полученное распределение может использоваться для проверки значимости рассчитанного по (3.8) обобщённого нормированного профит-фактора для торговой системы с известными средней длительностью сделки и интенивностью торговли за известное время работы на рынке с известными волатильностью и показателем Хёрста. Методика применения теста абсолютно аналогична таковой для теста Фишера. Для её проведения достаточно заменить в (4.1) (или в (4.1*)) функцию плотности на функию распределения Фишера и подставить в качестве аргумента значение рассчитанного обобщённого профит-фактора. Полученное значение вероятности необходимо сравнить с величиной «Сферический трейдер в вакууме»: инструкция по применению - 167, где «Сферический трейдер в вакууме»: инструкция по применению - 168 — требуемый уровень значимости. При превышении этого уровня для рассчитанной статистики можно отвергать гипотезу о случайности торговой ситемы (о «сферичности трейдера в вакууме»).

Заключение

Предложенный в работе подход, основанный на построении обобщённого нормированного профит-фактора с учётом волатильности и фрактальных свойств рынка, а также интенсивности торговли и средней длительности сделок, позволяет построить статистический тест значимости достигнутых результатов с точки зрения вероятности получения аналогичных результатов случайным образом. Используя тест, можно с заданным уровнем значимости говорить о выполнении необходимого условия для констатации надёжности системы. Но полученные результаты не будут являться достаточным условием…

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

Автор: JamaGava

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js