uma estratégia comercial baseada na Teoria da Onda de Elliott - página 296

 
Andre69

Você já tentou manipular mais os coeficientes de transformação wavelet.
Acaba com algo assim:
 
Rapazes, trabalhem para o bem da pátria, façam ciência, inventem algo útil, finalmente mostrem sua ambição
 
Colegas, há uma pequena pergunta. Como devo colocar corretamente - é possível expandir dinamicamente o número de elementos de uma matriz. Por exemplo, estou procurando canais estáveis em alguma área a partir da barra zero. Não sei o número deles desde o início da busca e é possível que eu não encontre nenhum. A partir da documentação que li, acho que descobri que você não pode. Isso é verdade, ou existe uma maneira mais inteligente?

PS: Até o momento, eu tenho encontrado várias variantes no MT (o MathCAD não tem esse problema):

(1). Eu crio um parâmetro (int count=0;) Eu faço um laço através do intervalo e checo os critérios; se ele os satisfaz, count=count+1. Em seguida, crio um array com a contagem obtida e repito tudo novamente: escrevo os parâmetros calculados no array e seleciono o canal ideal.

(2) Criar uma matriz para os parâmetros do canal de acordo com o comprimento da faixa original.
 
grasn
... Como posso dizer corretamente - é possível expandir dinamicamente o número de elementos da matriz. Por exemplo, estou procurando por canais estáveis em alguma área a partir de zero bar. Não sei o número deles no início da busca e posso não encontrar nenhum.

Francamente falando, a questão não é muito clara. O número de elementos em uma matriz (tamanho) é alterado dinamicamente com o ArrayResize. Se você realmente quiser criar estruturas, elas são prometidas apenas no MT5.
Pura e simplesmente pela consonância das palavras - eu estava resolvendo o problema das propriedades adicionais dos pedidos, não sabíamos exatamente seu número e o número de propriedades (esses 40 indicadores) também não era conhecido de antemão. Foram utilizadas três funções, mas novas propriedades tiveram que ser acrescentadas manualmente a cada uma delas, com recompilação posterior. Não sei se isto está certo ou errado, mas, por via das dúvidas, aqui está o código da última versão
//+------------------------------------------------------------------+
//| Изменение размеров массивов свойств ордера                       |
//+------------------------------------------------------------------+
int ResizeOrdArrays() {
  ArrayResize(OrdID,OrdArrSize);
  ArrayResize(OrdTicket,OrdArrSize);
//  ArrayResize(OrdData1,OrdArrSize);
//  ArrayResize(OrdData2,OrdArrSize);
//  ArrayResize(OrdData3,OrdArrSize);
//  ArrayResize(OrdData4,OrdArrSize);
  return(0);
}
//+------------------------------------------------------------------+
//| Добавление ордера в список ордеров                               |
//+------------------------------------------------------------------+
int AddOrder(int ID) {
  OrdInd=OrdNum;
  OrdNum++;
  if (OrdNum > OrdArrSize) {
    OrdArrSize = OrdNum;
    ResizeOrdArrays();
  }
  OrdID[OrdInd] = ID;
  OrdTicket[OrdInd] = ticket;
//  OrdData1[OrdInd] = 123.45;
//  OrdData2[OrdInd] = 123.45;
//  OrdData3[OrdInd] = 123.45;
//  OrdData4[OrdInd] = 123.45;
  return(0);
}
//+------------------------------------------------------------------+
//| Исключение ордера из списка ордеров                              |
//+------------------------------------------------------------------+
int CutOrder() {
  OrdNum--;
  if (OrdInd < OrdNum) {
    OrdID[OrdInd] = OrdID[OrdNum];
    OrdTicket[OrdInd] = OrdTicket[OrdNum];
//    OrdData1[OrdInd] = OrdData1[OrdNum];
//    OrdData2[OrdInd] = OrdData2[OrdNum];
//    OrdData3[OrdInd] = OrdData3[OrdNum];
//    OrdData4[OrdInd] = OrdData4[OrdNum];
  }
  return(0);
}



P.S. A propósito, usei a mesma "estrutura" para meus canais.

 
<br / translate="no"> ...O número de elementos em uma matriz (tamanho) é alterado dinamicamente com o ArrayResize. ...


A mudança do tamanho de uma matriz já criada não a redimensiona para zero?
 
Não. Isto é verificado com uma impressão.
 
Não. Isto é verificado com uma impressão. <br / translate="no">


Obrigado. Devo ter escrito mal a impressão, de alguma forma. :о)
 
Hm, eu mesmo não chequei por muito tempo, mas primeiro parece funcionar bem, e segundo Renat assegurou explicitamente que esta propriedade pode ser considerada documentada, ou seja, ser suportada em todas as novas versões.
 
Confirmado. Se você aumentar o tamanho da matriz em 1, um novo elemento nulo é adicionado ao final da matriz. Os outros elementos permanecem inalterados.
Quando a matriz é redimensionada, uma linha nula é adicionada à matriz.
 
Obrigado. É seguro dizer que eu estraguei o código. OK. Esta característica facilita muito.
Razão: