价格变动的规律性:第一部分。价格定位

 

决定把帖子移到一个单独的主题...

1.这一切始于我重读威廉姆斯的书,并决定检查图表上的内部条形图份额。然后,我决定比较内部和外部酒吧的部分,结果,我发现了以下模式:内部酒吧的部分比外部酒吧的部分高。

让我提醒你什么是内部和外部酒吧。

在上面的截图中:A条的B条是外部,R条的F条是内部。

为该领域的研究编写了一个简单的脚本。

// Скрипт для подсчёта доли внешних и внутренних бар //
#property  copyright "Copyright © Svinotavr-2000"
#property  link      "DmitriyN"

int start()
 {
   double n;                // Количество бар всего, шт
   double KolVneshBar;      // Количество внешних бар, шт
   double KolVnutrBar;      // Количество внутренних бар, шт
   double ProcentVneshBar;  // Процент внешних бар, %
   double ProcentVnutrBar;  // Процент внутренних бар, %
   double OtnoshVnutKVnesh; // Отношение числа внутренних бар к числу внешних бар, раз
   // Берём число бар на единицу меньшее, чем всего
   n=Bars-1; 
   // Цикл по всем барам
        for(int j = 0; j < n; j++)
        {      
               // Считаем количество внешних бар
               if ((High[j+1] < High[j]) && (Low[j+1] > Low[j]))
               {
               KolVneshBar=KolVneshBar+1;
               }  
               // Считаем количество внутренних бар
               if ((High[j+1] > High[j]) && (Low[j+1] < Low[j]))
               {
               KolVnutrBar=KolVnutrBar+1;
               }      
         }
  // Считаем отношение числа внутренних бар к числу внешних бар
  OtnoshVnutKVnesh=KolVnutrBar/KolVneshBar;
  // Переводим в проценты
  ProcentVneshBar=KolVneshBar/n*100;
  ProcentVnutrBar=KolVnutrBar/n*100;
  // Формируем строки для печати
   string S0 = "\n" + "=============== Результаты расчётов ===============" + "\n" + "\n";  
   string S1 = "Исследовано бар = " + DoubleToStr(n,0)+ " шт" + "\n"; 
   string S2 = "Процент внешних бар = " + DoubleToStr(ProcentVneshBar,3) +" %" + "\n"; 
   string S3 = "Процент внутренних бар = " + DoubleToStr(ProcentVnutrBar,3)+ " %" +"\n";
   string S4 = "Отношение числа внутренних бар к числу внешних бар = " + DoubleToStr(OtnoshVnutKVnesh,2);
  // Выводим на экран     
   Comment(S0, S1, S2, S3, S4);          
 }

脚本结果的例子。

2.然后,按照这个逻辑,我决定研究内部和外部三角形的关系。我称内部的三角形为褪色,外部的三角形为翻转。
为了这个目的,我写了一个简单的脚本。

// Скрипт для подсчёта соотношения чисел затухающих и разгорающихся треугольников //
// Skript OtnoshZatRazTreug, июнь 2012
// Примечание: скрипт может немного подвисать на ТФ M1.
#property  copyright "Copyright © Svinotavr-2000"
#property  link      "DmitriyN"

int start()
 { 
   // Декларация
   double DliPer;           // Длительность периода исследования, лет
   double n;                // Количество бар, шт
   double KolZatTre;        // Количество затухающих треугольников, шт
   double KolRazTre;        // Количество разгорающихся треугольников, шт   
   double OtnoshZatRaz;     // Отношение числа затухающих треугольников к числу разгорающихся, раз
   double Pogreshnost;      // Погрешность исследования, %
   // Берём число бар на 5 меньшее, чем всего
   n=Bars-5; 
        // Цикл по всем барам
        for(int j = 0; j < n; j++)
        {             
               // Считаем количество ЗАТУХАЮЩИХ треугольников    ===========              
               
               // Проверяем, являются ли High баров после начального бара (j+5) 
               // _ меньше либо равными High начального бара (j+5)
               if (High[j+5] >= High[j+4]) {
               if (High[j+5] >= High[j+3]) {
               if (High[j+5] >= High[j+2]) {
               if (High[j+5] >= High[j+1]) {
               if (High[j+5] >= High[j])   {
               // Проверяем, являются ли Low баров после начального бара (j+5) 
               // _ больше либо равными Low начального бара (j+5)
               if (Low[j+5] <= Low[j+4])   {
               if (Low[j+5] <= Low[j+3])   {
               if (Low[j+5] <= Low[j+2])   {
               if (Low[j+5] <= Low[j+1])   {
               if (Low[j+5] <= Low[j])     {
               KolZatTre=KolZatTre+1;               
               }}}}}  }}}}}
               
               // Считаем количество РАЗГОРАЮЩИХСЯ треугольников ===========                
               
               // Проверяем, являются ли High баров после начального бара (j+5) 
               // _ больше либо равными High начального бара (j+5)
               if (High[j+5] <= High[j+4]) {
               if (High[j+5] <= High[j+3]) {
               if (High[j+5] <= High[j+2]) {
               if (High[j+5] <= High[j+1]) {
               if (High[j+5] <= High[j])   {
               // Проверяем, являются ли Low баров после начального бара (j+5) 
               // _ меньше либо равными Low начального бара (j+5)
               if (Low[j+5] >= Low[j+4])   {
               if (Low[j+5] >= Low[j+3])   {
               if (Low[j+5] >= Low[j+2])   {
               if (Low[j+5] >= Low[j+1])   {
               if (Low[j+5] >= 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)+ " раз";
  // Выводим строки на экран     
   Comment(S0, S1, S2, S3, S4);          
 }

上述脚本分析了大小为六(6)条的三角形。在这个脚本中,增加了一个非常简单的计算误差的方法。

脚本结果的一个例子。

让我提醒你什么是褪色三角形和翻转三角形。褪色三角形(1)和翻转三角形(2)的例子。

1). 2).

 

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...因此,这一切都没有实际价值 :-)(不考虑MM :-) IMHO。

 
DmitriyN:

如果有人有任何建设性的批评(建设性的,不是不分青红皂白的)或建议,我很乐意倾听。

如果你在寻找外汇中的模式,那么要得体。

如果你在寻找一种模式,那就得体点。 1.表明来自一家经纪公司的数据,或比较不同经纪公司的数据,因为对我来说,过滤器的模式没有什么兴趣。

2) 不仅指出一个货币对和TF,而且更好的是--在表格中再次指出不同货币对和不同TF。

如果我们有这样一张桌子,我们可以谈论它...

;)

 
avatara:
我将在稍后,需要时间来做这个。在这种情况下--Alpari DC。
纠正了上面的错误。
 

我认为如果你在交叉盘中寻找三角形,会有更多的三角形,如SGDJPY。

不幸的是,我对这些外星生物没有太多的了解。

 
表1:货币对--欧元兑美元|模拟账户|Alpari报价|7条三角线

时间框架
比率,倍
准确度,%
历史时期,年
М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


在TF H4,误差变得不可接受--没有足够的数据。
那里的褪色三角形的数量是143个,而燃烧的三角形的数量是每9年的历史1个(一个)。

最有可能的是,计算精度的方法和三角形的形式化算法将不得不被修改。

 

如果我们把你的脚本再复杂一点,我们可以检查三角形的时间频率

例如,在一个交易月、周、日内

我认为,实际用途会更

 

表2:货币对--英镑兑美元|模拟账户|Alpari报价|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

在TF H4上,误差很大--大约17.3%。9年历史上的三角形数量是161个/6个=26.8倍。

 
DmitriyN:

决定将这些信息移到一个单独的主题...

1.我从重读威廉斯的书开始,决定检查图表上的内部条形图的份额。然后,我决定比较内部和外部酒吧的份额,结果,我发现了以下模式:内部酒吧的份额高于外部酒吧的份额。

即使没有任何实验,这一点也很明显。

哪种杨树更 "内部 "或 "外部"? 当然是 "内部 "了

因为外面的是大的,而大的、长的杨树......ugh,酒吧--显然在统计上比小而短的酒吧少。长蜡烛的频率较低。短的更经常。

一个模式?是的。

现在请注意这个问题: 这又给了我们什么?

答案是:一个网!

丰富的食谱。

我们在缩小的链条上拿一个小棒子,把网放到两边,用笔芯,越远-笔芯越多。在谁的方向,第一个将发挥的利润 - 他赢了。

 
DmitriyN:

2.然后,按照这个逻辑,我决定研究内部和外部三角形的比例。我称内侧的三角形为阻尼,外侧的三角形为喇叭形。
为此,我们编写了一个简单的脚本。


收集关于这些三角形各点的大小的统计数据,以及关于它们形成的时间(天数)的统计数据,也会很好。

我将假设褪色的三角形发生在新闻上。