OpenCL: real challenges - page 3

 
TheXpert:

Is there a significant difference?

If you can optimize it, you might not have to use OpenCL at all.

The difference is this...

It's more convenient to use MQL5, Illyaz has already tied everything, while in C++ you have to tie everything yourself.

If you want to optimize, you first have to determine whether you need to use OpenCL.

 
TheXpert:

Studio project.

The hardest method is FeedPatterns.

I downloaded it. I'll have a look. :)
 
Urain:
... In C++ you have to bind everything yourself...

In c++ you can use amp - more simatico and handy imho.

 
kazakov.v:

In c++ you can use amp - more simatic and handy imho.

Why not? Besides, it is a basis for parallelization especially in Win8;7 and it is an integral component of Net 4.5. Also, I read somewhere that this is an add-on for OpenCL, is it somehow added to the code?
 
kazakov.v:

In c++ you can use amp - more simatic and handy imho.

Eventually I'm going to transfer to MQL.
 
TheXpert:
I'm going to port it to MQL eventually.

Then re-run the project in MQL5 (it will be faster for you as for the author). And check everything on it.

You may use it to test everything at F5, because mql4++ is still unstable. And later we will be able to switch from F to B (in a month).

As long as the project is small.

 
Urain:

Then re-run the project in MQL5 (it will be faster for you as for the author). And use it to check everything.

I don't have time yet. I have one more bug in the principle of linking of synapses... that's why I'm telling you later. But the posted code is quite self-sufficient.
 
TheXpert:
There is no time yet. There's another bug in the principle of building synapse connections to fix... that's why I'm telling you later. But the posted code is quite self-sufficient.
Ok, no problem, we'll do it ourselves.
 
Urain:
Ok, no problem, do it yourself.

Basically only <vector> should be overwritten there, it's an analogue of ArrayObj from the standard library.

You can just rewrite to arrays, or implement <vector> once and for all in MQL5 (the fundamental way, so to speak).

 
Urain:

Basically, there's only <vector> to rearrange, it's an analogue of ArrayObj from the standard library.

I could just switch to arrays, or implement <vector> in MQL5 once and for all (the fundamental way, so to speak).

Slava is slow with parametrized classes. I'm exhausted for a year already.

In principle, it is possible to write it incorrectly, like this (until better times):

#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);
...........
... 
It all compiles and works.