[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Non potrei andare da nessuna parte senza di te - 2. - pagina 283

 
artmedia70:
Quando si emettono i valori del buffer sullo schermo, cosa si fa? State comunque emettendo dati numerici. Se volete emettere una stringa vuota, o "Empty Value" o "EMPTY_VALUE", emetteteli come variabili stringa.
Cioè :
stringa val;
if(buffer value==EMPTY_VALUE) {val="EMPTY_VALUE";}
Ma se(buffer value!=EMPTY_VALUE) {val=DoubleToString(buffer value, 8);}
e visualizzare il valore della variabile val invece del valore del buffer.
S[16]="SBUY="+ DoubleToStr(adxbuy,Digits)+", SSELL="+ DoubleToStr(adxsell,Digits)+", buydiv="+ DoubleToStr(lastbuydiv,Digits)+", selldiv="+ DoubleToStr(lastselldiv,Digits);
      
Ecco come li faccio uscire
 

Questa coda è responsabile dell'uscita di questi dati:

", buydiv="+ DoubleToStr(lastbuydiv,Digits)+", selldiv="+ DoubleToStr(lastselldiv,Digits);

Prima così:

string ValBuyDiv, ValSellDiv;
if (lastbuydiv=EMPTY_VALUE) ValBuyDiv="Пустое значение";
else ValBuyDiv=DoubleToStr(lastbuydiv,Digits);
if (lastselldiv=EMPTY_VALUE) ValSellDiv="Пустое значение";
else ValSellDiv=DoubleToStr(lastselldiv,Digits);

e poi sostituire la coda:

S[16]="SBUY="+ DoubleToStr(adxbuy,Digits)+", SSELL="+ DoubleToStr(adxsell,Digits)+", buydiv="+ ValBuyDiv+", selldiv="+ ValSellDiv;
 
bliznec1986:
Qualcuno ha un raccoglitore di tick che salva la storia dei tick come segue: tempo di arrivo del tick, asc, bid? il codebase ha solo un raccoglitore di tick senza asc.
C'è questo. Non lo pubblicherò. Usato la tecnologia segreta contro il tick skipping :-)) Anche senza DDE.
 

A artmedia70 e granit77.

Voi signori dovete essere severamente rimproverati. Non potevi spiegarmelo? ))))

Mi ci sono voluti due giorni per risolvere un semplice problema ....

Questo è quello che ho ottenuto:

int SignalDiver(int tf)
 {
   for (int i=0; i<5; i++) {
      double UPdiver = iCustom(NULL,tf,"FX5_Divergence",2,i);
      double DNdiver = iCustom(NULL,tf,"FX5_Divergence",3,i);
      if (UPdiver!=EMPTY_VALUE)return(1);
      if (DNdiver!=EMPTY_VALUE)return(-1);
    }
  return(0);
 }

Ora funziona.

Grazie.

Ora posso andare sull'isola con le ragazze....)))

 
Sergey_Rogozin:

A artmedia70 e granit77.

Voi signori dovete essere severamente rimproverati. Non potevi spiegarmelo? ))))

Mi ci sono voluti due giorni per risolvere un semplice problema ....

Questo è quello che ho ottenuto:

Ora funziona.

Grazie.

Ora posso andare sull'isola con le ragazze....)))

Solo che questa volta è per tre! :)))))))))
 
artmedia70:
Solo questa volta per tre! :)))))))))
Partenza da Sheremetyevo domani alle 09:10.
Una cabina piena di ragazze consenzienti per te.
Birra e sauna già sul posto, cognac e whisky in cabina.
L'aereo e l'equipaggio sono tutti tuoi fino alla mezzanotte di domenica.
Buon riposo. )))
 
Sergey_Rogozin:
Partenza da Sheremetyevo domani alle 09:10.
Una cabina piena di ragazze consenzienti per te.
Birra e sauna già sul posto, cognac e whisky in cabina.
L'aereo e l'equipaggio sono tutti tuoi fino alla mezzanotte di domenica.
Buon riposo. )))
О! Queste non sono le parole di un bambino, ma di un marito!!! Andiamo... :))))))))))))))
 
Per essere più precisi: invece di inviare dati su un nuovo SL, l'EA dovrebbe semplicemente memorizzarlo nelle variabili (o da qualche altra parte), e sprecare, sprecare, sprecare, e quando il prezzo raggiunge un certo livello (prezzo) per inviare un segnale al DC per chiudere l'ordine, (una sorta di trailing stop virtuale con uno stop-loss virtuale) è reale?
 
Sergey_Rogozin:
Partenza da Sheremetyevo domani alle 09:10.
Una cabina piena di ragazze consenzienti per te.
Birra e sauna già sul posto, cognac e whisky in cabina.
L'aereo e l'equipaggio sono tutti tuoi fino alla mezzanotte di domenica.
Buon riposo. )))

Vivi in modo meraviglioso!

 

Buon pomeriggio a tutti!

Non riesco a capire come chiudere gli ordini...

L'ordine viene aperto con successo, ma non viene chiuso. Il programma apre solo un ordine. Chi ha un minuto e voglia, guardi il codice per favore...

int send_orders(bool signal, int position_limit, string file_name){


int ticket_count = OrdersTotal();


if (ticket_count < position_limit){

Print("send_orders ticket_count = ", ticket_count);

if (signal == true){

Print("send_orders, signal BUY");

   order_id = OrderSend(Symbol(),OP_BUY,1.0,Ask,3,0,0,"expert comment",255,0,Green);
   if(order_id < 0)
     {
      error=GetLastError();
      Print("send_orders, error = ",ErrorDescription(error));
      return;
     }
}if (signal == false){

Print("send_orders, signal SELL");

   order_id = OrderSend(Symbol(),OP_SELL,1.0,Bid,3,0,0,"expert comment",255,0,Red);
   if(order_id < 0)
     {
      error=GetLastError();
      Print("send_orders, error = ",ErrorDescription(error));
      return;
     }
     }

}if (ticket_count == position_limit){

OrderSelect(0,SELECT_BY_POS);

order_type = OrderType();

order_id = OrderTicket();

//----

Print("send_orders,  order already open");

if ((signal == false) && order_type == OP_BUY){

Print("send_orders,  is closing position");

if(OrderSelect(0, SELECT_BY_POS)==true){

OrderClose(OrderTicket(),1,Ask,3,Red);

}

}if ((signal == true ) && order_type == OP_SELL){

Print("send_orders,  is closing position");

if(OrderSelect(order_id, SELECT_BY_POS)==true){

OrderClose(OrderTicket(),1,Bid,3,Red);

}
}
}
}

Grazie in anticipo!