una strategia di trading basata sulla teoria dell'onda di Elliott - pagina 296

 
Andre69

Avete provato a manipolare ulteriormente i coefficienti della trasformazione wavelet.
Finisci con qualcosa del genere:
 
Ragazzi, lavorate per il bene della patria, fate scienza, inventate qualcosa di utile, mostrate finalmente la vostra ambizione
 
Colleghi, c'è una piccola domanda. Come devo dire correttamente - è possibile espandere dinamicamente il numero di elementi in un array. Per esempio, sto cercando dei canali stabili in una certa area a partire dalla barra zero. Non conosco il loro numero dall'inizio della ricerca ed è possibile che non ne trovi nessuno. Dalla documentazione che ho letto, credo di aver capito che non si può. È vero o c'è un modo più intelligente?

PS: Finora ho trovato diverse varianti in MT (MathCAD non ha questo problema):

(1). Creo un parametro (int count=0;) faccio un ciclo attraverso l'intervallo e controllo i criteri; se li soddisfa, count=count+1. Poi, creo un array con il conteggio ottenuto, e ripeto tutto da capo: scrivo i parametri calcolati nell'array e seleziono il canale ottimale.

(2) Creare una matrice per i parametri del canale secondo la lunghezza originale dell'intervallo.
 
grasn
... Come posso dirlo correttamente - è possibile espandere dinamicamente il numero di elementi nell'array. Per esempio, sto cercando dei canali stabili in una certa zona dalla barra zero. Non conosco il loro numero all'inizio della ricerca e potrei non trovarne nessuno.

Francamente, la questione non è molto chiara. Il numero di elementi in una matrice (dimensione) viene cambiato dinamicamente con ArrayResize. Se volete effettivamente creare delle strutture, queste sono promesse solo in MT5.
Per pura consonanza di parole - stavo risolvendo il problema delle proprietà aggiuntive degli ordini e non conoscevo esattamente il numero di proprietà (quei 40 indicatori) anche prima. Sono state utilizzate tre funzioni, ma è stato necessario aggiungere manualmente nuove proprietà a ciascuna di esse, con successiva ricompilazione. Non so se sia giusto o sbagliato, ma per sicurezza, ecco il codice dell'ultima versione
//+------------------------------------------------------------------+
//| Изменение размеров массивов свойств ордера                       |
//+------------------------------------------------------------------+
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 proposito, ho usato la stessa "struttura" per i miei canali.

 
<br / translate="no"> ...Il numero di elementi in un array (dimensione) è cambiato dinamicamente con ArrayResize. ...


Cambiare la dimensione di un array già creato non lo ridimensiona a zero?
 
No. Questo viene controllato con una stampa.
 
No. Questo viene controllato con una stampa. <br / translate="no">


Grazie. Devo aver scritto male la stampa in qualche modo. :о)
 
Hm, non lo controllo io stesso da molto tempo, ma in primo luogo sembra funzionare bene, e in secondo luogo Renat ha esplicitamente assicurato che questa proprietà può essere considerata documentata, cioè essere supportata in tutte le nuove versioni.
 
Confermato. Se si aumenta la dimensione dell'array di 1, un nuovo elemento nullo viene aggiunto alla fine dell'array. Gli altri elementi rimangono invariati.
Quando la matrice viene ridimensionata, viene aggiunta una riga nulla alla matrice.
 
Grazie. Si può dire che ho incasinato il codice. Ok, questa funzione rende tutto molto più facile.