Сделал я как-то такую штуку ... - страница 11

 

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

Если хотим исследовать статистику, как часто зигзаг будет ломаться рядом с целым уровнем это будут уже другие исследования, другие критерии…

З.Ы. я вообще считаю, что зигзаг и эта «пресловутая» фрактальность рынка вообще тут не причем, мы не это исследуем…

 
Prival:

Но это не то, это исследование ТС, а не силы (статистической значимости) круглого уровня. Любое внесение чего то дополнительного в алгоритм сбора статистики, уводит нас в сторону.

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


P.S. Для круглых уровней фрактальность ни при чём, а если речь зайдёт о других, то вполне может оказаться и "при чём".

 

Испытал NormalizeDouble. Результаты не совсем однозначные. Она оказалась несколько медленнее, чем вариант в два действия через целую переменную. Но не настолько, насколько я ожидал. То есть её в принципе можно использовать и в претендующих на скорость алгоритмах.

Но не для вычисления "круглых" уровней, потому что она не просто обрезает лишние цифры, а округляет.

 

Так, вот простейший скрипт, он подсчитывает число пересечений "круглых" уровней плюс Delta пунктов. Я применил его на минутках EURUSD, GBPUSD и USDCSD с 10:55 16.06.2004. Результат получился неожиданный и любопытный.

Принимаются комментарии как по тексту скрипта, так и по существу вопроса :)

// TestLevels.mq4
#property show_inputs

extern int Delta = 0;
//+------------------------------------------------------------------+
int start() {
  int pos;
  int ILvl;
  double RLvl;
  int Cnt = 0;
  for (pos=Bars-1;pos>0;pos--) {
    ILvl = High[pos]*100;
    RLvl = NormalizeDouble(0.01*ILvl+Delta*Point,Digits);
    if (High[pos] >= RLvl && Low[pos] <= RLvl) Cnt++;
  }
  Comment("Количество пересечений для Delta = ",Delta,"  составило ",Cnt,", Level: ",RLvl);
  return(0);
}


P.S. Для больших Delta скрипт врёт, но неожиданности результатов это отменять не должно

 

Так, ещё пост и пока ответов не будет больше на эту тему ни гу-гу :)

Сделал я опять рисующий гистограммы индикатор и вот что получилось для упомянутых трёх пар (по горизонтали - прибавка к круглому уровню в старых пунктах, начало в нуле, конец в 99)

это EURUSD и GBPUSD

это USDCAD


Файлы:
 
Candid:

    Я бы считал не простые пересечения круглого уровня, а количество совпадений вершин зигзагов с разными периодами для каждого шага между круглыми уровнями. Так, мысль навскидку. То есть не насколько цена задерживается около уровня, а насколько уровень является целевым для движений цены. Или может быть пересечений линиями зигзагов с разными периодами.
 

Долго что то у меня получается. пока сделал  индикатор на MQL-5

 

он показывает единицу  когда пробит уровень (по логике что описывал ранее)

для уровня 1.29 вот такая статистика

2010.07.18 21:20:45 TestLevel (EURUSD,M1) Сумма=1113
2010.07.18 21:20:45 TestLevel (EURUSD,M1) Символ EURUSD приод 1
2010.07.18 21:20:45 TestLevel (EURUSD,M1) Количество баров 4039582
2010.07.18 21:20:45 TestLevel (EURUSD,M1) Дата начала тестирования 1993.05.13 00:00:00

 т.е. он пробил уровень 1113 раз. 

Индикатор прилагаю. буду ковырять дальше.

З.Ы.  из твоей статистики если я правильно понял. уровень 50 пролетаем, но это не много нето что я предлагал, попробую сам написать сборщик статистики

Файлы:
testlevel.mq5  3 kb
 
Candid:
Ну первая степень всё-таки грубовато, но по крайней мере я рад что мы оба уважаем деление пополам.


Грубовато только если считать, что разбиение производится только один раз. Я же имел в виду, что делением пополам мы можем получить линии первого подуровня. Делением пополам интервалов между ними - линии второго подуровня. И т.д. То есть то, что реализовано в индикаторе Мюррея. Оно выглядит весьма правдоподобно.

Candid:
Я думаю пп. 1 и 2 можно свести к одному, выбрав горизонт мы можем получить и базу и интервал между уровнями.


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

Candid:

Результат получился неожиданный и любопытный.

Что-то я не догнал в чем неожиданность и любопытность. :-(

 
gip:

Я бы считал не простые пересечения круглого уровня, а количество совпадений вершин зигзагов с разными периодами для каждого шага между круглыми уровнями. Так, мысль навскидку.
Зигзаг был здесь немного раньше, разве не эту статистику он показывает?
 
Yurixx:


Грубовато только если считать, что разбиение производится только один раз. Я же имел в виду, что делением пополам мы можем получить линии первого подуровня. Делением пополам интервалов между ними - линии второго подуровня. И т.д. То есть то, что реализовано в индикаторе Мюррея. Оно выглядит весьма правдоподобно.

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


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

Я думаю что база содержится или в выбранном горизонте или в старшем. При этом, заметь, я не говорю что знаю алгоритм её определения.
Что-то я не догнал в чем неожиданность и любопытность. :-(

То есть ты не видишь здесь никаких статистически значимых эффектов? Я ожидал что их именно не будет, но похоже что они есть. Хотя и не слишком сильные, грааль вряд ли получится.