[¡AVISO CERRADO!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen. No puedo ir a ningún sitio sin ti. - página 894

 
artmedia70:
¿Qué quieres decir? Es como si pudieras preguntar por la hora... o la salud... :))))))

Es sólo un recordatorio. Leo el libro, pero hay puntos que necesitan ser aclarados - así que los escribo. y a veces no hay respuesta.

Por favor, no te tomes esto de forma agresiva, lo digo de buena fe.

 
belck:

Es sólo un recordatorio. Leo el libro, pero hay puntos que necesitan ser aclarados, así que los escribo. y a veces no hay respuesta.


¿Pagas por las respuestas? ¿No? ¿O te ignoran? ¿O alguien te debe un favor?

SZS: A menudo miro en este hilo, cómo puedo ayudar, pero a condición de que la persona que hizo una pregunta, por lo menos él entiende lo que pidió, mientras que usted tiene su montaña de preguntas parece perezoso para leer - explicarlo a mí

 
¡Hola! No puedo entender qué pasa con ???? No modifica la orden de mercado
slb =NormalizeDouble(Bid - (StopLoss * Point),Digits); // calcula el stop para posiciones de compra//
tpb =NormalizeDouble(Ask + (TakeProfit* Point),Digits); // calcula el beneficio para posiciones de compra//
sls =NormalizeDouble(Ask + (StopLoss * Point),Digits) // cálculo del stop para posiciones de venta//
tps =NormalizeDouble(Bid - (TakeProfit* Point),Digits);

//================================================== ==================//
int total=OrdersTotal();
int n=0;
for (int i=total-1; i>=0; i--)
{
if(OrderSelect(i, SELECT_BY_POS))
{
if(OrderSymbol()==Symbol())
{
n++;
}}
if ( total == 1 )
{
for (int k=total-1; k>=0; k--)
{
if(OrderSelect(k, SELECT_BY_TICKET)
Alert("la orden es", k);
{
si ((OrderType()==OP_BUY)&&(OrderTakeProfit()==0)&&(O rderStopLoss()==0))
{
OrderModify(k,OrderOpenPrice(),slb,tpb,0,Blue);
Alert("error", GetLastError());

}}}}
return(0);}

CUÁL ES EL PROBLEMA POR FAVOR AYUDA ...........?????
 
IgorM:


¿Pagas por las respuestas? ¿No? ¿O te ignoran? ¿O le debes algo a alguien?

ZS: Yo suelo mirar en este hilo, lo que puedo, lo ayudo, pero siempre que la persona que ha hecho una pregunta, al menos entienda lo que ha preguntado, mientras que tú tienes tu montaña de preguntas parece que te da pereza leer -dime

Te dije que no te lo tomaras a mal. No estamos aquí para pelear. Tampoco me gusta que alguien se niegue a ayudar, es decir, que decida por mí dar un consejo o leer un libro. Como se suele decir: ¡instintivo!

Una vez más, chicos, por favor, no lo toméis de forma agresiva o mi petición sigue siendo una contradicción, si es así, entonces no lo escribiré más.

 
int total=OrdersTotal();
int n=0;
for (int i=total-1; i>=0; i--)
  {
    if(OrderSelect(i, SELECT_BY_POS))
      {
        if(OrderSymbol()==Symbol())
            n++;
      }
  }
if (total == 1)
  {
    for (int k=total-1; k>=0; k--)
      {
        if(OrderSelect(k, SELECT_BY_TICKET))
          {
            Alert("ордер есть ", k);
            if ((OrderType()==OP_BUY)&&(OrderTakeProfit()==0)&&(OrderStopLoss()==0))
              {
                OrderModify(k,OrderOpenPrice(),slb,tpb,0,Blue);
                Alert("ошибка ", GetLastError());
              }
          }
      }
  }
return(0);
Prueba este código.
 

¿Alguien conoce un script "trailing stop" activado por niveles, es decir, el precio llegó a 150 - parada 130, a continuación, llegó a 180 - parada 170 (por ejemplo) (niveles escritos por usted mismo).

Gracias de antemano.

 
VOLDEMAR:
¡Hola! No puedo entender cuál es el problema ???? No modifica la orden de mercado
slb =NormalizeDouble(Bid - (StopLoss * Point),Digits); // calcular el stop para posiciones de compra//
tpb =NormalizeDouble(Ask + (TakeProfit* Point),Digits); //calcular el beneficio para las posiciones de compra//
sls =NormalizeDouble(Ask + (StopLoss * Point),Digits); //calcular stop para posiciones de venta//
tps =NormalizeDouble(Oferta - (TakeProfit* Punto),Dígitos);

//================================================== ==================//
int total=Total de pedidos();
int n=0;
for (int i=total-1; i>=0; i--)
{
if(OrderSelect(i, SELECT_BY_POS))
{
if(OrderSymbol()==Symbol())
{
n++;
}}}
si ( total == 1 )
{
for (int k=total-1; k>=0; k--)
{
if(OrderSelect(k, SELECT_BY_TICKET))
Alert("el pedido existe", k);
{
if ((OrderType()==OP_BUY)&&(OrderTakeProfit()==0)&&(OderStopLoss()==0))
{
OrderModify(k,OrderOpenPrice(),slb,tpb,0,Blue);
Alert("error", GetLastError());

}}}}
return(0);}

CUÁL ES EL PROBLEMA AYUDA ...........?????

Está seleccionando una posición en el billete. Pero no compruebas DÓNDE está... El puesto puede estar en los ya cerrados:

bool OrderSelect( int index, int select, int pool=MODE_TRADES)

Esta función selecciona una orden para su posterior manipulación. Devuelve TRUE si la función se completa con éxito. Devuelve FALSE si la función falla. Para obtener información sobre un error, es necesario llamar a la función GetLastError().

El parámetro pool se ignora si la orden se selecciona por el número de ticket. El número de ticket es un identificador único para el pedido. Para determinar de qué lista se selecciona una orden, hay que analizar su hora de cierre. Si la hora de cierre de la orden es 0, entonces la orden está abierta o pendiente y se toma de la lista de posiciones abiertas del terminal. Una posición abierta puede distinguirse de una orden pendiente por su tipo. Si la hora de cierre no es igual a 0, entonces la orden está cerrada o pendiente y ha sido seleccionada del historial del terminal. La distinción entre una orden cerrada y una orden pendiente eliminada también puede hacerse por tipo de orden.
 
AlexAlex:

¿Alguien conoce un script "trailing stop" activado por niveles, es decir, el precio llegó a 150 - parada 130, a continuación, llegó a 180 - parada 170 (por ejemplo) (niveles escritos por usted mismo).

Gracias de antemano.

Busque en el sitio "trailing" o "trawl" - lo encontrará.
 
VOLDEMAR:
¡Hola! No puedo entender cuál es el problema ???? No modifica la orden de mercado

Pruébalo así:

slb = 25; // расчёт стопа для бай позиций//
tpb = 25; // расчёт профита для бай позиций//
sls = 25; // расчёт стопа для селл позиций//
tps = 25; 

//================================================== ==================//
int start {
ticket=OrderSend(Symbol(),OP_BUY,1,Ask,3,Bid-slb*Point,Ask+tpb*Point,"My order #"+counter,16384,0,Green);
     if(ticket<0)
       {
        Print("OrderSend failed with error #",GetLastError());
        return(0);
       }

}
 
AlexAlex:

¿Alguien conoce un script "trailing stop" activado por niveles, es decir, el precio llegó a 150 - parada 130, a continuación, llegó a 180 - parada 170 (por ejemplo) (niveles escritos por usted mismo).

Gracias de antemano.

https://www.mql5.com/ru/code/7108 .No.4