OpenCL: desafios reais - página 3

 
TheXpert:

Existe uma diferença significativa?

Se conseguir optimizá-lo, poderá não ter de usar o OpenCL de todo.

A diferença é esta...

É mais conveniente usar MQL5, Illyaz já amarrou tudo, enquanto em C++ tem de amarrar tudo você mesmo.

Se quiser optimizar, primeiro tem de determinar se precisa de utilizar o OpenCL.

 
TheXpert:

Projecto de estúdio.

O método mais difícil é o FeedPatterns.

Descarreguei-o. Vou dar uma vista de olhos. :)
 
Urain:
... Em C++ tem de ligar tudo você mesmo...

Em c++ pode usar o amp - mais simatico e prático imho.

 
kazakov.v:

Em c++ pode usar o amp - mais simático e prático imho.

Porque não? Além disso, é uma base para a paralelização especialmente em Win8;7 e é uma componente integral do Net 4.5. Além disso, li algures que este é um suplemento para o OpenCL, é de alguma forma adicionado ao código?
 
kazakov.v:

Em c++ pode usar o amp - mais simático e prático imho.

Eventualmente, vou transferir-me para a MQL.
 
TheXpert:
Eventualmente, vou portar para a MQL.

Em seguida, executar de novo o projecto em MQL5 (será mais rápido para si como para o autor). E verifique tudo sobre ele.

Pode utilizá-lo para testar tudo em F5, porque o mql4++ ainda não é fiável. E mais tarde poderemos mudar de F para B (dentro de um mês).

Desde que o projecto seja pequeno.

 
Urain:

Em seguida, executar de novo o projecto em MQL5 (será mais rápido para si como para o autor). E utilizá-lo para verificar tudo.

Ainda não tenho tempo. Tenho mais um bug no princípio de ligação de sinapses... é por isso que vos digo mais tarde. Mas o código afixado é bastante auto-suficiente.
 
TheXpert:
Ainda não há tempo. Há outro bug no princípio de construir ligações sinápticas para reparar... é por isso que vos digo mais tarde. Mas o código afixado é bastante auto-suficiente.
Ok, não há problema, pode fazê-lo você mesmo.
 
Urain:
Ok, não há problema, faça-o você mesmo.

Basicamente, apenas <vector> deve ser substituído aí, é um análogo do ArrayObj da biblioteca padrão.

Pode simplesmente reescrever em arrays, ou implementar <vector> de uma vez por todas na MQL5 (a forma fundamental, por assim dizer).

 
Urain:

Basicamente, há apenas <vector> para reorganizar, é um análogo do ArrayObj da biblioteca padrão.

Poderia simplesmente mudar para arrays, ou implementar <vector> em MQL5 de uma vez por todas (a forma fundamental, por assim dizer).

Slava é lenta com aulas parametrizadas. Já estou exausta há um ano.

Em princípio, é possível escrevê-lo incorrectamente, desta forma (até melhores tempos):

#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);
...........
... 
Tudo isto compila e funciona.
Razão: