[¡Archivo!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no lo dejéis pasar. No podría ir a ningún sitio sin ti - 2. - página 283

 
artmedia70:
Cuando se emiten los valores del buffer en la pantalla, ¿qué se hace? De todos modos, está emitiendo datos numéricos. Si quiere dar salida a una cadena vacía, o "Empty Value" o "EMPTY_VALUE", déles salida como variables de cadena.
Es decir:
val. de cadena ;
if(buffer value==EMPTY_VALUE) {val="EMPTY_VALUE";}
Pero si(valor delbuffer!=EMPTY_VALUE) {val=DoubleToString(valor del buffer, 8);}
y mostrar el valor de la variable val en lugar del valor del buffer.
S[16]="SBUY="+ DoubleToStr(adxbuy,Digits)+", SSELL="+ DoubleToStr(adxsell,Digits)+", buydiv="+ DoubleToStr(lastbuydiv,Digits)+", selldiv="+ DoubleToStr(lastselldiv,Digits);
      
Así es como los emito
 

Esta cola es responsable de la salida de estos datos:

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

Primero así:

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

y luego reemplazar la cola:

S[16]="SBUY="+ DoubleToStr(adxbuy,Digits)+", SSELL="+ DoubleToStr(adxsell,Digits)+", buydiv="+ ValBuyDiv+", selldiv="+ ValSellDiv;
 
bliznec1986:
¿Alguien tiene un recolector de ticks que guarde el historial de ticks de la siguiente manera: hora de llegada del tick, asc, bid? el código base sólo tiene un recolector de ticks sin asc.
Hay tal. No lo publicaré. Utiliza la tecnología secreta contra el salto de garrapatas :-)) Incluso sin DDE.
 

A artmedia70 y granit77.

Ustedes, caballeros, serán severamente reprendidos. ¿No podrías habérmelo explicado? ))))

He tardado dos días en resolver un simple problema ....

Esto es lo que tengo:

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

Ahora funciona.

Gracias.

Ahora puedo ir a la isla con las chicas....))

 
Sergey_Rogozin:

A artmedia70 y granit77.

Ustedes, caballeros, serán severamente reprendidos. ¿No podrías habérmelo explicado? ))))

He tardado dos días en resolver un simple problema ....

Esto es lo que tengo:

Ahora funciona.

Gracias.

Ahora puedo ir a la isla con las chicas....))

¡Sólo que esta vez es para tres! :)))))))))
 
artmedia70:
¡Sólo que esta vez por tres! :)))))))))
Salida de Sheremetyevo mañana a las 09:10.
Una cabaña llena de chicas consentidas para ti.
Cerveza y sauna ya en el lugar, coñac y whisky en la cabina.
El avión y la tripulación son todos suyos hasta el domingo a medianoche.
Que tengas un buen descanso. )))
 
Sergey_Rogozin:
Salida de Sheremetyevo mañana a las 09:10.
Una cabaña llena de chicas consentidas para ti.
Cerveza y sauna ya en el lugar, coñac y whisky en la cabina.
El avión y la tripulación son todos suyos hasta el domingo a medianoche.
Que tengas un buen descanso. )))
¡О! ¡¡¡Esas no son las palabras de un niño, sino de un marido!!! Nos vamos... :))))))))))))))
 
Hola, por favor, ayuda para implementar stop-losses virtuales en puntos especificados. Para ser más precisos: en lugar de enviar los datos sobre un nuevo SL, el EA sólo debe almacenar en las variables (o en algún otro lugar), y el gasto, el gasto, el gasto, y cuando el precio alcanza un determinado nivel (precio) para enviar una señal a DC para cerrar la orden, (una especie de trailing stop virtual con un stop-loss virtual) ¿es real?
 
Sergey_Rogozin:
Salida de Sheremetyevo mañana a las 09:10.
Una cabaña llena de chicas consentidas para ti.
Cerveza y sauna ya en el lugar, coñac y whisky en la cabina.
El avión y la tripulación son todos suyos hasta el domingo a medianoche.
Que tengas un buen descanso. )))

¡Vives muy bien!

 

¡Buenas tardes a todos!

No consigo averiguar cómo cerrar los pedidos...

La orden se abre con éxito, pero no se cierra. El programa sólo abre una orden. Quien tenga un minuto y ganas, que mire el código por favor...

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

}
}
}
}

Gracias de antemano.

Razón de la queja: