Fragen von Anfängern MQL4 MT4 MetaTrader 4 - Seite 138

 
Hallo, können Sie mir sagen, ob es möglich ist, ein Kopieren Signal und ein Roboter zu einem mt4-Konto zu verbinden und verbinden Sie alle diese auf die vps?
 
2002569:Hallo, können Sie mir sagen, ob es möglich ist, ein Kopier-Signal und ein Roboter in mt4 zu verbinden und die ganze Sache zu vps verbinden?

Ja, natürlich können Sie das!!!

 

Hallo Leute. Können Sie jemanden beraten, der mit der Programmierung bestens vertraut ist?

Ich erstelle unter bestimmten Bedingungen eine horizontale Linie. Ich definiere einen Preis mit OLB, um OpenlineB in einem anderen Code als Preis für die horizontale Linie zu verwenden. In einem anderen Code, in dem er benötigt wird, wird er als Ganzzahl angezeigt. Zum Beispiel ist der Preis 110,256 und es wird 110 angezeigt. Das habe ich mit Comment herausgefunden. Warum wird der genaue Preis nicht angezeigt, wo liegt das Problem?

int OpenlineB() {
    double ma60=...;
    double ma=...;
    if((fMarketOrders(OP_BUY)==0)) { 
         ObjectCreate(0,"BUY",OBJ_HLINE,0,0,ma60+ma); }   
 int OLB=ObjectGet("BUY", OBJPROP_PRICE1);      
 return(OLB);}

int TRlineB(){
Comment(OpenlineB());
return(true);}
 
Rustam Bikbulatov:

Hallo Leute. Können Sie jemanden beraten, der mit der Programmierung bestens vertraut ist?

Ich erstelle unter bestimmten Bedingungen eine horizontale Linie. Ich definiere einen Preis mit OLB, um OpenlineB in einem anderen Code als Preis für die horizontale Linie zu verwenden. In einem anderen Code, in dem er benötigt wird, wird er als Ganzzahl angezeigt. Zum Beispiel ist der Preis 110,256 und es wird 110 angezeigt. Das habe ich mit Comment herausgefunden. Warum wird der genaue Preis nicht angezeigt, wo liegt das Problem?

int double OpenlineB()

Ihre Funktion gibt eine ganze Zahl zurück. Sie erhalten das, was gedruckt wurde.
Und natürlich konvertieren Sie es im weiteren Verlauf der Funktion in das Doppelformat.

 
Konstantin Nikitin:

Ihre Funktion gibt eine ganze Zahl zurück. Sie erhalten das, was gedruckt wurde.
Und natürlich konvertieren Sie es weiter in der Funktion in das Format double.

double OpenlineB() {
    double ma60=...;
    double ma=...;
    if((fMarketOrders(OP_BUY)==0)) { 
         ObjectCreate(0,"BUY",OBJ_HLINE,0,0,ma60+ma); }   
 int OLB=ObjectGet("BUY", OBJPROP_PRICE1);      
 return(OLB);}

Schon ausprobiert, gibt eine ganze Zahl zurück.

 
Konstantin Nikitin:

Ihre Funktion gibt eine ganze Zahl zurück. Was Sie haben, ist das, was Sie gedruckt haben.
Und natürlich konvertieren Sie es weiter in der Funktion in das Doppelformat.

int OpenlineB() {
    double ma60=iMA(NULL,1,5,0,1,0,1);
    double ma=(iMA(NULL,60,6205,0,1,2,1)-iMA(NULL,60,6205,0,1,3,1));
    if((fMarketOrders(OP_BUY)==0)) { 
         ObjectCreate(0,"BUY",OBJ_HLINE,0,0,ma60+ma); }   
 double OLB=ObjectGet("BUY", OBJPROP_PRICE1);      
 return(OLB);}

Ich hab's!!! Vielen Dank, lieber Konstantin!!!!!!!!!!!!!!!!!!

 
Rustam Bikbulatov:

Ich habe es bereits ausprobiert. Das Ergebnis ist eine ganze Zahl.

Versuchen Sie es mit ObjectGetDouble
Und ändern Sie die Funktionsdeklaration in

double OpenlineB() {
 
Konstantin Nikitin:

Versuchen Sie es mit ObjectGetDouble

Alles erledigt!

double OpenLineB() {
    double ma60=iMA(NULL,1,5,0,1,0,1);
    double ma=(iMA(NULL,60,6205,0,1,2,1)-iMA(NULL,60,6205,0,1,3,1));
    if((fMarketOrders(OP_BUY)==0)) { 
         ObjectCreate(0,"BUY",OBJ_HLINE,0,0,ma60+ma); }   
 double OLB=ObjectGet("BUY", OBJPROP_PRICE1);      
 return(OLB);}

Ich danke Ihnen!!!

 
Rustam Bikbulatov:

Alles erledigt!

Ich danke Ihnen!!!

Kann ich sie ein wenig kürzen?

double OpenLineB() {
  double ma60=iMA(NULL,1,5,0,1,0,1);
  double ma=(iMA(NULL,60,6205,0,1,2,1)-iMA(NULL,60,6205,0,1,3,1));
  if(fMarketOrders(OP_BUY)==0) 
   ObjectCreate(0,"BUY",OBJ_HLINE,0,0,ma60+ma);
 return(ObjectGetDouble(0,"BUY",OBJPROP_PRICE));
}
 
Vitaly Muzichenko:

Du könntest sie ein wenig kürzen.

double OpenLineB() {
  if(fMarketOrders(OP_BUY)==0) {
    double ma60=iMA(NULL,1,5,0,1,0,1);
    double ma=(iMA(NULL,60,6205,0,1,2,1)-iMA(NULL,60,6205,0,1,3,1));
    ObjectCreate(0,"BUY",OBJ_HLINE,0,0,ma60+ma);
    return ma60+ma;
  }
 return(ObjectGetDouble(0,"BUY",OBJPROP_PRICE));
}

andernfalls werden die Indikatordaten bei jedem Zugriff aus dem Cache abgerufen
Und es wäre besser, das Niveau der "BUY"-Linie in Ihren Variablen zu halten und nicht auf dem Chart zu suchen.