Рыночный этикет или правила хорошего тона на минном поле - страница 74

 
Neutron >>:

Я ошибаюсь гораздо чаще, чем это можно себе представить (почти всегда).

Структурно, коды для Каги и Ренко идентичны. Алгоритм содержит два оператора сравнения. Разница только в одном из них - для Каги вершина определяется с точностью до дискретности котира, для Ренко - до шага разбиения Н.

И уж если Вы смогли воткнуть Ренко алгоритм в три строчки, то, следовательно Каги автоматически (с точностью до справедливости моего утверждения) удовлетворит этому условию.

Присмотрись, у меня независимая индексация для котира, и для Каги-построения. Я из подпрограммы вывожу не только вертикальные координаты Каги-отсчётов, но и их индексы в координатах котира...

Хорошо, вот маленький скрипт, с алгоритмом ренко. Можно конечно в 3 строчки написать, но всё равно это 15 операторов. Включая присвоение, ветвление и т.д. За вычетом вывода результатов в файл.

//+------------------------------------------------------------------+
//|                                              test_Renko_Kagi.mq4 |
//|                                Copyright © 2009, HideYourRichess |
//+------------------------------------------------------------------+
int      rand[];
int      Series = 65000;
int      H = 7;

int start()
  {
   int csvHandle = FileOpen( "test_Renko_Kagi" + ".csv", FILE_CSV|FILE_WRITE, ';');
   if( csvHandle > 0) {
    ArrayResize( rand, Series);
    
    rand[0] = 0;
    MathSrand( TimeLocal());
    for( int i = 1; i < Series; i++) { rand[i] = rand[i-1] + (MathRand() - 16383) / 4000; }
    
    int renko = rand[0];
    FileWrite( csvHandle, 0, rand[0], renko);
    
    for( i = 1; i < Series; i++) {
     if( MathAbs( rand[i] - renko) < H) {
      FileWrite( csvHandle, i, rand[i]);
     } else {
      while( rand[i] - renko >= H) { renko = renko + H; }
      while( renko - rand[i] >= H) { renko = renko - H; }
      FileWrite( csvHandle, i, rand[i], renko);
     }
    }
    
   }
   if( csvHandle > 0) FileClose( csvHandle);
   return(0);
  }

Алгоритм умеет корректно работать на данных с пропусками, гэпами и т.д. И это хорошо и полезно.


Вот рисунок. Синие - данные, красное - ренко.


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


Для каги алгоритм сложнее, как по логике, так и по количеству операторов.


Теперь вопросы,

1. что нужно сделать с этим ренко-алгоритмом, что бы он стал короче?

2. что нужно сделать что бы этот ренко стал каги-алгоритмом, и при этом не стал сложнее?


Мне пока не видно разумных решений, но Вы утверждаете что всё просто и возможно.

 

Вот, кажется получилось каги. Буду рад, если кто-то проверит.



 
HideYourRichess писал(а) >>

Для каги алгоритм сложнее, как по логике, так и по количеству операторов.

Если за основу брать алгоритм построений описанный в работе Пастухова, то отличие Ренко от Каги именно в шаге дискретизации вершины по вертикальной оси. Это то, о чём я говорил выше.

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

paralocus писал(а) >>

Вот, кажется получилось каги. Буду рад, если кто-то проверит.

paralocus, ты кинь файл с котиром и программой, тогда можно будет сравнить. Либо объясни, что за параметры у тебя Р и m.
 
Листинг и котировки прицепил. Параметр Р - это ряд Open(в данном случае минуток GBPUSD - есть в архиве) Параметр m это количество элементарных базовых разбиений s в одном шаге каги
Файлы:
kagi.rar  163 kb
 
Neutron >>:

Если за основу брать алгоритм построений описанный в работе Пастухова, то отличие Ренко от Каги именно в шаге дискретизации вершины по вертикальной оси. Это то, о чём я говорил выше.

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


У меня складывается впечатление, что у Вас нет такого алгоритма, а именно алгоритм каги по сложности не больше чем алгоритм ренко.


Давайте сначала с этим разберемся, а потом уже с моим пониманием.


Другой момент, вопрос в обработке начала ряда. Вот например Ваш рисунок.




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


Кроме того, остаётся открытым вопрос корректной обработки "гэпов" в данных.

 
paralocus >>:

Вот, кажется получилось каги. Буду рад, если кто-то проверит.

Это не каги. Локальные вершины пропускаются.

 
HideYourRichess >>:

Это не каги. Локальные вершины пропускаются.

А можно чуть конкретней? По алгоритму разбиения каги локальные вершины иногда будут пропускаться.

 
paralocus >>:

А можно чуть конкретней? По алгоритму разбиения каги локальные вершины иногда будут пропускаться.

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


Нужно что бы получилось примерно так.


Красные - вершины каги, или вершины зигзага. Зеленые, точки "невозврата" - место где определяется, что очередная вершина каги полностью сформирована. Темно-синии точки - данные.

 
HideYourRichess >>:

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



К сожалению диссер Пастухова значительно превышает уровень моих способностей к пониманию математики.

 
paralocus >>:

К сожалению диссер Пастухова значительно превышает уровень моих способностей к пониманию математики.

Ну тогда забей. Там математически доказано несколько вещей, и это интересно математикам. А выводы довольно просты, и в основной своей массе описываются словами. По сути, Н-волотильность - это непараметрическая статистика. Главный вывод, если Н-волотильность равна 2Н то арбитраж на таком ряде невозможен (доказано математически). Иначе, арбитраж возможен. При этом есть две стратегии, в зависимости от того, Н-волотильность больше или меньше 2Н. Это основное. Плюс несколько замечаний про паттрены и т.д.

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