Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 533

 

Hallo zusammen, gibt es einen vorgefertigten Befehl, um den Geschäftsverlauf auf dem Bildschirm anzuzeigen?

ähnlich dem Ziehen eines Geschäfts aus der Historie in das Diagramm



Es wäre möglich, die Geschäftshistorie zu durchsuchen und Objekte zuzuordnen, aber ich denke, es gibt einen fertigen Weg

 
Mickey Moose:

Hallo zusammen, gibt es einen vorgefertigten Befehl, um den Geschäftsverlauf auf dem Bildschirm anzuzeigen?

ähnlich dem Ziehen eines Handels aus der Historie in das Diagramm

Dasselbe, aber mit gedrückter Steuerungstaste. Strg oder Umschalttaste - ich weiß es nicht mehr - ich schreibe von einem Mobiltelefon aus.
 
Artyom Trishkin:
Dasselbe, aber mit gedrückter Steuerungstaste. Ich weiß nicht mehr, ob es Strg oder Shift ist - ich schreibe von einem Mobiltelefon aus.



Ich möchte dieses Stück in meinen Nicht-Handelsroboter einfügen, um es in ein Diagramm zu setzen und zu sehen, was vor sich geht.

Um zu sehen, wie viele Würfel pro Jahr für dieses Symbol produziert wurden, muss man es in eine Tabelle eintragen
 
Ihor Herasko:

Es gibt keine Möglichkeit, diese Informationen über MQL zu erhalten. Sie müssen auf DateTimePricker-Steuerelemente zugreifen, was über WinAPI geschieht.

Danke, ich hab's!

Kann für jemanden nützlich sein:

#import "user32.dll"
   int      SendMessageA(int hWnd,int Msg,int wParam,int &lParam[]);
#import

#define  DTM_GETSYSTEMTIME 0x1001

int SystemTime[4];

.....

//+------------------------------------------------------------------+
//|          Функция преобразования в формат datetime                |
//+------------------------------------------------------------------+
datetime FormatDateTime(int &DT[]){
   string sMonth,sDay,sHour,sMin,sSec;
      int nYear,nMonth,nDay,nHour,nMin,nSec;   
      
   //---- parse date and time from array
         nYear=DT[0]&0x0000FFFF;
         nMonth=DT[0]>>16;
         nDay=DT[1]>>16;
         nHour=DT[2]&0x0000FFFF;
         nMin=DT[2]>>16;
         nSec=DT[3]&0x0000FFFF;
         
   //---- format date and time items
         sMonth=100+nMonth;
         sMonth=StringSubstr(sMonth,1);
         sDay=100+nDay;
         sDay=StringSubstr(sDay,1);
         sHour=100+nHour;
         sHour=StringSubstr(sHour,1);
         sMin=100+nMin;
         sMin=StringSubstr(sMin,1);
         sSec=100+nSec;
         sSec=StringSubstr(sSec,1);

   //----
         return(StrToTime(StringConcatenate(nYear,".",sMonth,".",sDay," ",sHour,":",sMin,":",sSec)));
  }
  
void OnInit(void){
  if (IsTesting()){
    SendMessageA(0x0000000000010288,DTM_GETSYSTEMTIME,0, SystemTime);
    Print("date From: ",TimeToString(FormatDateTime(SystemTime)));
    
    SendMessageA(0x000000000001028E,DTM_GETSYSTEMTIME,0, SystemTime);
    Print("date To: ",TimeToString(FormatDateTime(SystemTime)));
  }
  .....
}

void OnTick(void){
  .....
}
//+------------------------------------------------------------------+
 
mrumskiy:

Danke, ich hab's!

Vielleicht ist es für jemanden nützlich:

Dann eine Gegenfrage: Warum ist es notwendig, das Testintervalldatum zu erhalten, wo kann es nützlich sein?

 
Artyom Trishkin:

Wenn i ein Vielfaches von zwei ist.

Dies ist der Rest von i geteilt durch 2

Ich danke Ihnen. Wie kann man im Indikator die Kerzen von 19 bis 11 Uhr aus den Berechnungen ausschließen?

 
PolarSeaman:

Ich danke Ihnen. Wie kann der Indikator Kerzen zwischen 19 und 11 Uhr von seinen Berechnungen ausschließen?

Es ist einfach, die Zeit zu überwachen und zu überspringen, wenn die vorgegebenen Grenzen nicht eingehalten werden.

Die Logik ist einfach: Sie wissen, dass das Geschäft zwischen 14.00 und 15.00 Uhr für das Mittagessen geschlossen ist. Man schaut auf die Uhr und geht nicht in den Laden, wenn es Mittagszeit ist. Warum sind Sie dann hier verwirrt? Was ist der Unterschied?

 
Hallo, ich würde gerne eine Bedingung erstellen, bei der
Während des Zeitraums 0-8 entspricht der Schritt 5 Pips, während des Rests des Tages 10 Pips. Aber wenn ich Orders habe, die am Vortag eröffnet wurden, dann werden in der Zeitspanne 0-8 Schritt auch 10 Pips sein.


 
Artyom Trishkin:

Es ist einfach, die Zeit zu überwachen und zu überspringen, wenn sie nicht innerhalb der festgelegten Grenzen liegt.

Die Logik ist einfach: Sie wissen, dass der Laden zwischen 14:00 und 15:00 Uhr für das Mittagessen geschlossen ist. Man schaut auf die Uhr und geht nicht in den Laden, wenn es Mittagszeit ist. Warum sind Sie dann hier verwirrt? Worin besteht der Unterschied?

Der Punkt ist, dass, wenn Sie ein Zeitintervall wie in der EA setzen

if(Hour()>=17&&Hour()<=11)return(0);

Ich muss Candlesticks, die sich im Intervall befinden, von den Berechnungen aus der Historie ausschließen.

 
Tigerfreerun:
Hallo, ich würde gerne eine Bedingung erstellen, bei der
Während des Zeitraums 0-8 entspricht der Schritt 5 Pips, während des Rests des Tages 10 Pips. Aber wenn es Aufträge vom Vortag gibt, dann wird in der Zeitperiode 0-8 Schritt auch gleich 10 Pips.


Dies könnte der Fall sein:

  if(Hour()>=0&&Hour()<=8&&OrdersTotal()==0)step = 5; else step =10;