торговая стратегия на базе Волновой теории Эллиота - страница 58

 
В жизни есть много вещей, которые поначалу кажутся либо важными,либо наоборот - неважными. Вот как и результаты примитивного советника, которого по оценке Avals необходимо было сначала обосновать, хотя интуитивно заложенная в нем идея правильна. Но мне было проще поставить его на тестирование в реал, чем пытаться опровергнуть. Если он продержится до конца года - тогда я пожалуй займусь его тестированием в тестере :)


Summary:
Deposit/Withdrawal: 5 000.00 Credit Facility: 0.00
Closed Trade P/L: 1 186.63 Floating P/L: 560.29 Margin: 961.62
Balance: 6 186.63 Equity: 6 746.92 Free Margin: 5 785.30

Gross Profit: 3 669.45 Gross Loss: 2 482.82 Total Net Profit: 1 186.63
Profit Factor: 1.48 Expected Payoff: 23.27
Absolute Drawdown: 143.75 Maximal Drawdown (%): 858.39 (13.20%)

Total Trades: 51 Short Positions (won %): 26 (42.31%) Long Positions (won %): 25 (56.00%)
Profit Trades (% of total): 25 (49.02%) Loss trades (% of total): 26 (50.98%)
Largest profit trade: 540.94 loss trade: -292.62
Average profit trade: 146.78 loss trade: -95.49
Maximum consecutive wins ($): 6 (1 099.13) consecutive losses ($): 4 (-744.95)
Maximal consecutive profit (count): 1 099.13 (6) consecutive loss (count): -744.95 (4)
Average consecutive wins: 2 consecutive losses: 2
 
Немного подкрутил свой эксперт в плане смягчения условий входа в рынок и добавил переменный лот.
Результаты вот здесь https://c.mql5.com/mql4/forum/2006/06/new_results.zip
Размер лота варьировался от 5 до 80 долларов.
Алгоритм входа/выхода затачивался глядя на EURUSD и соответственно эксперт на истории за 3 года показал заметный результат. В связи с большими вычислениями для получения оценки системы в обозримом времени я просто ограничил выборку, в которой идёт обсчёт каналов величиной всего лишь в 300 баров. То есть по времени это составляет 12,5 торговых дней. Хотя на самом деле нужно считать гораздо более длительные выборки для повышения надёжности точки входа. Я ещё раз прогоню эксперт при длиной выборке, чтобы получить экспериментальное доказательство моего предположения, но это потребует определённого времени расчёта. После получения представленого в файле результата на EURUSD прогнал эксперта ПРИ ТЕХ ЖЕ САМЫХ ПАРАМЕТРАХ (включая даже параметр трейлингстопа!), при которых эксперт затачивался на EURUSD на парах GBPUSD и USDCAD. Естественно на 2х других парах заметного результата добиться не удалось, но думаю, что полученный результат всё равно имеет положительное смещение. Поэтому я могу сделать 2 вывода. Первый это то, что система, предложенная Владиславом, вполне может быть прибыльной при аккуратной технической реализации. Второй, под разные валютные пары следует подбирать параметры эксперта, хотя возможно что Владислав смог найти универсальные признаки работающие на всех валютных парах без коррекции. Если сравнить эти 3 валютные пары, то можно обнаружить следующие различия. Пара USDCAD имеет более частные быстрые движения по сравнению с EURUSD. То есть если для EURUSD требуется например 3 часа, чтобы пройти 1,5 фигуры, то для USDCAD такое иногда может случиться и за час в связи с чем возникает серьёзная проблема запаздывания по крайней мере на периоде H1, для которого был получен результат. В общем я собираюсь продолжать исследования в этом направлении. Сейчас первостепенной задачей я считаю обоснованное подтягивание стопов. Когда и на сколько их подтягивать при торговле. Поскольку очевидно, что стандартный трейлингстоп много взять не позволяет. Будем разбираться далее.
 
Добрый день Solandr!

Вы бы не могли сказать какие условия Вы смягчили?
 
Вы бы не могли сказать какие условия Вы смягчили?

Уменьшил размер выборки для расчёта, а также период расчёта индикатора уровней Мюррея. Если у вас короткая выборка, то локальных максимумов и минимумов, удовлетворяющих точке входа, становится больше. Также если уровни Мюррея посчитаны для меньшего периода, то они расположены ближе друг к другу, повышая вероятность входа в рынок. Сравните 31 сделку из предыдущего файла и 80 из нового. В результате смягчения условий входа количество сделок возросло, но и соответственно понизилось само их качество. Однако введение переменного размера лота как у Владислава смогло превысить полученный результат из предыдущего файла за тот же самый период времени при том же самом количестве риска.
 
Выложил новые результаты тестирования эксперта https://c.mql5.com/mql4/forum/2006/06/new_results2.zip
В результатах присутствуют данные полученные на паре EURUSD при разных длинах выборки, на которой происходит поиск каналов. Гонял при длинах в 300 и 1000 барах на периоде H1. Как и предполагалось более длинная выборка улучшила показатели отчёта о тестировании эксперта. Правда не слишком существенно. Увеличение длины выборки более чем в 3 раза привело к увеличению конечной прибыли всего лишь на 4%. Сделок на более длинной выборке как и ожидалось оказалось меньше (на 19%), но возросло качество самих сделок, о чём говорит рост показателя прибыльности на 14%. В итоге уменьшение количества сделок при росте показателя прибыльности всё равно дало некоторое увеличение итоговой прибыли.

Также в указанном файле присутствуют результаты прогона эксперта, заточенного для EURUSD, на валютных парах USDCHF и USDJPY по выборке в 300 баров на периоде H1. На валютной паре USDCHF результат имеет явное положительное смещение. А на паре USDJPY результат показал на протяжении всего срока тестирования блуждание вокруг нуля. При этом само количество совершённых сделок оказалось примерно в 3 раза меньше, чем это было при тестировании на таком же периоде на других валютных парах. На основании этого я могу сделать вывод о том, что характер пары USDJPY имеет существенное отличие от тех пар, на которых уже было проведено тестирование. Соответственно если имеющаяся у меня версия стратегии и сможет работать на паре USDJPY, то для этого нужно будет приложить определённые усилия и возможно пересмотреть алгоритм входа/выхода из рынка для этой пары.
Кстати говоря ведь Владислав почему-то не торгует на всех парах на демке (хотя ведь в принципе никаких технических сложностей нет, либо они вполне решаемы), а ведёт торговлю лишь на 3х парах - EURUSD, USDCHF,GBPUSD. И я думаю, что возможно это не просто так, а для этого у него были какие-то основания.
 
Всем привет ! Вроде закончил с МТСинкой ;) - уже несколько дней идет по разметке, багов существенных не наблюдалось, так что буду приступать ко второму этапу тестирования: как я и говорил с понедельника закрою прямой доступ к счету на Лайтах - это тот с которого льется на ампир. Возможно просто сменю инвесторский пароль, а может и совсем его брошу мониторить - незачем зря комп гонять: перебираюсь на тестирование на реал. Что там будет дальше - посмотрим.
Надеюсь многие продвинулись до практических реализаций ?

Удачи и попутных трендов.
 
Добрый день Vladislav!

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

1.
Jhonny 16.06.06 16:48

Vladislav, не могли бы Вы ответить на несколько вопросов....
1) Уровень значимости критериев отбора каналов у Вас одинаков(т.е. вы находите оптимальное сочетание этих критериев), или идет последовательный отбор от более значимых критериев к менее значимым.
2) Начитавшись умных книжек я забыл чего надо найти :). Если я правильно понял что Вы имеете ввиду под понятием функционала потенциальной энергии, то не понятно зачем мы его ищем, так как результатом поиска будет уравнение(не значение, а функция!) траектории при движении по которой изменение потенциальной энергии(в процессе движения, а не при достижении конечной точки!) будет минимальным, а я так понимаю по этой самой траектории и движется цена, и мы уже выбрали уравнение которым решили аппроксимировать эту траекторию (это ур-е регрессии), то есть нам остается лишь сделать вывод на сколько хорошо мы аппроксимировали эту траекторию. Но еслиж его всетаки искать то по идее как раз найдется квадратичная функция и вот если коэффициенты В и С в уравнении Ах^2+Вх+С будут равны(или очень близки) коэффициентам в ур-е регрессии то наверно и это тот канал котоый нужен, хотя меня смутные сомнения уже растерзали :)


2. Вопрос по поводу распределения в канале...

Vladislav 13.03.06 21:38

....Есть еще центральная предельная теорема, которая говорит, что любое сходящееся распределение с ростом степеней свободы сходится к нормальному (потому нам не сильно то и важно каково оно внутри, лишь бы сходилось ;)....

Эту фразу я понял так что мы принимаем распределение в канале как нормальное и расчет доверительных интервалов ведем используя функцию нормльного распеределения. Но были и другие логически обоснованные мнения...


solandr 18.06.06 08:42

Честно говоря как раз вот разница при разных значениях N меня и интересует. Распределение Стьюдента оставаясь по форме качественно тем же самым меняет свои количественные параметры при разных степенях свободы. При очень большом количестве степеней свободы оно должно совпадать с нормальным распределением. При малом количестве степеней свободы оно имеет отличия от нормального.
Распределение Стьюдента при разных степенях свободы:
Для вероятности 99%:
q(30 баров)=2.750
q(100 баров)=2.626
q(300 баров)=2.593
q(1000 баров)=2.581
Если Вы считаете, что разница в 6% между значением квантиля для 30 баров и 1000 баров не стоит дополнительных мучений, то это Ваш личный выбор. Я придерживаюсь несколько иного мнения.


3. И еще один вопрос по поводу коэффициента Херста


Jhonny 17.06.06 16:49

...у меня вообще по Херсту для каналов с выборками меньше примерно 80 показатель >1 так что походу где-то ошибка...

Но на странице http://www.xaoc.ru/index.php?option=com_forum&Itemid=0&page=viewtopic&p=2380 , есть такое высказывание по этому поводу:
просто при нахождении показателя при линейной аппроксимации возникает погрешность, считай что это 1

Можно ли считать это утверждение верным или ошибка скорее всего у меня в алгоритме?

P.S. Я надеюсь что не сильно напрягаю Вас этими вопросами и с нетерпением жду ответа.
 
Добрый день Vladislav!

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

1.
Jhonny 16.06.06 16:48

Vladislav, не могли бы Вы ответить на несколько вопросов....
1) Уровень значимости критериев отбора каналов у Вас одинаков(т.е. вы находите оптимальное сочетание этих критериев), или идет последовательный отбор от более значимых критериев к менее значимым.

Нет не одинаков - у каждого свой весовой коэффициент.

2) Начитавшись умных книжек я забыл чего надо найти :). Если я правильно понял что Вы имеете ввиду под понятием функционала потенциальной энергии, то не понятно зачем мы его ищем, так как результатом поиска будет уравнение(не значение, а функция!) траектории при движении по которой изменение потенциальной энергии(в процессе движения, а не при достижении конечной точки!) будет минимальным, а я так понимаю по этой самой траектории и движется цена, и мы уже выбрали уравнение которым решили аппроксимировать эту траекторию (это ур-е регрессии), то есть нам остается лишь сделать вывод на сколько хорошо мы аппроксимировали эту траекторию. Но еслиж его всетаки искать то по идее как раз найдется квадратичная функция и вот если коэффициенты В и С в уравнении Ах^2+Вх+С будут равны(или очень близки) коэффициентам в ур-е регрессии то наверно и это тот канал котоый нужен, хотя меня смутные сомнения уже растерзали :)


Я уже об этом писал неодорнкратно. Когда Вы ищете выборку для построения канала регрессии Вы увидите, что эта выборка может быть построена не единственным образом на данный момент времени. Каким либо образом нужно провести отбор. Я в качестве основного выбрал этот критерий - обоснование излагал выше по ветке. Алгоритм простой: строим, проверяем, выбираем экстремальный.

2. Вопрос по поводу распределения в канале...

Vladislav 13.03.06 21:38

....Есть еще центральная предельная теорема, которая говорит, что любое сходящееся распределение с ростом степеней свободы сходится к нормальному (потому нам не сильно то и важно каково оно внутри, лишь бы сходилось ;)....

Эту фразу я понял так что мы принимаем распределение в канале как нормальное и расчет доверительных интервалов ведем используя функцию нормльного распеределения. Но были и другие логически обоснованные мнения...


Нет - считается наихудшее сходящееся :) (оно с ростом степеней свободы также сходится к нормальному). Я об этом писал и solandr совершенно верно все пронял.

solandr 18.06.06 08:42

Честно говоря как раз вот разница при разных значениях N меня и интересует. Распределение Стьюдента оставаясь по форме качественно тем же самым меняет свои количественные параметры при разных степенях свободы. При очень большом количестве степеней свободы оно должно совпадать с нормальным распределением. При малом количестве степеней свободы оно имеет отличия от нормального.
Распределение Стьюдента при разных степенях свободы:
Для вероятности 99%:
q(30 баров)=2.750
q(100 баров)=2.626
q(300 баров)=2.593
q(1000 баров)=2.581
Если Вы считаете, что разница в 6% между значением квантиля для 30 баров и 1000 баров не стоит дополнительных мучений, то это Ваш личный выбор. Я придерживаюсь несколько иного мнения.



3. И еще один вопрос по поводу коэффициента Херста


Jhonny 17.06.06 16:49

...у меня вообще по Херсту для каналов с выборками меньше примерно 80 показатель >1 так что походу где-то ошибка...

Но на странице http://www.xaoc.ru/index.php?option=com_forum&Itemid=0&page=viewtopic&p=2380 , есть такое высказывание по этому поводу:
просто при нахождении показателя при линейной аппроксимации возникает погрешность, считай что это 1

Можно ли считать это утверждение верным или ошибка скорее всего у меня в алгоритме?

P.S. Я надеюсь что не сильно напрягаю Вас этими вопросами и с нетерпением жду ответа.



При расчетах конечно же погрешность возникает. Основным критерием является значение выше\ниже 0,5 (это в варианте формулы с к-том 0,5, если Вы сдвинули к нулю или единице, то соответственно относительно параметра сдвига). По поводу ошибки в Вашем алгоритме - и это может быть ;). Кроме Вас кто сможет проверить ?

Удачи и попутных трендов.
 
Спасибо Vladislav. Вы меня извините и так наглею уже некуда...
Но вопрос по поводу функицонала для меня по крайней мере остался открытым. Буду сам в этой области чегонить изобретать :). Еще раз спасибо!
 
Заходил на эту ветку довольно давно, но тогда еще не было четвертого по счету топика, с которого все самое интересное и началось. Спасибо всем участникам, узнал много интересного для себя. Но как говориться, многие знания – многие не то, что бы беды, а скорее вопросы.

Почитав дополнительные материалы по расчету показателя Херста, натолкнулся на исследования Федера. Он утверждал, что эмпирический закон – H=Log(R/S)/Log(0.5*N) достаточно плохо работает и дает относительно правильные данные только для небольших выборок (правда о величине этих выборок ничего не было сказано). Поэтому, решил реализовать расчет показателя Херста строго по методическим материалам (кажется, получилось еще хуже, чем предостерегал господин Федер).

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

В своих расчетах отталкивался только от формул в методичках, ничего лишнего.

Реализация довольно простая, в виде скрипта. Всего восемь функций, описание которых прилагаю ниже, так же есть комментарии в исходном коде. Получение массива с расчетными данными от функции, реализовал следующим образом. Каждой функции передается массив double out[], в теле функции этот массив инициализируется и в зависимости от назначения функции в массив записываются расчетные данные.

void GetVn(double out[], int N, int i)
Формирую «Приток» - v[]. В качестве притока, беру цену закрытия. Результат записывается в массив out[]

void SetArrayMv(double v[], double out[], int N)
Рассчитываю средний приток – mv[] для всех наблюдений. Функции передается приток, и число наблюдений - N

void SetArrayDv(double v[], double out[], double mv[], int N)
Рассчитываю накопившееся отклонение притока – dv[]. Передаю массивы «приток», «средний приток» и число наблюдений

void SetArrayR(double dv[], int N, double out[])
Рассчитываю размах – r[]. Передаю в функцию приток и число наблюдений.

void SetArrayS(double v[], double mv[], double out[], int N)
Рассчитываю стандартное отклонение s[]. Передаю «приток», «средний приток» и число наблюдений

void SetArrayRS(double r[], double s[], double out[], int N)
Рассчитываю нормированный размах. Значения R/S записываю в массив rs[]. Функции передаю «размах», «стандартное отклонение» и число наблюдений

void LogN(double out[], int N)
Рассчитывает массив логарифма от N

void GetLine(double x[],double y[], int N)
Вычисляю коэффициенты аппроксимирующий прямой.

//+------------------------------------------------------------------+
//|                                                        HERST.mq4 |
//+------------------------------------------------------------------+
#property copyright ""
#property link      "grasn@rambler.ru"

int start()
{
   int i=0;
   int N=100;

   double v[];                         // Приток
   
   double mv[];                        // Средний приток
   double dv[];                        // Накопившееся отклонение
   
   double r[];                         // Размах
   double s[];                         // Стандартное отклонение
   
   double rs[];                        // Нормированный размах
   double logN[];                      // логарифм от N
   
   GetVn(v, N, i);
   SetArrayMv(v, mv, N);
   SetArrayDv(v, dv, mv, N);

   SetArrayR(dv, N, r);
   SetArrayS(v, mv, s, N);
   SetArrayRS(r, s, rs, N);
   
   LogN(logN, N);
            
   GetLine(logN, rs, N);
   
   return(0);
}

// Приток
// ________________________________________________________________________________________
// "Приток".....................................................................double out[]
// Длина выборки......................................................................int N
// номер бара с которого выполняется выборка..........................................int i

void GetVn(double out[], int N, int i)
{
   int n;
   int k;      

   double x[];

   ArrayResize(x, N);
   ArrayInitialize(x, 0.0);

   ArrayResize(out, N);
   ArrayInitialize(out, 0.0);

   k=i+N-1;
      
   for(n=0; n<=N-1; n++)
   {
      x[n]=Close[k];
      k=k-1;
   }

   ArrayCopy(out, x, 0, 0, WHOLE_ARRAY);
      
   return(0);
}

// Средний приток 
// ________________________________________________________________________________________
// Приток ........................................................................double v[]
// Средний приток ..............................................................double out[]
// Число наблюдений...................................................................int N

void SetArrayMv(double v[], double out[], int N)
{
   int n;
   int i;
   
   double SUM;
   double mv[];

   ArrayResize(mv, N);
   ArrayInitialize(mv, 0.0);

   ArrayResize(out, N);
   ArrayInitialize(out, 0.0);
      
   for(n=0; n<=N-1; n++)
   {
      SUM=0.0;   
      
      for(i=0; i<=n; i++)
      {
         SUM=SUM+v[i];
      }
      
      mv[n]=(1.0/(n+1))*SUM;
   }
   
   ArrayCopy(out, mv, 0, 0, WHOLE_ARRAY);
 
   return(0);
}

// Накопившееся отклонение притока от среднего
// ________________________________________________________________________________________
// Приток ........................................................................double v[]
// Накопившееся отклонение притока..............................................double out[]
// Средний приток................................................................double mv[]
// Число наблюдений...................................................................int N

void SetArrayDv(double v[], double out[], double mv[], int N)
{
   int n;
   int i;
   
   double dv[];
   double SUM;

   ArrayResize(dv, N);
   ArrayInitialize(dv, 0.0);

   ArrayResize(out, N);
   ArrayInitialize(out, 0.0);

   for(n=0; n<=N-1; n++)
   {
      SUM=0.0;
      
      for(i=0; i<=n; i++)
      {
         SUM=SUM+(v[i]-mv[i]);
      }
      
      dv[n]=SUM;
   }
   
   ArrayCopy(out, dv, 0, 0, WHOLE_ARRAY);
      
   return(0);   
}

// Размах
// ________________________________________________________________________________________
// Накопившееся отклонение притока от среднего...................................double dv[]
// Размах.......................................................................double out[]
// Число наблюдений...................................................................int N

void SetArrayR(double dv[], int N, double out[])
{
   int n;
   
   int idMax;
   int idMin;
   
   double rn[];
      
   double max;
   double min;

   ArrayResize(rn, N);
   ArrayInitialize(rn, 0.0);

   ArrayResize(out, N);
   ArrayInitialize(out, 0.0);   

   for(n=1; n<=N; n++)
   {
      idMax=ArrayMaximum(dv, n, 0);
      idMin=ArrayMinimum(dv, n, 0);
      
      max=dv[idMax];
      min=dv[idMin];
      
      rn[n]=MathAbs(max-min);
   }
   
   ArrayCopy(out, rn, 0, 0, WHOLE_ARRAY);
   
   return(0);
}

// Стандартное отклонение
// ________________________________________________________________________________________
// Приток.........................................................................double v[]
// Среднее приток................................................................double mv[]
// Стандартное отклонение.......................................................double out[]
// Число наблюдений...................................................................int N

void SetArrayS(double v[], double mv[], double out[], int N)
{
   int n;
   int i;
   
   double sn[];
   double SUM;

   ArrayResize(sn, N);
   ArrayInitialize(sn, 0.0);

   ArrayResize(out, N);
   ArrayInitialize(out, 0.0);   
   
   for(n=0; n<=N-1; n++)
   {
      SUM=0.0;
      
      for(i=0; i<=n; i++)
      {
         SUM=SUM+MathPow((v[i]-mv[i]), 2);
      }
     
      sn[n]=MathSqrt((1.0/(n+1))*SUM);
   }
   
   ArrayCopy(out, sn, 0, 0, WHOLE_ARRAY);
   
   return(0);
}

// Нормированный размах
// ________________________________________________________________________________________
// Размах.........................................................................double r[]
// Стандартное отклонение.........................................................double s[]
// Нормированный размах.........................................................double out[]
// Число наблюдений...................................................................int N
void SetArrayRS(double r[], double s[], double out[], int N)
{
   int n;
   
   double rs[];

   ArrayResize(rs, N);
   ArrayInitialize(rs, 0.0);

   ArrayResize(out, N);
   ArrayInitialize(out, 0.0);  
      
   for(n=3; n<=N-1; n++)
   {  
      if(s[n]==0)
      {
         rs[n]=0.0;
      }
      else 
      {
         rs[n]=MathLog(r[n]/s[n]);
//         Print("rs ", rs[n]);
      }
   }
   
   ArrayCopy(out, rs, 0, 0, WHOLE_ARRAY);
   
   return(0);
}

// Логарифм N
// ________________________________________________________________________________________
// Логарифм N...................................................................double out[]
// Число наблюдений...................................................................int N
void LogN(double out[], int N)
{
   int n;
      
   double logN[];
   
   ArrayResize(logN, N);
   ArrayInitialize(logN, 0.0);

   ArrayResize(out, N);
   ArrayInitialize(out, 0.0);   
   
   for(n=3; n<=N-1; n++)
   {
      logN[n]=MathLog(n);
//      Print("n ", logN[n]);
   }
   
   ArrayCopy(out, logN, 0, 0, WHOLE_ARRAY);
   
   return(0);   
}

// Расчет коэффициентов аппроксимирующей линии
// ______________________________________________________________
// log(R/S).......................................................................double x[]
// log(N)................................................................................y[]
// Число наблюдений...................................................................int N
void GetLine(double x[],double y[], int N)
{
   double m=0;
   double b=0;
   double tan = 0;
      
   int size=N;
   double sum_x=0.0;
   double sum_y=0.0;
   double sum_xy=0.0;
   double sum_xx=0.0;
      
   for (int i=3; i<size; i++)
   {
      sum_x=sum_x+x[i];
      sum_y=sum_y+y[i];
      sum_xy=sum_xy+(x[i]*y[i]);
      sum_xx=sum_xx+(x[i]*x[i]);
   }

   m = (size*sum_xy - sum_x*sum_y) / (size*sum_xx - sum_x*sum_x);
   b = sum_y/size - m * sum_x / size;

           
   Print("Аппроксимирующая прямая: y(x)=", m, "x+", b);
   Print("Показатель Херста= ", m);
   
   return(0);
}



Привожу графики в логарифмических координатах log(R/S) и log(N) для случайного ряда и для дневных котировок EURUSD
Случайный ряд сгенерировал с помощью функции MathRand() со следующими параметрами.
N=100
Результат:
H=0.5454
Y(x)=0.5454x+0.2653

При увеличении N, показатель Херста приближается к 0.5


EURUSD D1 расчет выполнялся со следующими параметрами:
i=0 (начиная с 27.06)
N=100

Результаты расчета:
H=1.0107 (и чего он у меня такой огромный?)
y(x)=1.0197x-0.5885



Есть несколько вопросов:
1. Что брать за приток? Полную цену, разность по модулю, только положительную разность? Другими словами, имеет ли понятие «приток» в рассматриваемом методе влияние на предварительную подготовку данных? Или следует за приток принимать данные, которые надо исследовать. Я интуитивно, к примеру, взял в расчетах цену закрытия.

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

3. Не нравятся мне и сами результаты. Приведу пример нескольких вариантов расчета для EURUSD:

Приток (Close[] D1) на всех барах Показатель Херста 0.9069
Приток (Close[] D1) i=0, N=200 Показатель Херста 0.8264

Уж больно цифры, какие то оптимистичные и к тому же, данные не совпадают с данными Vladislava (0.64 для всего ряда), но встречаются и очень маленькие значения. Для разности цен на всех барах у меня получается значения показателя Херста 0.5119

4. Правильно ли я рассчитываю средний приток. Одно значение для всех итераций или он должен меняться в зависимости от текущего N?

5. Есть вероятность, что я все перепутал и показатель вычисляется совсем не так. Объясните пожалуйста, где я напутал :о(

PS: Надеюсь, что участники форума помогут мне разобраться. Буду очень признателен, если Vladislav уделит мне немного времени и объяснит, где я ошибаюсь по такой простой методикой.

Причина обращения: