Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 374

 
 while (Count < FindPeak)
   {
// - 2 - ======================== Поиск одного экстремума ЗЗ ============================ 
    double ZZCur = 0;
    while(ZZCur == 0 && i < Bars)
      {
       if(iCustom(Symbol(), 0, "FastZZ", Depth, 0, i)!=0.0) ZZCur =iCustom(Symbol(), 0, "FastZZ", Depth, 0, i);
       else  if(iCustom(Symbol(), 0, "FastZZ", Depth, 1, i)!=0.0) ZZCur =iCustom(Symbol(), 0, "FastZZ", Depth, 1, i);
       i++;
      }
// - 2 - ============================ Окончание блока ===================================

// - 3 - ======================== Анализ найденного экстремума ========================== 
    if (ZZCur == 0)
      return(False);           // Если ни один из экстремумов не определен, то это ошибка
 
Novaja:

Aquí hay otra variante similar a la tuya... El título del bucle for dice i++, así que he eliminado las llaves de la parte inferior. He eliminado las llaves porque sólo hay un operador en el bucle (if else)

 while (Count < FindPeak)
 {
    double ZZCur;
    for(i=0,ZZCur=0; ZZCur==0 && i<Bars; i++)
       if      (iCustom(NULL, 0, "FastZZ", Depth, 0, i)!=0.0) ZZCur =iCustom(Symbol(), 0, "FastZZ", Depth, 0, i);
       else  if(iCustom(NULL, 0, "FastZZ", Depth, 1, i)!=0.0) ZZCur =iCustom(Symbol(), 0, "FastZZ", Depth, 1, i);

    if (ZZCur == 0) return(False);   // Если ни один из экстремумов не определен, то это ошибка
.......
}
 
STARIJ:

Aquí hay otra variante similar a la tuya... El encabezado del bucle for dice i++ así que los eliminé en la parte inferior. Se han eliminado las llaves porque sólo hay un operador en el bucle (if else)


Muchas gracias por la alternativa, todo en la hucha, hay que coger experiencia. Así que yo también tenía razón, sólo que los búhos no quieren abrir operaciones, seguiré buscando.

 

¡Hola! Hay una serie de precios de apertura de pedidos. Conociendo el índice de esta orden, ¿cómo puedo determinar su tipo?

if(index_elementa_masiva=OP_BUY)???
 
vikzip:

¡Hola! Hay una serie de precios de apertura de pedidos. Conociendo el índice de esta orden, ¿cómo podemos determinar su tipo?

Para este tipo de tareas, no es muy deseable tener una matriz de precios de apertura, ya que hipotéticamente podría haber más de una orden con el mismo precio de apertura.

Pero en general, deberíamos tomar el precio abierto conocido, hacer un bucle a través de todas las órdenes y seleccionar aquellas cuyo precio abierto es igual al de la matriz con el índice conocido.

Entonces, si hay más de un pedido de este tipo, tenemos que compararlos por otros criterios, por ejemplo por tiempo, para entender que es el pedido que necesita.

Y si sólo hay un pedido, entonces es el correcto, sin necesidad de seleccionar otros criterios.

 
Artyom Trishkin:

No es deseable tener una matriz de precios abiertos para esta tarea, ya que hipotéticamente podría haber más de una orden con el mismo precio abierto.

Pero en general, deberíamos tomar el precio abierto conocido, hacer un bucle por todas las órdenes y seleccionar aquellas cuyo precio abierto es igual al del array por el índice que conoces.

Entonces, si hay más de un orden, debemos compararlos por otros criterios, por ejemplo, por tiempo, para entender que es el orden correcto.

Y si sólo hay uno, entonces es el correcto, sin necesidad de seleccionar otros criterios.


Gracias.

 
¿Pueden decirme cómo escribir una condición que diga: si los tipos de pedido son iguales?
 bool TYP_A=OrderType;
 bool TYP_B=OrderType;
 if (TYP_A=TYP_B)????
double PriceBlizkoA;                          // Цена выбранного ордера
         bool TYP_A; 
   for(int i=1; i<=OrdersTotal(); i++)          // Цикл перебора ордер
     {
      if (OrderSelect(i-1,SELECT_BY_POS)==true) // Если есть следующий
        {                                       // Анализ ордеров:  
        if (OrderOpenPrice=PriceBlizkoA);                                     //если цена ордера равна цене заданого   и вот здесь ошибка. Догадываюсь неверно записано условие. Подскажите, что исправить?
         TYP_A=OrderType;   
 
vikzip:
¿Podríais decirme cómo escribir una condición del tipo: si los tipos de pedido son iguales?
Lee qué es un operador de comparación y qué es un operador de asignación y cómo se escriben.
 
vikzip:
¿Podría decirme cómo escribir la condición que suena así: si los tipos de orden son los mismos?

Esto equivale a lo mismo:

bool TYP_A=OrderType;
bool TYP_B=OrderType;

bool TYP_A=0; // Buy
bool TYP_B=1; // Sell

Como resultado, obtenemos

if(TYP_A) // false
if(TYP_B) // true
Lee lo que aconseja Artiom.
 

¡Buenos días a todos!

Por favor, dame una orden para que el robot no abra más de 1 orden por 1 vela.

Incluso si tomó su toma en esta vela - no para abrir la siguiente orden en la misma vela.

Ahora resulta que si se cumplen las condiciones de los indicadores - abrir una operación.

Cuando se cierra una operación en la toma, inmediatamente se abre una nueva operación en la misma vela, y aquí ya me resulta innecesario y crea problemas.

Creo que es importante dar algunos comentarios.

Necesita un trato estrictamente de 1 vela - 1 trato.

Muchas gracias de antemano.