Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 1113

 
Mislaid:

Для выходных нужен скрипт.

Я работаю по будням. Поэтому пользуюсь индикатором. Даю ему список инструментов, и он запрашивает котировки то тому таймфрейму, на чарте которого он висит. С обработкой ошибок не заморачиваюсь. Через десяток минут все устаканивается.

Да, совершенно забыл. Если нужно сохранять историю, то чарт по инструменту обязательно должен быть открыт. 

Невозможно держать открытым более 100 чартов. А нужно 100 пар по 9 таймфреймов = 900 чартов.

Рынок запустился. Но ни вызов CopyTime, ни ArrayCopySeries не подкачивает автоматом историю по инструментам из MarketWatch...
Чарты по инструментам ни разу не открывались.
Должно же быть какое-нибудь решение.

Вот например символ AUDCAD. По нему не было открытых чартов. Если вручную открыть чарт AUDCAD H1 и понаживать кнопки - истоия подкачивается. На других таймфреймах так же - только в ручном режиме, в автоматическом не желает.
 
В опчем - я написал скрипт, который открывает по пару десятков чартов блоками, эмулирует нажатие клавиши Home, затем закрывает чарты.
Так оно хоть и с костылем, но работает и подкачка истории для новых символов происходит.
 

Добрый день, уважаемые форумчане. Прошу не бить больно, просто пишу диплом и хочу провести небольшое социологическое исследование. Здесь наверняка есть люди однажды или несколько раз купившие советник. Скажите пожалуйста, какие критерии для Вас были важными и решающими при покупке? Например, может быть это:

-тип советника (трендовый, сеточник, мартингейл, скальпер...)

-история в тестере стратегий

-какие-то особенные функции советника

-подробность описания работы и настроек советника

-рейтинг продавца

-стоимость советника

-акции и скидки

 или может быть что-то другое.

И давольны ли Вы остались покупкой?

Большое спасибо за понимание и ответы

 
Konstantin Zubrilin:

Добрый день, уважаемые форумчане. Прошу не бить больно, просто пишу диплом и хочу провести небольшое социологическое исследование. Здесь наверняка есть люди однажды или несколько раз купившие советник. Скажите пожалуйста, какие критерии для Вас были важными и решающими при покупке? Например, может быть это:

-тип советника (трендовый, сеточник, мартингейл, скальпер...)

-история в тестере стратегий

-какие-то особенные функции советника

-подробность описания работы и настроек советника

-рейтинг продавца

-стоимость советника

-акции и скидки

 или может быть что-то другое.

И давольны ли Вы остались покупкой?

Большое спасибо за понимание и ответы

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

Подскажите, где ошибка? Значения элементов  массива Koef[] рассчитывается, каждому элементу присваивается значение. Почему не присваивается Buffer1[]???

#property copyright "Copyright 2016, T"
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
#property indicator_separate_window
#property indicator_buffers 1
#property indicator_level1 0.8
#property indicator_level2 -0.8
#property indicator_levelcolor Black
#property indicator_color1 Blue
#property indicator_minimum -1
#property indicator_width1 2
#property indicator_style1 0
#property indicator_maximum 1

double Buffer1[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//--- indicator buffers mapping
  SetIndexBuffer(0, Buffer1);
  SetIndexStyle(0, DRAW_LINE);
  return(0);
//---
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
   {
   int n=25;                                                            // количество элементов в массиве(для периода H1 n=25, тк i<n)
   int m=24;                                                            // количество массивов(для периода H1 m=24, тк p=0, p<m)
   int w=18;                                                            // количество заков после запятой
  
   double Price_CloseX[][24];                                           // Массив цен закрытия 1 пары  
   double Price_CloseY[][24];                                           // Массив цен закрытия 2 пары
   double dx[][24];                                                     // Отклонение от среднего значения для пары 1 dx
   double dy[][24];                                                     // Отклонение от среднего значения для пары 2 dy
   double dx2[][24];                                                    // Квадрат отклонения ср.значения dx2
   double dy2[][24];                                                    // Квадрат отклонения ср.значения dy2
   double dxdy[][24];                                                   // Произведение dx и dy
  
   double sum_x[][24];
   double sum_y[][24];
  
   double Mx[][24];                                                         // Массив среднего значения цен закрытия пары 1 Mx
   double My[][24];                                                         // Массив среднего значения цен закрытия пары 2 My
  
   double Edx2[][24];                                                       // Сумма квадратов отклонений Edx2
   double Edy2[][24];                                                       // Сумма квадратов отклонений Edy2
   double Edxdy[][24];                                                      // Сумма произведений отклонений Edxdy
  
   double Koef[];
  
   ArrayResize(Price_CloseX, n);
   ArrayResize(Price_CloseY, n);
   ArrayResize(dx, n);
   ArrayResize(dy, n);  
   ArrayResize(dx2, n);
   ArrayResize(dy2, n);
   ArrayResize(dxdy, n);
   ArrayResize(sum_x, n);
   ArrayResize(sum_y, n);
   ArrayResize(Mx, n);
   ArrayResize(My, n);
   ArrayResize(Edx2, n);
   ArrayResize(Edy2, n);
   ArrayResize(Edxdy, n);
   ArrayResize(Koef, n);
  
   string sym_x="EURUSD";
   string sym_y="GBPUSD";
  
   for(int i=1; i<n; i++)
      {
      for(int p=0; p<m; p++)
         {
         Price_CloseX[i][p]=iClose(sym_x, PERIOD_H1, i+p);
         Price_CloseY[i][p]=iClose(sym_y, PERIOD_H1, i+p);
        
         }
      }
      
    for(int i=1; i<n; i++)
      {    
      for(int p=0; p<m; p++)
         {  
         sum_x[i][p]=sum_x[i][p-1]+Price_CloseX[i][p];                                        
         sum_y[i][p]=sum_y[i][p-1]+Price_CloseY[i][p];
        
         }        
      }
  
   for(int i=1; i<n; i++)
      {    
      for(int p=0; p<m; p++)
         {      
         Mx[i][p]=sum_x[p+1][m-1]/(n-1);  
         My[i][p]=sum_y[p+1][m-1]/(n-1);
                
         }
       }
  
   for(int i=1; i<n; i++)
      {
      for(int p=0; p<m; p++)
         {
         dx[i][p]=Price_CloseX[i][p]-Mx[i][p];
         dy[i][p]=Price_CloseY[i][p]-My[i][p];
        
         }
      }
    
   for(int i=1; i<n; i++)                                                                  
      {
      for(int p=0; p<m; p++)
         {
         dx2[i][p]=(dx[i][p]*dx[i][p])*1000000;
         dy2[i][p]=(dy[i][p]*dy[i][p])*1000000;
        
         }
      }
    
   for(int i=1; i<n; i++)                                                                  
      {
      for(int p=0; p<m; p++)
         {
         dxdy[i][p]=(dx[i][p]*dy[i][p])*1000000;
        
         }
      }  
                        
   for(int i=1; i<n; i++)                                                                  
      {
      for(int p=0; p<m; p++)
         {
         Edx2[i][p]=(Edx2[i-1][p]+dx2[i][p]);                                        
         Edy2[i][p]=(Edy2[i-1][p]+dy2[i][p]);
         Edxdy[i][p]=(Edxdy[i-1][p]+dxdy[i][p]);
         }
      }
  

      for(int p=0; p<m; p++)
         {
         Koef[p]=Edxdy[n-1][p]/sqrt(Edx2[n-1][p]*Edy2[n-1][p]);
         Buffer1[p]=Koef[p];
         Alert("Коэффициент корреляции Пирсона между ", sym_x, " и ", sym_y, " равен ", DoubleToString(Koef[p], w));
         Alert("Значение буфера ", p, " равно ", Buffer1[p]);
         }
   return(0);
   }


 

 
Доброго времени суток! Правильно я понимаю, что при тп=2, сл=20 и спред=2 вероятность тп=(2+2)/(20-2)=0.22.... или ещё нужно умножать на какой-то коэффициент? А если вер. тп=0.22, то в идеале можно открыть 3 сделки подряд с такими параметрами, а 4 сделку пропускать? 
Может есть подобные темы? Дайте ссылку, пожалуйста.
 
bobrush:
Доброго времени суток! Правильно я понимаю, что при тп=2, сл=20 и спред=2 вероятность тп=(2+2)/(20-2)=0.22.... или ещё нужно умножать на какой-то коэффициент? А если вер. тп=0.22, то в идеале можно открыть 3 сделки подряд с такими параметрами, а 4 сделку пропускать? 
Может есть подобные темы? Дайте ссылку, пожалуйста.

Ссылку не дам, люди считают по-разному. Рекомендую исходить из принципа безнадежности постройки Грааля. В данном случае, на заданных TP и SL, его можно сформулировать так:

                      в отсутствие спреда матожидание прибыли в любой серии сделок с одинаковыми SL и одинаковыми TP равно нулю.

Матожидание прибыли без спреда равно P(TP)*TP-P(SL)*SL=0, где SL и TP дистанции от уровня окрытия сделки до их уровней, P - вероятность завершения сделки соответственно по SL либо по TP.

Из условия завершения всех сделок P(TP)+P(SL)=1, откуда P(TP)*TP-(1-P(TP))*SL=0, P(TP)*(TP+SL)=SL и

                      P(TP)=SL/(SL+TP).

Чтобы учесть спред, надо заменить нулевое матожидание прибыли на ожидание убытка размером в спред, P(TP)*TP-P(SL)*SL=-Spread, и вывести нужную формулу.

 
Vladimir:

Ссылку не дам, люди считают по-разному. Рекомендую исходить из принципа безнадежности постройки Грааля. В данном случае, на заданных TP и SL, его можно сформулировать так:

                      в отсутствие спреда матожидание прибыли в любой серии сделок с одинаковыми SL и одинаковыми TP равно нулю.

Матожидание прибыли без спреда равно P(TP)*TP-P(SL)*SL=0, где SL и TP дистанции от уровня окрытия сделки до их уровней, P - вероятность завершения сделки соответственно по SL либо по TP.

Из условия завершения всех сделок P(TP)+P(SL)=1, откуда P(TP)*TP-(1-P(TP))*SL=0, P(TP)*(TP+SL)=SL и

                      P(TP)=SL/(SL+TP).

Чтобы учесть спред, надо заменить нулевое матожидание прибыли на ожидание убытка размером в спред, P(TP)*TP-P(SL)*SL=-Spread, и вывести нужную формулу.

Спрашивая про коэффициент, мне помнится что-то типа C(n,k), т.е. P(x)=C(n,k)*P(y/x).... Вообщем запутался... Надо книжку листать.
 
bobrush:
Спрашивая про коэффициент, мне помнится что-то типа C(n,k), т.е. P(x)=C(n,k)*P(y/x).... Вообщем запутался... Надо книжку листать.

Если речь идет о книгах по теории вероятности, а, судя по намеку на число сочетаний из n по k C(n,k), это комбинаторика, то в теории вероятности ответов на заданный вопрос нет. Конкретно формулу  P(TP)*TP-P(SL)*SL=0

я получил эмпирически. В поиске такого сочетания SL и TP, которое дало бы хоть самое малое статистически значимое отклонение от нуля. База тиковых историй по 25 валютным парам собиралась около 300 недель с 50-60 дилинговых центров, в ней тогда было 50 миллиардов тиков. Способов регулярного или псевдослучайного открытия сделок перебрал десятки. Курсом без спреда считался средний арифметический Бид и Аск.

 
Vladimir:

Если речь идет о книгах по теории вероятности, а, судя по намеку на число сочетаний из n по k C(n,k), это комбинаторика, то в теории вероятности ответов на заданный вопрос нет. Конкретно формулу  P(TP)*TP-P(SL)*SL=0

я получил эмпирически. В поиске такого сочетания SL и TP, которое дало бы хоть самое малое статистически значимое отклонение от нуля. База тиковых историй по 25 валютным парам собиралась около 300 недель с 50-60 дилинговых центров, в ней тогда было 50 миллиардов тиков. Способов регулярного или псевдослучайного открытия сделок перебрал десятки. Курсом без спреда считался средний арифметический Бид и Аск.

Т.е. теория сошлась с практикой. 300 недель этож больше 5 лет, только для подтверждения теории?
Получается как ни открывайся, хоть рандомом, хоть по сигналам результат один: М(x)=0??