Закономерности движений цен: Часть 2. Серии бар - страница 19

 
Aleksander:



Мишек.. а ты западло человек... не пиши сюда больше... мне лично противно с таким челом на одном поле даже гадить...

Так в этом и проблема, ты сюда гадить ходишь
 


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

 
kosolap:
Почкованием размножаешься?
 
Aleksander:

ну дак... Игра хорошая... а вот кораблики не правильно(неоптимально) выставлены... хотя... через 2-3 партии... всё будет пофиг...

Через 2-3 партии, ага щас. Там вообще-то пятипалубник. Без тренировки и первая до конца не дойдет.
 

Не спортивно как то ...

 
HideYourRichess:

Не спортивно как то ...


очень даже спортивно, в максимальном темпе успеть нагадить в большом количестве веток пока не забанили.
 
alsu:
Через 2-3 партии, ага щас. Там вообще-то пятипалубник. Без тренировки и первая до конца не дойдет.

ну не знаю... мы с другом както смотрели фильм про Охоту :-) Особенности которые... и под каждый тамошний тост по стопочке выпивали.... - ничего - 6 бутылок выпили на двоих... а тут какие то кораблики :-)

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

 
ну, я наверное ошибаюсь, но всерьез реагировать на эти детские истерики - как то, не знаю, мне смешно
 

В продолжении темы серий бар ...

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

Происходит это примерно так (в одном из худших случаев):

Откат происходит на одном из последующих баров. В данном случае это второй бар.

Я решил посчитать процентную статистику для этого правила и выяснил, что работает оно более чем в 99% случаев. Однако, это не означает, что
на этом правиле очень легко заработать деньги.

Для расчёта статистики написал скрипт:

// Скрипт для подсчёта вероятности отработки 50% HL бара на последующих барах //
// Skript 50 pro otkat, июнь 2012
#property  copyright "Copyright © Svinotavr-2000"
#property  link      "DmitriyN"
#property show_inputs                      // Показываем окно параметров 
extern string NameFileSave="Rezultat.txt"; // Имя файла для записи данных 
extern double Glubina=100;                 // Глубина исследования, бар 

int start()
 { 
   // Декларация переменных
   double DliPer;           // Длительность периода исследования, лет
   double CenaCentra;       // Цена центра бара - 50%
   int    Massiv[1000];     // Массив результатов
   double KolCikl;          // Количество циклов расчёта
   double progr;            // Переменная прогресс-индикатора (доля единицы)
   
   // Вычисляем длительность периода истории исследования (календарная)
   DliPer = Bars*Period()/(1440*365);
   // Формируем строки шапки для печати в файл
   string S0 = "\n" + "================= Результаты расчётов ================="+ "\n";  
   string S1 = "Исследовано бар = " + DoubleToStr(Bars,0)+ " шт";
   string S2 = "Длительность периода исследования = " + DoubleToStr(DliPer,1)+ " лет";
   string S3 = "Период исследуемого графика = " + Period() + " мин." + "\n";
   // Выводим строки в файл - шапка    
   SaveLineInFile(S0); 
   SaveLineInFile(S1); 
   SaveLineInFile(S2); 
   SaveLineInFile(S3);
   // Цикл по всем барам начиная с n и заканчивая предпоследним минус глубина
   Comment("Ждите, идёт расчёт");             // На мелких ТФ скрипт подвисает
   for(int j = Bars; j > Glubina+1; j--)
     { 
        KolCikl=KolCikl+1;
        // Цикл по глубине  
        for (int NomerBara=1; NomerBara < Glubina+1; NomerBara++)
        {             
               // Считаем среднюю цену начального бара
               CenaCentra=(High[j]-Low[j])/2+Low[j];
               // Проверяем дошла ли цена текущего бара (J+NomerBara) до середины бара (J)                                        
               if (CenaCentra >= Low[j-NomerBara])  { // 1-е условие
               if (CenaCentra <= High[j-NomerBara]) { // 2-е условие
               Massiv[NomerBara]=Massiv[NomerBara]+1;
               // Досрочно выходим из цикла, если нашли бар
               continue;     
               }}
        }                                   
        // Прогресс-индикатор ======================================
        progr=(KolCikl/Bars)*1000 - MathFloor((KolCikl/Bars)*1000);
        if (progr>0.9999)                     // Частые комменты тормозят расчёты, _
        {                                     // _ поэтому ограничим число изменений
        Comment("Ждите, идёт расчёт, выполнено: ", (KolCikl/Bars)*100 , " %");
        } //========================================================            
     }
     // Печать массива в файл
     string S5 = "Номер бара" +"\t"+ "Количество бар" +"\t" + "Процент бар";
     SaveLineInFile(S5); 
     for(int ii = 1; ii < Glubina+1; ii++)
     {
     string S6 = ii +"\t"+ Massiv[ii]+ "\t"+ DoubleToStr(Massiv[ii]/KolCikl*100,3); 
     SaveLineInFile(S6); // Печать строки
     }
   // Сообющение о завершении работы скрипта
   Comment("Работа скрипта полностью завершена, результаты находятся в файле /experts/files/", NameFileSave);         
   }
 
  
// Процедура записи строки в файл - строки дописываются в конец файла                                             
void SaveLineInFile(string text)
{
int file_handle=FileOpen(NameFileSave, FILE_READ|FILE_WRITE, " ");
   if (file_handle>0)
   {
   FileSeek(file_handle, 0, SEEK_END);  
   FileWrite(file_handle, text);        // Записываем в файл строку
   FileClose(file_handle);              // Закрываем файл
   }
}
Критика расчётной части скрипта приветствуется.
 

Далее ...
Данный скрипт пробегается по истории и рассчитывает количество свершившихся откатов и проценты в файл.
Выглядит это примерно так:

Это часть файла. Глубина проработки задаётся в исходных данных скрипта.
В данном случае мы видим, что на 1-м баре, после начального происходит 73,3% откатов, на 2-м баре - 51,8% откатов, на третьем - 42,5% и так далее...

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

В данном случае мы перенесли данные в Excel, посчитали в столбце E вероятность отката на каждом баре, затем в столбце F посчитали вероятность того, что это событие не произойдёт, а далее - в столбце G умножили эти вероятности и получили вероятность того, что откат не произойдёт за 10 бар.

В результате мы получили, что по статистике вероятность отката на барах с 1-го по 10-й составляет 100-0,7=99,3%

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