[ARCHIV]Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht daran vorbei. Ohne dich kann ich nirgendwo hingehen - 5. - Seite 429

 
Dimka-novitsek:

Guten Tag!!! Ich muss wohl etwas über Arrays oder so falsch verstanden haben. Die Funktion fügt keinen Gewinn in das Array ein!!! Sie ist unter allen Umständen gleich Null. Null und das war's!

int Orderasthitaem[6][3];
void Orderasthitaem()
{
 int BUY = 0, SELL = 0, BUYLIMIT = 0, BUYSTOP = 0, SELLLIMIT = 0, SELLSTOP = 0;
 double BUY_Profit = 0, SELL_Profit = 0;
 for (int i = 0; i < OrdersTotal(); i++)
  {
   OrderSelect(i, SELECT_BY_POS);  
   if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magicnumber)
    {            
     int type = OrderType();
     if (type == 0) {BUY++; BUY_Profit = BUY_Profit + OrderProfit();}
     if (type == 1) {SELL ++; SELL_Profit = SELL_Profit + OrderProfit();}
     if (type == 2) {BUYLIMIT++;}
     if (type == 3) {SELLLIMIT++;}
     if (type == 4) {BUYSTOP++;}
     if (type == 5) {SELLSTOP++;}}}
       
     Orderasthitaem[0][1] = BUY;
     Orderasthitaem[0][2] = BUY_Profit;
     Orderasthitaem[1][1] = SELL;
     Orderasthitaem[1][2] = SELL_Profit;
     Orderasthitaem[2][1] = BUYLIMIT;
     Orderasthitaem[3][1] = SELLLIMIT;
     Orderasthitaem[4][1] = BUYSTOP;
     Orderasthitaem[5][1] = SELLSTOP;        
    }
  }
}
Funktion.

Der Obiagraph steht außerhalb aller Funktionen.

 
Ich danke Ihnen!!!
 

Warum ein Array wie int? Was ist, wenn die Gewinne nur einen Bruchteil ausmachen, aber ich glaube nicht, dass das von Bedeutung ist... Ja, anscheinend gibt es keinen Grund für eine Mitgift!

Ich werde sie jetzt neu definieren und es versuchen. Aber wird es etwas bewirken? Warum hat es nicht geklappt? Ich werde es ausprobieren...

 
ruslanchik:
Wenn das Auftragsticket auf dem Server des Maklers gespeichert wird, wo werden dann die Majik- und Kommentaraufträge gespeichert?

Auf dem Server des Maklers.
 
Ah, ich verstehe, was Sie Array-Elementen zuweisen. Ja, danke!!!!!!!!
 
Hallo, ich studiere gerade das MQL4-Tutorial von Sergey Kovalev und habe noch nicht herausgefunden, wie man auf Zeitreihen-Arrays anderer Währungspaare zugreifen kann. D.h., ich muss Arrays von Zeitreihen mehrerer Währungspaare in einen EA laden. Ich weiß, dass auf einige Daten mit der Funktion MarketInfo() zugegriffen werden kann, aber das Problem ist, dass die Anfrage-IDs keinen Abschluss oder andere Parameter für Preisreihen enthalten. Bitte raten Sie, wo ich lesen kann, wie die Arbeit (wenn überhaupt) mit Arrays-Zeitreihen und mehrere Instrumente zu organisieren, oder vielleicht, wie diese Einschränkung zu umgehen.
 
Ich habe noch nichts kompiliert oder ausprobiert, ich habe es mir nur angesehen. Takm, der Punkt ist, dass beim Verlassen von Schleifen die Werte der Variablen BUY_Profit und prue nicht gespeichert werden, richtig? Wird das Programm sequentiell ausgeführt, oder wird es nicht gespeichert?
 
Dimka-novitsek:
Ich habe noch nichts kompiliert oder ausprobiert, ich habe es mir nur angesehen. Tuck, der Punkt ist, dass beim Verlassen der Schleifen, BUY_Profit und BUT Werte nicht gespeichert werden, richtig? Wird das Programm sequentiell ausgeführt, oder wird es nicht gespeichert?
Dimka-novitsek:
Ah, ich verstehe, was Sie Array-Elementen zuweisen. Ja, danke!!!!!!!!

Jeder Typ ist möglich. Ich habe nur nicht bemerkt, dass eine der Variablen doppelt vorkommt. Wenn Sie das Doppelte brauchen, setzen Sie das Doppelte ein.

Funktioniert sie?

 

Ich bin nur auf der Suche. И... OOOOOOO!!!!!! Ich habe es in meinem so gemacht, also Orderasthitaem[6][2] deklariert; im Element zwei Arrays, das hast du verstanden, und schon das dritte Orderasthitaem[0,2] angesprochen !!!!!!!

Sicherlich, hier ist der Hund im Loch!!!!!!!!!!! OOO!!!

 
Dimka-novitsek:
Ich habe noch nichts kompiliert oder ausprobiert, ich habe es mir nur angesehen. Takm, der Punkt ist, dass beim Verlassen der Schleifen die Werte der Variablen BUY_Profit und prue nicht gespeichert werden, richtig? Wird das Programm sequentiell ausgeführt, oder wird es nicht gespeichert?

...können Sie auch dies tun:

double Orderasthitaem[6][2];
void Orderasthitaem()
{
    double ld_Profit = 0.;
    int li_Total = OrdersTotal();
    ArrayInitialize (Orderasthitaem, 0.);
    if (li_Total == 0) return;
    for (int i = 0; i < OrdersTotal(); i++)
    {
        OrderSelect (i, SELECT_BY_POS);  
        if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magicnumber)
        {            
            int type = OrderType();
            ld_Profit = OrderProfit();
            Orderasthitaem[type][0]++;
            if (type > 1) continue;
            Orderasthitaem[type][1] += ld_Profit;
        }
    }
}
- Das hängt davon ab, wie Sie es mögen.