3. Далее, решил увеличить число баров в треугольниках до 7, немного переделал скрипт:
// Скрипт для подсчёта соотношения чисел затухающих и разгорающихся треугольников // // Skript OtnoshZatRazTreug, июнь 2012 // Примечание: скрипт может немного подвисать на ТФ M1. #property copyright "Copyright © Svinotavr-2000" #property link "DmitriyN" //#property show_inputs int start() { // Декларация double DliPer; // Длительность периода исследования, лет double n; // Количество бар, шт double KolZatTre; // Количество затухающих треугольников, шт double KolRazTre; // Количество разгорающихся треугольников, шт double OtnoshZatRaz; // Отношение числа затухающих треугольников к числу разгорающихся, раз double Pogreshnost; // Погрешность исследования, % // Берём число бар на 6 меньшее, чем всего n=Bars-6; // Цикл по всем барам for(int j = 0; j < n; j++) { // Считаем количество ЗАТУХАЮЩИХ треугольников =========== // Проверяем, являются ли High баров после начального бара (j+5) // _ меньше либо равными High начального бара (j+5) if (High[j+6] >= High[j+5]) { if (High[j+6] >= High[j+4]) { if (High[j+6] >= High[j+3]) { if (High[j+6] >= High[j+2]) { if (High[j+6] >= High[j+1]) { if (High[j+6] >= High[j]) { // Проверяем, являются ли Low баров после начального бара (j+5) // _ больше либо равными Low начального бара (j+5) if (Low[j+6] <= Low[j+5]) { if (Low[j+6] <= Low[j+4]) { if (Low[j+6] <= Low[j+3]) { if (Low[j+6] <= Low[j+2]) { if (Low[j+6] <= Low[j+1]) { if (Low[j+6] <= Low[j]) { KolZatTre=KolZatTre+1; }}}}}} }}}}}} // Считаем количество РАЗГОРАЮЩИХСЯ треугольников =========== // Проверяем, являются ли High баров после начального бара (j+5) // _ больше либо равными High начального бара (j+5) if (High[j+6] <= High[j+5]) { if (High[j+6] <= High[j+4]) { if (High[j+6] <= High[j+3]) { if (High[j+6] <= High[j+2]) { if (High[j+6] <= High[j+1]) { if (High[j+6] <= High[j]) { // Проверяем, являются ли Low баров после начального бара (j+5) // _ меньше либо равными Low начального бара (j+5) if (Low[j+6] >= Low[j+5]) { if (Low[j+6] >= Low[j+4]) { if (Low[j+6] >= Low[j+3]) { if (Low[j+6] >= Low[j+2]) { if (Low[j+6] >= Low[j+1]) { if (Low[j+6] >= Low[j]) { KolRazTre=KolRazTre+1; }}}}}} }}}}}} } // Вычисляем длительность периода истории исследования (календарный) DliPer = n*Period()/(1440*365); // Считаем отношение числа затухающих треугольников к разгорающимся OtnoshZatRaz=KolZatTre/KolRazTre; // Вычисляем погрешность расчётов Pogreshnost=(1/(KolZatTre) + 1/(KolRazTre))*100; // Формируем строки для печати string S0 = "\n" + "================= Результаты расчётов =================" + "\n" + "\n"; string S1 = "Исследовано бар = " + DoubleToStr(n,0)+ " шт" + "\n"; string S2 = "Длительность периода исследования = " + DoubleToStr(DliPer,1)+ " лет" + "\n"; string S3 = "Погрешность расчётов = " + DoubleToStr(Pogreshnost,3)+ " %"+ "\n"; string S4 = "Отношение числа затухающих треугольников к разгорающимся = " + DoubleToStr(OtnoshZatRaz,3)+ " раз"+ "\n"; string S5 = "Число затухающих треугольников = " + DoubleToStr(KolZatTre,0)+ " шт"+ "\n"; string S6 = "Число разгорающихся треугольников = " + DoubleToStr(KolRazTre,0)+ " шт"; // Выводим строки на экран Comment(S0, S1, S2, S3, S4, S5, S6); }
Пример результата работы скрипта:
Согласитесь, разницу в 23,1 раз при точности расчётов немногим более 2% сложно не назвать закономерностью.
Какой вывод из всего это можно сделать? Вывод - цена имеет ориентацию (направление).
Вполне возможно, что если цену вывернуть зеркально, то результаты работы многих советников будут совершенно иными и скорее всего - в пользу трейдеров:
Кому интересно - читайте, думайте, экспериментируйте ...
У кого есть желание проверить данную закономерность на графике со случайными приращениями, находящимися в нормальном распределении - дерзайте :)
Если у кого-то есть конструктивная критика (именно конструктивная, а не огульная) или предложения - буду рад выслушать.
из последних - вероятнее всего то что ты называешь затухающими треугольниками да ещё на часовках - это просто Сессионное уменьшение волатильности свечек :-)
и далее, ты пока - так сказать - нашёл точки отсчёта - а вот за ними - поведения баров (направление движения) - будут около 50/50... засим - всё это не имеет практической ценности :-) (без учёта ММ :-) ИМХО..
Если у кого-то есть конструктивная критика (именно конструктивная, а не огульная) или предложения - буду рад выслушать.
если вы в поиске закономерностей на форе, то будьте приличными:
1.Укажите от какого ДЦ данные или сведите для сравнения данные разных ДЦ, как по мне, закономерности фильтров нас мало интересуют.
2.Укажите не одну валютную пару и ТФ, а лучше - опять в таблычку разные пары и разные ТФ.
Имея подобный табличный материал уже можно будет поговорить...
;)
Исправил ошибки выше.
Таймфрейм | Отношение, раз | Точность, % | Период истории, лет |
---|---|---|---|
М1 | 2,185 | 0,003 | 8,3 |
М5 | 3,849 | 0,038 | 8,9 |
М15 | 9,569 | 0,313 | 8,9 |
М30 | 14,39 | 0,836 | 8,9 |
Н1 | 23,17 | 2,268 | 8,9 |
На ТФ H4 погрешность становится недопустимо большой - мало данных.
Число затухающих треугольников там - 143, а число разгорающихся - 1 (один) за историю в 9 лет.
Скорее всего метод расчёта точности и алгоритм формализации треугольников нужно будет пересмотреть.
А если еще не много усложнить ваш скрипт проверить временную частоту повторения появления треугольников
например в течении торгового месяца, недели, дня
имхо практической пользы было бы больше
Таблица 2: Пара - GBPUSD | Демо счёт | котировки Альпари | 7-и баровые треугольники
Таймфрейм | Отношение, раз | Точность, % | Период истории, лет |
---|---|---|---|
M1 | 2,844 | 0,004 | 8,1 |
M5 | 4,289 | 0,041 | 8,8 |
M15 | 7,688 | 0,243 | 8,9 |
M30 | 10,84 | 0,642 | 8,9 |
H1 | 17,25 | 1,793 | 8,9 |
На ТФ H4 погрешность большая - около 17,3%. Количество треугольников на истроии 9 лет - 161 шт /6 шт = 26,8 раз.
Решил перенести сообщения в отдельную тему...
1. Началось всё с того, что перечитывал книгу Вильямса и решил проверить какова доля внутренних баров на графике. Далее решил сопоставить долю внутренних и внешних баров, в результате чего выявилась закономерность: доля внутренних баров выше доли внешних баров.
это очевидно и без опытов. берем три тополя на плющихе - мал, мала, меньше.
каких тополей больше "внутренних" или "внешних"? конечно "внутренних" !
потому что внешние это те, которые - большие, а больших, длинных топол... тьфу ты, баров - очевидно меньше по статистике чем маленьких, коротких. Длинные свечи - реже. Короткие - чаще.
Закономерность? Да.
а теперь внимание вопрос: И что нам это дает?
ответ: Сетку!
рецепт обогащения:
Берем малый бар в цепочке сужения, и ставим сетку в обе стороны, с доливкой, чем дальше - тем доливистее. В чью сторону первый сыграет в профит - тот и выиграл.
2. Далее, следуя этой логике, решил исследовать соотношение внутрених и внешних треугольников. Внутренние треугольники я назвал затухающими, а внешние - разгорающимися.
С этой целью был написан простейший скрипт:
Хорошо бы еще собрать статистику по размерам в пунктах этих треугольников, и совсем хорошо бы - по времени (суток) их образования.
Предположу, что затухающие треугольники возникают на новостях.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Решил перенести сообщения в отдельную тему...
1. Началось всё с того, что перечитывал книгу Вильямса и решил проверить какова доля внутренних баров на графике. Далее решил сопоставить долю внутренних и внешних баров, в результате чего выявилась закономерность: доля внутренних баров выше доли внешних баров.
Напомню, что такое внутренние и внешние бары:
На скрине выше: бар B для бара А является внешним, а бар F для бара R является внутренним.
Для исследований в этой области был написан простой скрипт:
Пример результата работы скрипта:
2. Далее, следуя этой логике, решил исследовать соотношение внутрених и внешних треугольников. Внутренние треугольники я назвал затухающими, а внешние - разгорающимися.
С этой целью был написан простейший скрипт:
Вышеуказанный скрипт анализировал треугольники размером в 6 (шесть) бар. В этом скрипте был добавлен очень простой способ расчёта погрешности вычислений.
Пример результата работы скрипта:
Напомню, что такое затухающиеся и разгорающиеся треугольники. Пример затухающего треугольника (1) и разгорающегося (2):
1). 2).