таблица корреляции

 

Подскажите как можно программно в советнике вызвать

нужную пару валют из известного индикатора "iCorrelationTable_v3.mq4"  с нужным коэффициентом корреляции?

double correla1=NormalizeDouble(iCustom(NULL,PERIOD_H1,"CorrelationTable_v3",60,1,0,0,0.7),2);

рис.1

 
fregat555:

Подскажите как можно программно в советнике вызвать

нужную пару валют из известного индикатора "iCorrelationTable_v3.mq4"  с нужным коэффициентом корреляции?

double correla1=NormalizeDouble(iCustom(NULL,PERIOD_H1,"CorrelationTable_v3",60,1,0,0,0.7),2);

Простите, известного только вам? Я о таком чуде никогда не слышал, да и желания не имею...

 
fregat555:

Подскажите как можно программно в советнике вызвать

нужную пару валют из известного индикатора "iCorrelationTable_v3.mq4"  с нужным коэффициентом корреляции?

double correla1=NormalizeDouble(iCustom(NULL,PERIOD_H1,"CorrelationTable_v3",60,1,0,0,0.7),2);


Никак. Можно вытащить из него функцию и вызвать ее в советнике. Функция fPirsonPricePrice_TFS()

 

Вот собственно функция:

bool fPirsonPricePrice_TFS(string aSymbol_1,int aShift_1,string aSymbol_2,int aShift_2,int aTimeFrame,int aPeriod, int aPrice, double & aCorrelation){
   double SumXY=0;
   double SumXX=0;
   double SumYY=0;
   double SumY=0;
   double SumX=0;         
   int j;
   int xi;
   int yi;
      for(j=0,xi=aShift_1,yi=aShift_2;j<aPeriod;j++,xi++,yi++){
         double X=iMA(aSymbol_1,aTimeFrame,1,0,0,aPrice,xi);
         double Y=iMA(aSymbol_2,aTimeFrame,1,0,0,aPrice,yi);
         SumX+=X;  
         SumY+=Y;  
         SumXX+=X*X;
         SumYY+=Y*Y;         
         SumXY+=X*Y; 
      }
   double SXXYY=MathSqrt(MathAbs((aPeriod*SumXX-SumX*SumX)*(aPeriod*SumYY-SumY*SumY)));
      if(SXXYY!=0.0){
         double SXY=aPeriod*SumXY-SumY*SumX; 
         aCorrelation=SXY/SXXYY;
         return(true);
      } 
   return(false);
}

Параметры из их названия должно быть понятны, значение корреляции возвращается по ссылке последним параметром. Сама функция возвращает true/false в зависимости от того, удалось ли провести расчет.

 

Сложновато как-то. Например из данного индикатора (в таблице) нужно вызвать например,пару EURUSD-EURSGD ,

с корреляцией +0.85, как?

 
Alexey Viktorov:

Простите, известного только вам? Я о таком чуде никогда не слышал, да и желания не имею...

может оно и чудо............., но реально работает.

 
fregat555:

может оно и чудо............., но реально работает.

А как вы его используете в торговле?

 
fregat555:

Сложновато как-то. Например из данного индикатора (в таблице) нужно вызвать например,пару EURUSD-EURSGD ,

с корреляцией +0.85, как?

double Cor;

fPirsonPricePrice_TFS("EURUSD",1,"EURSGD",1,Period(),14,0,Cor);

if(Cor>0.85){

}
if(Cor<=0.85){

}

 
Dmitry Fedoseev:

Дмитрий, а почему используется МА, а не цены закрытия. Я писал по Пирсону, но всегда с применением Close.

Чем МА лучше?

 
Vitaly Muzichenko:

Дмитрий, а почему используется МА, а не цены закрытия. Я писал по Пирсону, но всегда с применением Close.

Чем МА лучше?

Период 1, что бы тип цены менять. Может кому пригодится.

 
Dmitry Fedoseev:

Период 1, что бы тип цены менять. Может кому пригодится.

Ясно, так сказать на прозапас)

Причина обращения: