Erros, bugs, perguntas - página 2531

 
Aleksey Vyazmikin:

É uma pena que nem nos tenhamos atrevido a participar nos testes. O tema é interessante na minha opinião, pois acontece que processadores diferentes lidam com tarefas diferentes, mas ainda não há estatísticas suficientes.

O meu processador de raridade só fica na minha posse e num museu, dificilmente interessa a alguém.

 
Aleksey Vyazmikin:

É uma pena que não se tenha atrevido a participar nos testes.

Queria fazer um teste no primeiro dia, mas o tópico cresceu para várias páginas, alguns bugs na primeira versão do código de teste ... não li mais, os meus próprios interesses

Penso que preciso de um manual claro (com imagens ) e um mínimo de reflexão sobre o que fazer para o utilizador, então a actividade do utilizador pode aparecer

 
Igor Makanu:

Eu queria fazer o teste no primeiro dia, mas o fio cresceu para várias páginas, alguns bugs com a primeira versão do código do teste... Não queria ler mais, interessei-me pelos meus próprios interesses

Penso que preciso de um manual claro (com imagens) e um mínimo de reflexão sobre o que fazer para o utilizador, então a actividade do utilizador pode aparecer

E o próprio fórum é muito desconfortável para algo como isto, precisamos da oportunidade para o autor do tópico editar o primeiro post no final de qualquer período, onde toda a informação necessária e relevante está localizada, em vez de procurar entre a massa de mensagens. Neste formato, é apenas um fio para flubbing.

 

Aqui vai uma pergunta.

Preciso de armazenar um ponteiro para uma matriz de tipo duplo[] (habitual, indicador) para que possa ser referenciado dentro do programa.

Os programadores padrão sugerem ou passar uma referência a esta matriz ao longo de toda a hierarquia de funções, desorganizando os parâmetros de entrada onde é absolutamente desnecessário, ou copiar toda a matriz para si própria emcada tick, e depois utilizar uma referência à sua matriz interna, que pode ser passada e lembrada e utilizada dentro da hierarquia de funções.

Ambas as soluções parecem-me muito feias. Passar uma referência por toda a árvore de chamadas já é feio, e quando se considera que não sabemos em que momento podemos precisar de aceder à matriz, torna-se realmente estúpido.

Copiar todo o conjunto em cada tick, quando existe um de origem, é também um pouco mental, e mais importante, perde produtividade.

Alguém se deparou com este problema? Como contornar esta estúpida limitação ?

Lembro-me uma vez, penso eu, queo fxsaber sugeriu uma função de cópia de endereços usando alguma acção xamânica, mas não a consigo encontrar.

Quem pode sugerir o quê?

 
Vict:

O meu processador de raridade está apenas na minha posse e num museu, não é interessante para ninguém.

É sempre interessante avaliar o progresso.


Igor Makanu:

Queria fazer o teste no primeiro dia, mas o tópico cresceu para várias páginas, alguns bugs com a primeira versão do código do teste... Não li mais e fiquei ocupado com os meus próprios interesses

Acho que preciso de um manual claro (com imagens ) e um mínimo de reflexão sobre o que fazer pelo utilizador, então a actividade do utilizador pode aparecer

Não deve haver aí insectos, os outros estão a correr bem. Agora há um screenshot de como o testador de estratégias deve ser criado.

Não pensei que fosse difícil criar o optimista de todo. O que não está claro agora - deixem-me dar-vos uma dica.


Vitória:

E o próprio fórum é muito desconfortável para algo como isto, precisamos da capacidade do autor do tópico para editar o primeiro post no final de qualquer período, onde toda a informação necessária e relevante está localizada, em vez de procurar entre as massas de posts. Neste formato, é apenas um fio para flubbing.

Não temos outro fórum, actualizo os resultados regularmente quando há informação - não é assim tão difícil de encontrar.

 
Georgiy Merts:

Aqui vai uma pergunta.

Preciso de armazenar um ponteiro para uma matriz de tipo duplo[] (habitual, indicador) para que possa ser referenciado dentro do programa.

Os programadores padrão sugerem ou passar uma referência a esta matriz ao longo de toda a hierarquia de funções, desorganizando os parâmetros de entrada onde é absolutamente desnecessário, ou copiar toda a matriz para si própria emcada tick, e depois utilizar uma referência à sua matriz interna, que pode ser passada e lembrada e utilizada dentro da hierarquia de funções.

Ambas as soluções parecem-me muito feias. Passar uma referência por toda a árvore de chamadas já é feio, e quando se considera que não sabemos em que momento podemos precisar de aceder à matriz, torna-se realmente estúpido.

Copiar todo o conjunto em cada tick, quando existe um de origem, é também um pouco mental, e mais importante, perde produtividade.

Alguém se deparou com este problema? Como contornar esta estúpida limitação ?

Lembro-me uma vez, penso eu, queo fxsaber sugeriu uma função de cópia de endereços usando alguma acção xamânica, mas não a consigo encontrar.

Quem pode sugerir o quê?

Se estamos a falar de mql5, podemos envolver o indicador numa classe e, se necessário, puxá-lo, e nessa classe organizamos a cópia e o armazenamento dos dados necessários para o ngbin necessário e controlamos a sua única actualização a cada tick. Faço-o desta forma.
 
Vladimir Simakov:
Se estamos a falar de mql5, então, como alternativa, transformamos o indicador numa classe e, se necessário, vamos buscá-lo e utilizá-lo para armazenar e copiar os dados necessários para o ngbin necessário e controlar a sua única actualização a cada vez que se faz uma verificação. Faço-o desta forma.

É o que eu próprio costumo fazer...

Mas não funciona com amortecedores indicadores. Ou será que me escapou alguma coisa e pode ser feito de alguma forma?

 
Georgiy Merts:

Mas com amortecedores indicadores, o embrulho não desaparece.

Sempre o fez.
 
Georgiy Merts:

Mas com os amortecedores indicadores, o invólucro não passa. Ou será que me escapou alguma coisa, pode ser feito de alguma forma?

tudo funciona, mas as arrays que serão amortecedores indicadores devem ser descritas com modificador público

Criei um indicador HMA para MQL4 - 4 indicadores numa sub-janela:

CHMA *hma[4];
int OnInit()
  {
//--- indicator buffers mapping
   int i=0;
   hma[0] = new CHMA(4,PeriodInd1,Method1,Price1,Shift1);
   hma[1] = new CHMA(3,PeriodInd2,Method2,Price2,Shift2);
   hma[2] = new CHMA(2,PeriodInd3,Method3,Price3,Shift3);
   hma[3] = new CHMA(1,PeriodInd4,Method4,Price4,Shift4);

   IndicatorBuffers(16);
   IndicatorSetDouble(INDICATOR_MINIMUM,0.0);
   IndicatorSetDouble(INDICATOR_MAXIMUM,5.0);
   IndicatorSetInteger(INDICATOR_HEIGHT,IndHeight);
   while(i<8)       { SetIndexBuffer(i,hma[int(i/2)].Uptrend); SetIndexBuffer(i+1,hma[int(i/2)].Dntrend); i+=2; 			}
   for(i=0;i<4;i++) { SetIndexBuffer(i+8,hma[i].ExtMapBuffer); SetIndexBuffer(i+12,hma[i].vect); 					}
   for(i=0;i<8;i++) { SetIndexStyle(i,DRAW_ARROW,EMPTY,ArrowWidth, i%2==0 ? ArrowColor1 : ArrowColor2); SetIndexArrow(i,ArrowCode); 	}
   for(i=8;i<17;i++){ SetIndexStyle(i,DRAW_NONE);											}
   IndicatorShortName("");
   IndicatorDigits(0);
//---
   return(INIT_SUCCEEDED);
  }

e a própria classe em que o corpo do antigo indicador acabou de ser copiado:

class CHMA
  {
private:
   int               period_,shift_,p,level_;
   ENUM_APPLIED_PRICE price_;
   ENUM_MA_METHOD    method_;
   double            GetWMA(int x,int per){ return(iMA(NULL,0,per,0,method_,price_,x+shift_)); }
public:
   double            ExtMapBuffer[],vect[],Uptrend[],Dntrend[];
                     CHMA(int level,int period,ENUM_MA_METHOD method,ENUM_APPLIED_PRICE price,int shift);
   void              calcind(int lim,int prevcalculated);
   int               lastvalue();
  };

a cor amarela é o velho indicador de buffers, não queria alterar o código do antigo indicador, apenas o copiei para a classe, demorei um pouco menos de uma hora

 
TheXpert:
sempre o fez.

O que quer dizer? Pode declarar um membro da classe como uma matriz de indicadores ????

Vou verificar isso agora.

Hmmm... Certo...

Bem, então - tudo é muito mais simples, e a questão é resolvida sem quaisquer problemas - declaramos os membros da classe como matrizes indicadoras, e passamos um ponteiro a esta mesma classe para memorização. A solução, claro, não é muito agradável, mas na ausência de indicações para a matriz, não há problema.