OpenCL: desafíos reales - página 3

 
TheXpert:

¿Hay alguna diferencia significativa?

Si puedes optimizarlo, puede que no tengas que usar OpenCL en absoluto.

La diferencia es esta...

Es más conveniente usar MQL5, Illyaz ya ha atado todo, mientras que en C++ tienes que atar todo tú mismo.

Si quieres optimizar, primero tienes que determinar si necesitas usar OpenCL.

 
TheXpert:

Proyecto de estudio.

El método más difícil es FeedPatterns.

Lo he descargado. Le echaré un vistazo. :)
 
Urain:
... En C++ tienes que unir todo tú mismo...

En c++ puedes usar amp - más simatico y práctico imho.

 
kazakov.v:

En c++ se puede usar amp - más simatico y práctico imho.

¿Por qué no? Además, es una base para la paralelización especialmente en Win8;7 y es un componente integral de Net 4.5. Además, he leído en alguna parte que se trata de un complemento para OpenCL, ¿se añade de alguna manera al código?
 
kazakov.v:

En c++ se puede usar amp - más simatico y práctico imho.

Con el tiempo, voy a transferirlo a MQL.
 
TheXpert:
Al final voy a portarlo a MQL.

A continuación, vuelva a ejecutar el proyecto en MQL5 (será más rápido para usted como para el autor). Y comprueba todo lo que hay en él.

Puedes usarlo para probar todo en F5, porque mql4++ no es fiable todavía. Y más adelante podremos pasar de la F a la B (dentro de un mes).

Siempre que el proyecto sea pequeño.

 
Urain:

A continuación, vuelva a ejecutar el proyecto en MQL5 (será más rápido para usted como para el autor). Y utilizarlo para comprobar todo.

Todavía no tengo tiempo. Tengo un error más en el principio de vinculación de las sinapsis... por eso te lo cuento después. Pero el código publicado es bastante autosuficiente.
 
TheXpert:
Todavía no hay tiempo. Hay otro error en el principio de construcción de conexiones de sinapsis para arreglar... por eso te lo cuento después. Pero el código publicado es bastante autosuficiente.
Vale, no hay problema, puedes hacerlo tú mismo.
 
Urain:
Vale, no hay problema, hazlo tú mismo.

Básicamente sólo <vector> debe ser sobrescrito allí, es un análogo de ArrayObj de la biblioteca estándar.

Puedes simplemente reescribir a arrays, o implementar <vector> de una vez por todas en MQL5 (la forma fundamental, por así decirlo).

 
Urain:

Básicamente, sólo hay que reordenar <vector>, es un análogo de ArrayObj de la biblioteca estándar.

Podría simplemente cambiar a arrays, o implementar <vector> en MQL5 de una vez por todas (la forma fundamental, por así decirlo).

Slava es lento con las clases parametrizadas. Ya estoy agotado desde hace un año.

En principio, es posible escribirlo incorrectamente, así (hasta tiempos mejores):

#define  FF_STD(FFClassName, FFEnumName)                                           \
   class FFClassName:Ccl_FF_Functor                                               \
     {                                                                            \  // Примерно в таком стиле
     public:                                                                      \
       virtual bool CalcFF(const Ccl_Flex2dArray &Test_Res_,double &FF_[],int i_) \
          { FF_[i_]=Test_Res_.Get(i_,FFEnumName); return true; }                  \
     }
//+------------------------------------------------------------------)
//|   Реализации стандартных фитнес-функторов                       (   Дальше алгоритм использования этой хрени:
//+------------------------------------------------------------------)

// возвращает общий профит с учётом спреда (в спредах)
FF_STD(CFF_ProfitTotal_s, FF_ProfitTotal_s);

// возвращает мат-ожидание профита с условной единичной сделки с учётом спреда (в спредах)
FF_STD(CFF_ProfitPerLot_s, FF_ProfitPerLot_s);

// возвращает полный проторгованный объём сделок ((куплено+продано)/2) за тестируемый период 
FF_STD(CFF_VolumeTotal, FF_VolumeTotal);
...........
... 
Todo se compila y funciona.