[¡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 218

 
ViktorF:

Cuando el EA se está ejecutando, aparecen estos errores:

Hubo momentos en los que las órdenes no se cerraron o no se abrieron en determinados puntos.

¿En qué medida los fallos de cierre/apertura están relacionados con estos errores? ¿Cómo evitarlos (preferiblemente sin sustituir el terminal MT5)?

Ver aquí y aquí... y aquí...

¿Por qué no escribir el nombre del error en el cuadro de búsqueda y obtener la respuesta de inmediato?

 
Roman.:


Consiga que su corredor prohíba el comercio automatizado para usted mediante solicitudes frecuentes en el comercio real - sólo tendrá que operar por teléfono usted mismo.

Modifique las órdenes después de un cierto número de puntos (intervalo), por ejemplo 50 o 100 - eso es con un pentámetro (digamos, cuando el precio se mueve en su dirección - modifique la orden), y todo estará bien. :-))) En mi opinión, por supuesto.

Um...


Lo apruebo totalmente...
 

¡Buenas tardes! Cita del libro de texto:

Una o más constantes pueden ser omitidas en la secuencia de inicialización. En este caso, los elementos correspondientes del array de tipo numérico se inicializan con cero, y los elementos del array de tipo cadena se inicializan con el valor de la cadena "" (apertura y cierre de comillas dobles sin espacio), es decir, cadena vacía (no confundir con espacio).

Pregunta 1: ¿Qué ocurre con los elementos de tipo bool cuando se omite un espacio?

La idea es la siguiente: creamos una matriz unidimensional de banderas de parámetros de apertura comercial, por lo tanto

bool Open[20] {par1,par2,par3....,par20}

si (MA1>MA2) par1=true;

si (MA7>MA8) par2=true; ...

si (ma33>ma55) par20=true;

Quién ha encontrado este tipo de soluciones - aconsejar:

2- ¿es la dirección correcta?

3- cómo escribir más variantes de parámetros como if (Open [12] {1,0,0,1,1...,0 } ) OrderSend() etc. - ¿verdad?

 
ilmur:

ayuda por favor... mi Asesor Experto comprueba las órdenes abiertas ...una orden puede estar abierta a la vez ...pero cuando introduzco un stop en una línea recta en el momento de abrir una orden da error 130...por ejemplo era así

if(down>0)

{

ticket=OrderSend(Symbol(),OP_SELL,dLot,Bid,3,0,Bid-TakeProfit*Point,0,16384,0,Red);

Introduzco un tope de tamaño 100

ticket=OrderSend(Symbol(),OP_SELL,dLot,Bid,3,100,Bid-TakeProfit*Point,0,16384,0,Red); ...da error 130 en el probador

alpari...tal vez deba modificar la orden después de la apertura y colocar el stop...aconsejarme como hacerlo o indicarme el asesor donde se hace...por favor


Alpari no abre operaciones con stoplosses y tomas de posesión
 
100yan:

La idea es la siguiente: crear una matriz unidimensional de banderas de parámetros de apertura comercial, por lo tanto

bool Open[20] {par1,par2,par3....,par20}

si (MA1>MA2) par1=true;

si (MA7>MA8) par2=true; ...

si (ma33>ma55) par20=true;

Quién ha encontrado este tipo de soluciones - aconsejar:

2 ¿es la dirección correcta?

3- cómo escribir más variantes de parámetros como if (Open [12] {1,0,0,1,1...,0 } ) OrderSend() etc. - ¿verdad?

¿en qué dirección y qué quiere decir derecho?

y como puedo decirte como hacerlo bien si no entiendo el problema

 
int OrderStatus() {
   int z1=0, z2=0;  // порядок для массива
   int i, k=OrdersTotal();
      for (i=1; i<=k; i++) {
         if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
            if (OrderType()==OP_BUYSTOP && OrderSymbol()==Symbol() && OrderMagicNumber()==MG) {
            TicketBS[z1]=OrderTicket(); // присваем массиву под 1 ячейкой первый найденный ордер тикет
            z1++;
            }
            if (OrderType()==OP_SELLSTOP && OrderSymbol()==Symbol() && OrderMagicNumber()==MG) {
            TicketSS[z2]=OrderTicket();
            z2++;
            }
         }
      }
}
¿Quién puede ayudar, por qué TicketBS[] y TicketSS[] no asignan valores a la matriz TicketBS[]?? escribe siempre 0...
 
eddy:

¿qué dirección y qué es lo correcto?

¿Y cómo puedo decirte cómo escribir algo correctamente si no entiendes la tarea en sí?

1. ¿Es correcta la dirección del pensamiento?

2. ¿Cómo comparar las variantes de los parámetros con una matriz determinada? Es decir, crear un array con los parámetros correctos. Por ejemplo, en lugar de escribir if((MA1>MA2)&&(MA7>MA8)&& ....) deberíamos utilizar una variante de matriz para abrir una orden de tipo12 Open [12] {1,1,1,0,1...,0 } donde el conjunto de parámetros es respectivamente una condición para abrir una orden de tipo12.

 

тип12 Open [12] {1,1,1,0,1...,0 }

¿Qué es esto? Los elementos de los arrays personalizados son variables, pero tienes un cuerpo aquí por alguna razón (llaves).

 
eddy:

¿Qué es esto? Los elementos de un array personalizado son variables, y tienes un cuerpo aquí por alguna razón (llaves).


Inicialización de un array


Un array sólo puede ser inicializado con constantes del tipo apropiado. Las matrices unidimensionales y multidimensionales se inicializan con una secuencia de constantes separadas por comas. La secuencia está encerrada entre llaves:
bool Mas_b[5] = { false, true, false, true, true }

 
¿Quieres recordar los parámetros para abrir una orden? Para ello, tendrías que tener varias variables bool para cada parámetro para comprobar si el mercado coincide con ellos