Domande dai principianti MQL4 MT4 MetaTrader 4 - pagina 138

 
Ciao, puoi dirmi se è possibile collegare un segnale di copia e un robot a un conto mt4 e collegare tutto questo al vps?
 
2002569:Ciao, puoi dirmi se è possibile collegare un segnale di copia e un robot in mt4 e collegare il tutto al vps?

Sì, certo che puoi!!!

 

Ciao ragazzi. Potete consigliare una persona che conosce perfettamente la programmazione?

Creo una linea orizzontale in determinate condizioni. Definisco un prezzo con OLB per utilizzare OpenlineB in un altro codice come prezzo della linea orizzontale. In un altro codice, dove è necessario, viene visualizzato come un intero. Per esempio il prezzo è 110.256 e mostra 110. Questo è stato scoperto con Comment. Perché il prezzo esatto non viene visualizzato, qual è il problema?

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:

Ciao ragazzi. Potete consigliare una persona che conosce perfettamente la programmazione?

Creo una linea orizzontale in determinate condizioni. Definisco un prezzo con OLB per utilizzare OpenlineB in un altro codice come prezzo della linea orizzontale. In un altro codice, dove è necessario, viene visualizzato come un intero. Per esempio il prezzo è 110.256 e mostra 110. L'ho scoperto con Comment. Perché il prezzo esatto non viene visualizzato, qual è il problema?

int double OpenlineB()

La vostra funzione restituisce un numero intero. Quello che si ottiene è quello che viene stampato.
E naturalmente, più avanti nella funzione lo si converte in formato doppio.

 
Konstantin Nikitin:

La vostra funzione restituisce un intero. Quello che si ottiene è quello che viene stampato.
E naturalmente, più avanti nella funzione si converte in formato doppio.

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);}

Già provato, restituisce un intero.

 
Konstantin Nikitin:

La vostra funzione restituisce un intero. Quello che hai ottenuto è quello che hai stampato.
E naturalmente, più avanti nella funzione si converte in formato doppio.

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);}

Ce l'ho!!! Grazie caro Konstantin!!!!!!!!!!!!!!!!!!

 
Rustam Bikbulatov:

Già provato. Viene fuori un numero intero.

Prova a usare ObjectGetDouble
E cambiate la dichiarazione della funzione in

double OpenlineB() {
 
Konstantin Nikitin:

Prova a usare ObjectGetDouble

Tutto fatto!

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);}

Grazie!!!

 
Rustam Bikbulatov:

Tutto fatto!

Grazie!!!

Posso troncarlo un po'?

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:

Si potrebbe troncare un po'.

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));
}

altrimenti i dati dell'indicatore sono richiamati dalla cache ad ogni accesso
E sarebbe meglio mantenere il livello della linea "BUY" nelle vostre variabili e non cercarlo sul grafico.

Motivazione: