eine Handelsstrategie auf der Grundlage der Elliott-Wellen-Theorie - Seite 296

 
Andre69

Haben Sie versucht, die Koeffizienten der Wavelet-Transformation zusätzlich zu manipulieren?
Am Ende steht dann so etwas wie das hier:
 
Leute, arbeitet für das Wohl des Vaterlandes, betreibt Wissenschaft, denkt euch etwas Nützliches aus, zeigt endlich euren Ehrgeiz
 
Liebe Kolleginnen und Kollegen, ich habe eine kleine Frage. Wie soll ich es richtig ausdrücken - ist es möglich, die Anzahl der Elemente in einem Array dynamisch zu erweitern. Ich suche zum Beispiel nach stabilen Kanälen in einem bestimmten Bereich, der mit einem Null-Bar beginnt. Ich kenne ihre Anzahl seit Beginn der Suche nicht und es ist möglich, dass ich keine finden werde. Aus der Dokumentation, die ich gelesen habe, schließe ich, dass das nicht möglich ist. Stimmt das, oder gibt es einen raffinierteren Weg?

PS: Bislang habe ich mehrere Varianten in MT entwickelt (in MathCAD gibt es dieses Problem nicht):

(1). Ich erstelle einen Parameter (int count=0;), durchlaufe den Bereich in einer Schleife und prüfe die Kriterien; wenn er sie erfüllt, ist count=count+1. Anschließend erstelle ich ein Array mit der ermittelten Anzahl und wiederhole alles noch einmal: Ich schreibe die berechneten Parameter in das Array und wähle den optimalen Kanal.

(2) Erstellen Sie ein Array für die Kanalparameter entsprechend der ursprünglichen Bereichslänge.
 
grasn
... Wie kann ich es richtig ausdrücken - ist es möglich, die Anzahl der Elemente in dem Array dynamisch zu erweitern. Ich suche zum Beispiel nach stabilen Kanälen in einem bestimmten Bereich ab Nullbar. Ich weiß nicht, wie viele von ihnen ich zu Beginn der Suche gefunden habe, und es kann sein, dass ich keine finde.

Ehrlich gesagt, ist die Frage nicht ganz klar. Die Anzahl der Elemente in einem Array (Größe) wird mit ArrayResize dynamisch verändert. Wenn Sie tatsächlich Strukturen erstellen wollen, werden diese nur im MT5 versprochen.
Rein durch den Gleichklang der Worte - ich löste das Problem der zusätzlichen Ordnungseigenschaften, wir kannten ihre Anzahl nicht genau und die Anzahl der Eigenschaften (die gleichen 40 Indikatoren) war auch nicht vorher bekannt. Es wurden drei Funktionen verwendet, doch mussten jeder dieser Funktionen manuell neue Eigenschaften hinzugefügt werden, die anschließend neu kompiliert wurden. Ich weiß nicht, ob das richtig oder falsch ist, aber nur für den Fall, hier ist der Code der letzten Version
//+------------------------------------------------------------------+
//| Изменение размеров массивов свойств ордера                       |
//+------------------------------------------------------------------+
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. Übrigens habe ich die gleiche "Struktur" für meine Kanäle verwendet.

 
<br / translate="no"> ...Die Anzahl der Elemente in einem Array (Größe) wird mit ArrayResize dynamisch verändert. ...


Wird die Größe eines bereits erstellten Arrays nicht auf Null zurückgesetzt?
 
Nein. Dies wird durch einen Ausdruck überprüft.
 
Nein. Dies wird durch einen Ausdruck überprüft. <br / translate="no">


Ich danke Ihnen. Ich muss den Druck irgendwie falsch geschrieben haben. :о)
 
Hm, ich habe es selbst schon lange nicht mehr überprüft, aber erstens scheint es gut zu funktionieren, und zweitens hat Renat ausdrücklich zugesichert, dass diese Eigenschaft als dokumentiert angesehen werden kann, d.h. in allen neuen Versionen unterstützt werden soll.
 
Bestätigt. Wenn Sie die Größe des Arrays um 1 erhöhen, wird am Ende des Arrays ein neues Nullelement hinzugefügt. Die anderen Elemente bleiben unverändert.
Wenn die Größe der Matrix geändert wird, wird der Matrix eine Nullzeile hinzugefügt.
 
Ich danke Ihnen. Es ist sicher, dass ich den Code verpfuscht habe. OK. Diese Funktion macht es viel einfacher.