Probleme bei der Prüfung auf offenen Handel - Seite 3

 
extern int     iOpenHour                = 6;

int start()
  {
                                                            
int b, scannedhour;
datetime bartime;
double dibsclose, dibsopen, prevdayrange[4];       //  prevdayrange Array Categorys ( 1  EURUSD, 2 GBPUSD, 3 USDCHF, 4 USDJPY )

//----------------------------------------------------------------------------------------------
//        EURUSD PREV DAY RANGE CALC

for(b=0; b<=24; b++)                               // scans the last 24 bars on eurusd
   {
      bartime = iTime("EURUSD", 60, b);               // checks the open time of each bar
      scannedhour = TimeHour(bartime);                // extracts the hour of that bar
    
      if ( scannedhour == iOpenHour )                    // Check to see if scanned hour = Dibs hour
         {
            dibsclose    = iOpen("EURUSD", 60, b);    // Get the open value of that bar (Close of 6gmt day) 
            dibsopen     = iOpen("EURUSD", 60, b+24); // Get the value of the bar 24 bars before the Dibs bar (Open of 6gmt day)
            prevdayrange[1] = (dibsclose-dibsopen);   // Calculate the range of the Dibs day
         }                                                  // End of if statement
    }                                                       // End of for statement
    

//----------------------------------------------------------------------------------------------
//        GBPUSD PREV DAY RANGE CALC

for(b=0; b<=24; b++)                               // scans the last 24 bars on eurusd
   {
      bartime = iTime("GBPUSD", 60, b);               // checks the open time of each bar
      scannedhour = TimeHour(bartime);                // extracts the hour of that bar
    
      if ( scannedhour == iOpenHour )                    // Check to see if scanned hour = Dibs hour
         {
            dibsclose    = iOpen("GBPUSD", 60, b);    // Get the open value of that bar (Close of 6gmt day) 
            dibsopen    = iOpen("GBPUSD", 60, b+24); // Get the value of the bar 24 bars before the Dibs bar (Open of 6gmt day)
            prevdayrange[2] = (dibsclose-dibsopen);   // Calculate the range of the Dibs day
         }                                                  // End of if statement
    }                                                       // End of for statement



//----------------------------------------------------------------------------------------------
//        USDCHF PREV DAY RANGE CALC

for(b=0; b<=24; b++)                               // scans the last 24 bars on eurusd
   {
      bartime = iTime("EURUSD", 60, b);               // checks the open time of each bar
      scannedhour = TimeHour(bartime);                // extracts the hour of that bar
    
      if ( scannedhour == iOpenHour )                    // Check to see if scanned hour = Dibs hour
         {
            dibsclose    = iOpen("USDCHF", 60, b);    // Get the open value of that bar (Close of 6gmt day) 
            dibsopen     = iOpen("USDCHF", 60, b+24); // Get the value of the bar 24 bars before the Dibs bar (Open of 6gmt day)
            prevdayrange[3] = (dibsclose-dibsopen);   // Calculate the range of the Dibs day
         }                                                  // End of if statement
    }                                                       // End of for statement



//----------------------------------------------------------------------------------------------
//        USDJPY PREV DAY RANGE CALC

for(b=0; b<=24; b++)                               // scans the last 24 bars on eurusd
   {
      bartime = iTime("USDJPY", 60, b);               // checks the open time of each bar
      scannedhour = TimeHour(bartime);                // extracts the hour of that bar
    
      if ( scannedhour == iOpenHour )                    // Check to see if scanned hour = Dibs hour
         {
            dibsclose    = iOpen("USDJPY", 60, b);    // Get the open value of that bar (Close of 6gmt day) 
            dibsopen     = iOpen("USDJPY", 60, b+24); // Get the value of the bar 24 bars before the Dibs bar (Open of 6gmt day)
            prevdayrange[4] = (dibsclose-dibsopen);   // Calculate the range of the Dibs day
         }                                                  // End of if statement
    }                                                       // End of for statement


//----------------------------------------------------------------------------------------------



Comment("EURUSD RANGE=", prevdayrange[1],        //Display Ranges of each pair
        "GBPUSD RANGE=", prevdayrange[2],
        "USDCHF RANGE=", prevdayrange[3],
        "USDJPY RANGE=", prevdayrange[4]);      


   return(0);
  }

Ok, so dass ich es behoben, so dass die prevdayrange das einzige Array ist. Jetzt aus irgendeinem Grund der USDJPY Abschnitt des Codes ist nicht arbeiten. Es ist das gleiche wie die anderen 4 Anweisungen mit dem Paar in iopen's und die richtige Array-Wert geändert...

Hier ist, was es tut ---> http://clip2net.com/s/13WDY

Wie fügen Sie Leerzeichen in die Kommentarfunktion ein, und können Sie sie dazu bringen, in die nächste Zeile zu drucken?

 
dazamate:

Ok, so dass ich es behoben, so dass die prevdayrange das einzige Array ist. Jetzt aus irgendeinem Grund der USDJPY Abschnitt des Codes ist nicht arbeiten. Es ist das gleiche wie die anderen 4 Anweisungen mit dem Paar in iopen's und die richtige Array-Wert geändert...

Hier ist, was es tut ---> http://clip2net.com/s/13WDY

Wie fügt man Leerzeichen in die Kommentarfunktion ein und kann man sie dazu bringen, in die nächste Zeile zu drucken?


Das erste Element in einem Array ist 0, wenn ein Array 4 Elemente hat, ist das letzte Element 3 und nicht 4 ;-) https://docs.mql4.com/basis/variables

Kommentar()

Comment("This adds some spaces ", "   ", "this adds a carriage return", "\n");
 

Alright dieser Code ist ziemlich viel tun, was es bedeutet, außer wenn eine neue 6:00 Kerze öffnet es nicht die Informationen zu aktualisieren. Wenn die aktuelle Kerze eine 6:00 Kerze ist, möchte ich, dass es zu scannen, dass Bars offen und gehen Sie zurück 24 Bars und scannen, dass Bars offen und tun alle calcs und wenn der aktuelle bar ist nicht ein 6:00 bar dann halten Schritt zurück eine Bar, bis es die letzte 6:00 Kerze findet. Es scheint zu sein, Schritt zurück ok, aber scheint nicht zu mögen, wenn die aktuelle Kerze ist die 6:00. Ich kann es nicht herausfinden. Können die Legenden das Problem erkennen?


Der Code wird zu umfangreich, um ihn hier zu posten, also musste ich den Quellcode hochladen

Dateien:
hothand.mq4  11 kb
 
dazamate:

Es scheint in Ordnung zu sein, zurück zu gehen, aber es scheint nicht zu mögen, wenn die aktuelle Kerze die 6:00 ist. Ich kann es nicht herausfinden. Können die Legenden das Problem erkennen?


Ist dies mit dem Strategy Tester ? wenn ja...

WHRoeder 2011.07.18 18:30

Tester Einschränkung: Sie können im Tester keine Bar-Null-Daten für andere Timeframes oder Paare erhalten. Versuchen Sie es:

 

Nein, Raptor, das war auf einer Live-Karte, sollte ich ändern.


for(b=0; b<=24; b++) to for(b=-1; b<=24; b++)
Ich habe nur laut gedacht und bin mir nicht sicher, ob das etwas ändern würde.
 
dazamate:

Nein, Raptor, das war auf einer Live-Karte, sollte ich ändern.


Ich habe nur laut gedacht und bin mir nicht sicher, ob das etwas ändern würde.
Ah, OK, ich werde mir Ihren Code noch einmal ansehen...
 
Ich werde Ihren Code beim nächsten Stundenwechsel testen, weil ich nichts Offensichtliches erkennen kann ... sind Sie sicher, dass Sie um 6 Uhr Serverzeit geprüft haben? Die lokale PC-Zeit ist nicht unbedingt die gleiche Zeit wie die Serverzeit, die Serverzeit wird in Ihrem Code und in Ihren Diagrammen verwendet.
 

Alles scheint gut zu funktionieren, aber es wird nicht abholen die 6:00 bar, es sei denn, es ist hinter dem aktuellen bar, wenn das Sinn macht.


Vielen Dank für Ihre Zeit Raptor

 
dazamate:

Alles scheint gut zu funktionieren, aber es wird nicht abholen die 6:00 bar, es sei denn, es ist hinter dem aktuellen bar, wenn das Sinn macht.


Vielen Dank für Ihre Zeit Raptor

Ja, ich glaube, ich verstehe, was Sie sagen, es wird nicht aktualisiert, wenn die Zeit von 05:59 auf 06:00 wechselt...

Ich verwende MBT zum Testen und seine Serverzeit für den aktuellen H1-Balken ist 04:00, also habe ich iOpenHour auf 5 gesetzt, mal sehen, was in 20 Minuten passiert.

 

OK, ich habe das gleiche Problem, keine Aktualisierung, wenn die aktuelle Kerze um 05:00 Uhr geöffnet wurde... interessant.