Aprendizaje automático en el trading: teoría, práctica, operaciones y más - página 3280

 
Maxim Dmitrievsky #:

También hay un QCF.

No parece haber llegado a la distribución de MQL. ¿Es NumPy contar rápido?

 
Maxim Dmitrievsky #:

También hay un QCF.

Lo he intentado, me está dando basura.

#include <Math\Alglib\fasttransforms.mqh>

const vector<double> GetCorr2( double &Array[], double &Pattern[] )
{
  double Corr[];  
  CCorr::CorrR1D(Array, ArraySize(Array), Pattern, ArraySize(Pattern), Corr);
  
  // ArrayRemove(Corr, 0, ArraySize(Pattern) - 1);  
  
  vector<double> Res;
  Res.Swap(Corr);

  return(Res);
}

void OnStart()
{
  const double ArrayTmp[] = {1, 2, 3, 4, 5, 6, 7, 8, 9};
  const double PatternTmp[] = {1, 2, 3};
  
  double Array[];
  double Pattern[];
  
  ArrayCopy(Array, ArrayTmp);
  ArrayCopy(Pattern, PatternTmp);
  
  Print(GetCorr2(Array, Pattern)); // [14,20,26,32,38,44,50,26,9,3,8]
}
 
fxsaber #:

Lo he intentado, pero sale una basura.

np.correlate([1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3], mode='full' )


array([ 3, 8, 14, 20, 26, 32, 38, 44, 44, 50, 26, 9])

 
fxsaber #:

No parece haber llegado a la distribución de MQL. ¿Es NumPy contar rápido?

Python bucles son lentos, así que no pensé en una manera de hacerlo

 
Maxim Dmitrievsky #:

Los bucles de Python son lentos, así que no tuve que averiguar cómo hacerlo.

Los ciclos no tienen nada que ver con QCF.

 
fxsaber #:

Los ciclos no tienen nada que ver si el QCF.

ccf instantáneo

 
Maxim Dmitrievsky #:
array([ 3, 8, 14, 20, 26, 32, 38, 44, 50, 26, 9])

¿Qué representan estos números?

 
fxsaber #:

¿Qué representan estos números?

correlaciones cruzadas no normalizadas )

covarianzas cruzadas
 
Maxim Dmitrievsky #:

correlaciones cruzadas no normalizadas )

covarianza cruzada.

Necesitas Pearson.

 
fxsaber #:

Bueno, necesitas a Pearson.

No estoy seguro de cómo hacerlo, y tengo sueño.

Algo parecido.

>>> a = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> b = np.array([1, 2, 3])
>>> a = (a - np.mean(a)) / (np.std(a))
>>> b = (b - np.mean(b)) / (np.std(b))
>>> np.correlate(a, b, 'full')
array([-1.8973666 , -1.42302495,  0.9486833 ,  0.9486833 ,  0.9486833 ,
        0.9486833 ,  0.9486833 ,  0.9486833 ,  0.9486833 , -1.42302495,
       -1.8973666 ])
>>>