Fehler, Irrtümer, Fragen - Seite 1090

 

Hallo zusammen, die Frage ist mehr aus Neugierde: "Warum sind den ENUM_TIMEFRAMES-Aufzählungsmitgliedern diese bestimmten Werte zugewiesen? Woher kommt die Nummer16385 beim Übergang von der M30 zur H1?"

enum ENUM_TIMEFRAMES       
{                          
PERIOD_CURRENT = 0,        
PERIOD_M1 = 1,             
PERIOD_M2 = 2,             
PERIOD_M3 = 3,             
PERIOD_M4 = 4,             
PERIOD_M5 = 5,             
PERIOD_M6 = 6,             
PERIOD_M10 = 10,           
PERIOD_M12 = 12,           
PERIOD_M15 = 15,           
PERIOD_M20 = 20,           
PERIOD_M30 = 30,           
PERIOD_H1 = 16385,  //???       
PERIOD_H2 = 16386,         
PERIOD_H3 = 16387,         
PERIOD_H4 = 16388,         
PERIOD_H6 = 16390,         
PERIOD_H8 = 16392,         
PERIOD_H12 = 16396,        
PERIOD_D1 = 16408,         
PERIOD_W1 = 32769,         
PERIOD_MN1 = 49153         
}; 

Vielen Dank im Voraus für die Antwort(en)!!!

 
MigVRN:

Hallo zusammen, die Frage ist mehr aus Neugierde: "Warum sind den ENUM_TIMEFRAMES-Aufzählungsmitgliedern diese bestimmten Werte zugewiesen? Woher kommt die Nummer16385 beim Übergang von der M30 zur H1?"

Vielen Dank im Voraus für die Antwort(en)!!!


PERIOD_H1 = 16385,  // = (1 << 14) + 1
PERIOD_H2 = 16386,  // = (1 << 14) + 2         
PERIOD_H3 = 16387,  // = (1 << 14) + 3
PERIOD_H4 = 16388,  // = (1 << 14) + 4
PERIOD_H6 = 16390,  // = (1 << 14) + 6
PERIOD_H8 = 16392,  // = (1 << 14) + 8
PERIOD_H12 = 16396, // = (1 << 14) + 12
 
MetaDriver:

Ich danke Ihnen! Aber ich habe die Frage falsch verstanden, denn jetzt bin ich noch mehr verwirrt... Wenn es Ihnen nichts ausmacht, hätte ich noch ein paar klärende Fragen:

1) Warum?

2) Und warum 14?

:)

 
MigVRN:

Ich danke Ihnen! Aber ich habe die Frage falsch verstanden, denn jetzt bin ich noch mehr verwirrt... Wenn es Ihnen nichts ausmacht, hätte ich noch ein paar klärende Fragen:

1) Warum?

2) Und warum 14?

:)

:) Und das liegt an den Entwicklern .... denn ihre Wege sind unergründlich.... ;)
 

Ich glaube, es gibt einen Fehler bei der Suche nach bar mit der Zeit Ich habe es in der FunktionCopyClose gefunden (und in anderen auch).

Beim Kopieren eines Taktes eines "fremden" Symbols mit dieser Funktion kommt es zu einem Kopierfehler, obwohl dieser Takt im geöffneten Fenster daneben vorhanden ist.

2014.01.05 14:52:00.556 tmp (,D1) USDCAD ooo 2012.12.12 00:00:00
2014.01.05 14:51:57.214 tmp (,D1) 80.55313933496228
2014.01.05 14:51:50.947 tmp (,D1) USDCAD ooo 2013.03.04 00:00:00
2014.01.05 14:51:44.828 tmp (,D1) USDCHF ooo 2011.12.26 11:00:00
2014.01.05 14:51:37.896 tmp (,D1) USDCAD ooo 2011.03.02 12:00:00
2014.01.05 14:51:30.112 tmp (,D1) USDSEK ooo 2013.09.20 22:00:00

Im Skript ist es verständlich, man kann es abfragen, bis es "auf wundersame Weise" gefunden wird, aber für den Indikator ist es nicht akzeptabel.

Übrigens habe ich mich daran erinnert, dass ich die Funktion selbst schreiben musste, da die eingebaute Funktion nicht in der Lage war, sie für den Indikator zu verwenden

//--------------------------------------------------------------------------+
//=   Ищет  индекс массива MqlRates по времени
//=   Протестировано 28,12,2011
//=   для прохода по 4 000 800      баров Скопировано USDJPY
//=   ошибок = 0 GetTickCount 2 200 мс.
//=   ВОЗВРАТИТ -1 в случае ошибки + сообщение Алерт
//--------------------------------------------------------------------------+
int save_indexs=0;
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int FindIndex(datetime find,MqlRates &xxxxxx[])
  {
   int size_mql=ArraySize(xxxxxx);
//проверим находится ли время в массиве, и есть ли где искать
   if(size_mql<=0){Alert("ggg");return(-1);}
   if(find>xxxxxx[0].time)return(0);
   if(find<=xxxxxx[size_mql-1].time)return(size_mql-1);
//а может лежит рядом?
//проверим по скорости с глоб. перем.
   for(int i=save_indexs+1;i>=save_indexs-1 && i>=0;i--)
      if(i<size_mql)
         if(find==xxxxxx[i].time)
            return(i);
//результат с применением  ошибок = 0 GetTickCount   843 мс.
//результат без применения ошибок = 0 GetTickCount 3 744 мс.
//начнемс
   int kolvo=size_mql,
   start_save=size_mql-1,
   end_save=0;
   while(!IsStopped())
     {
      //градация поиска +1 для плавающей запятой, учесть все не ошибиться, дойдет до - минусов
      int grad=kolvo/StringLen(IntegerToString(kolvo))+1;
      if(grad<10)grad=1;
      //
      for(int start=start_save,karetka=start-grad;          start>=end_save;          start=karetka,karetka=start-grad)
        {
         //karetka может выходить за размер масс
         if(karetka<0)karetka=0;
         if(find>=xxxxxx[start].time && find<=xxxxxx[karetka].time)
           {
            kolvo=start-karetka+1;
            start_save=start;
            end_save=karetka;
            if(start==karetka+1){save_indexs=karetka;return(karetka);}
            break;//for
           }
        }
     }
   return(-1);
  }
//+------------------------------------------------------------------+

Zwei Jahre sind vergangen und es ist immer noch da, das ist seltsam.

Dateien:
tmp.mq5  3 kb
myusdx.mq5  5 kb
 
Anführungszeichen in eingebetteten Links im Forum zerstören den gesamten Link
 
costy_:

Es scheint ein Fehler bei der Suche nach dem Balken zu geben rechtzeitig in der Funktion CopyClose (und auch in anderen).

....

Es ist zwei Jahre her , und es ist immer noch da, das ist seltsam.

es ist kein Fehler, es ist ein Fehler (c)

CopyXXX fi holt sich die Daten aus den entsprechenden Puffern, und wenn sich keine Daten im Puffer befinden (fremdes Symbol und / oder ein anderer Zeitrahmen als der aktuelle), dann tritt ein Fehler auf. Dennoch wird in diesem Fall der Pufferbildungsprozess gestartet, und wenn nach einiger (sic!) Zeit CopyXXX erneut aufgerufen wird, kann das Ergebnis erhalten werden. Sie können Sleep nicht in Indikatoren verwenden, deshalb müssen Sie Timer verwenden, weil Sie nicht auf den nächsten Tick zählen können (Ausgabe und nicht liquide Instrumente sind daran schuld)

 

Ich kann mich nicht über die Website in den Tresorraum einloggen. Wenn ich meinen Benutzernamen und mein Passwort eingebe, erscheint wieder das Anmelde- und Passwortfeld.

Ich kann auch nichts über MetaEditor abrufen:

Login und Passwort sind korrekt

Können Sie mir den Grund dafür nennen?

 
sanyooooook:

Ich kann nicht über die Website auf den Tresor zugreifen. Wenn ich meinen Benutzernamen und mein Passwort eingebe, erscheint wieder das Feld für die Anmeldung und das Passwort.

Ich kann auch nichts über MetaEditor abrufen:

Login und Passwort sind korrekt

Können Sie mir den Grund dafür nennen?

Vielleicht haben Sie das Passwort geändert, da es einen solchen Fehler gab.
 
zfs:
Vielleicht haben Sie Ihr Passwort geändert, oder es gab einen Fehler.
Ja, das habe ich, aber ich gebe ein gültiges Passwort ein.
Grund der Beschwerde: