Array-Variablen können keine numerischen Werte empfangen
Ergebnis 1 bis 3 von 3

Thema: Array-Variablen können keine numerischen Werte empfangen

  1. #1
    Hallo, erfahrene Programmierer!

    Ich habe ein seltsames Problem mit Arrays in MT4 erlebt. Mein EA beschägt sich mit Multi-Paaren. Ich muss also Arrays verwenden.

    Wie der beigefügte Code zeigt, deklariere ich einige Variablen in Array-Form vor init (). Später in einem Verfahren zum Zusammenfassen der Anzahl der Trades, der Anzahl der Lots und des variablen GewinnsVerlusts funktioniert die Berechnung zum Einfügen dieser Werte in diese deklarierten Array-Variablen nicht.

    Die 4 Alarme (), die ich in den Code eingebe, geben 0 für die entsprechenden Werte (NO.of Trades, Lots und PL) zurück, während sie eigentlich Werte wie 2,3,0,6 oder 120 ( zum Beispiel).

    ein Beispiel: diese Zeile:
    Alert (lt; 2gt ;: dieses Paar [i] hat PL von DoubleToStr (PairNetPL [i], 1));

    sollte mir geben:
    lt; 2gt ;: dieser USDJPY hat einen PL von 110,5

    aber tatsächlich gibt es mir:
    lt; 2gt ;: dieser USDJPY hat einen PL von 0

    Das Problem ist, dass ich sicher bin, dass OrderProfit () auch 110.5 zurückgibt. scheinbar, irgendwie können die Werte einfach nicht in das Array übertragen werden, selbst wenn mein Code so schreibt.

    kann mir hier jemand ein Licht geben?

    Danke vielmals.

    Inserted Code double PairBuys # 91; # 93;, PairSells # 91; # 93;, PairNetPos # 91; # 93;, PairNetLot # 91; # 93;, PairNetPL # 91; # 93 ;;/vor dem init () void Count_PL_Trades_Lots () {TotalTrades = 0; EAPL = 0,0; ArrayInitialize (PairBuys, 0); ArrayInitialize (PairSells, 0); ArrayInitialize (PairNetPos, 0); ArrayInitialize (PairNetLot, 0); ArrayInitialize (PairNetPL, 0); for (int k = 0; k lt; OrdersTotal (); k ) {OrderSelect (k, SELECT_BY_POS, MODE_TRADES); if (OrderMagicNumber () == MagicNumber OrderLots () == Lots) {für (int i = 0; i lt; ArraySize (Paare); i ) {if (OrderSymbol () == Paare # 91; i # 93;) {Alert (lt; 1gt ;: Paar ist Paare # 91; i # 93; mit dem Typ OrderType () und PL OrderProfit ()); PairNetPL # 91; i # 93; = PairNetPL # 91; i # 93; OrderProfit (); Alarm (lt; 2gt ;: this Pairs # 91; i # 93; hat einen PL von DoubleToStr (PairNetPL # 91; i # 93;, 1)); EAPL = EAPL PairNetPL # 91; i # 93 ;; if (OrderType () == OP_BUY) {PairBuys # 91; i # 93; = PairBuys # 91; i # 93; 1; Warnung (lt; 3gt ;: DoubleToStr (PairBuys # 91; i # 93; 1)); } if (OrderType () == OP_SELL) PairSells # 91; i # 93; = PairSells # 91; i # 93; 1; Warnung (WindowExpertName () Pairs # 91; i # 93; hat DoubleToStr (PairBuys # 91; i # 93;, 0) kauft und DoubleToStr (PairSells # 91; i # 93;, 0) verkauft .); }}}} for (i = 0; i lt; ArraySize (Paare); i ) {if (PairBuys # 91; i # 93; gt; PairSells # 91; i # 93;) PairNetPos # 91; i # 93; = PairBuys # 91; i # 93; - PairSells # 91; i # 93 ;; else PairNetPos # 91; i # 93; = -PairBuys # 91; i # 93; PairSells # 91; i # 93 ;; PairNetLot # 91; i # 93; = PairNetPos # 91; i # 93; * Viele; TotalTrades = TotalTrades PairNetPos # 91; i # 93 ;; }/Alert (WindowExpertName () - TotalTrades: DoubleToStr (TotalTrades, 0)); return (0); }

  2. #2

    Zitat Zitat von ;
    Wie der beigefügte Code zeigt, deklariere ich einige Variablen in Array-Form vor init (). Später in einem Verfahren zum Zusammenfassen der Anzahl der Trades, der Anzahl der Lots und des variablen GewinnsVerlusts funktioniert die Berechnung zum Einfügen dieser Werte in diese deklarierten Array-Variablen nicht.
    Ich sehe, wo Sie die Variablen für die Arrays deklarieren, aber wo legen Sie eigentlich die Größe der Arrays fest?

  3. #3
    Hallo, ZZ, du bist gekommen, um mich zu retten, lol nice ch, ich habe die Größe des Arrays nicht festgelegt. Ich dachte, mit der for-Schleife wird das Element des Arrays sowieso implizit behandelt, also ist dies das Problem? Ich werde vorgehen, um zu korrigieren und zu testen. Nochmals vielen Dank und noch mehr Pips bei Ihnen, ZZ!
    Zitat Zitat von ;
    {quote} Ich sehe, wo Sie die Variablen für die Arrays deklarieren, aber wo legen Sie eigentlich die Größe der Arrays fest?
    Zitat Zitat von ;
    {quote} Ich sehe, wo Sie die Variablen für die Arrays deklarieren, aber wo legen Sie eigentlich die Größe der Arrays fest?

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  
Die tradingintuitive Webseite verwendet Cookies
Wir nutzen Cookies, um Ihnen das Webseitenerlebnis bestmöglich anbieten zu können. Durch weitere Nutzung der Webseite erlauben Sie die Nutzung von Cookies. Für weitere Details und wie Sie ggf. diese Einstellungen verändern können, lesen Sie bitte unsere Datenschutzbestimmung. Lesen Sie mehr