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

 

Hola, ayúdenme con esto. El robot de comercio, EA, Expert Advisor no están trabajando. He descargado todo lo posible y quería comprobar cómo funciona todo. Pensé que mi depósito era demasiado pequeño, pero mi cuenta demo es la misma. Pensé que tenía un pequeño depósito, pero lo mismo en una cuenta demo.

 
Lilia.solomko:

Hola, ayúdenme con esto. El robot de comercio, EA, Expert Advisor no están trabajando. He descargado todo lo posible y quería comprobar cómo funciona todo. Pensé que mi depósito era demasiado pequeño, pero mi cuenta demo es la misma. Pensé que mi depósito era pequeño, pero lo mismo en mi cuenta de demostración.

¿Cómo sabías que el robot no operaba? ¿Se ha asegurado de que se cumplen todas las condiciones exigidas por la estrategia de negociación para abrir la posición? ¿O acaba de colocar el robot y no ha abierto inmediatamente la operación?

 
Lilia.solomko:

Hola, ayúdenme con esto. El robot de comercio, EA, Expert Advisor no están trabajando. He descargado todo lo posible y quería comprobar cómo funciona todo. Pensé que mi depósito era demasiado pequeño, pero mi cuenta demo es la misma. Pensé que tenía un pequeño depósito, pero lo mismo en una cuenta de demostración.

No sé qué pone en las dos pestañas?


 
Por favor, ayúdenme a escribir una función : cerrar órdenes de un lote mayor a uno menor (string Symbol, int type, bool hand orders, int Magic)
Por ejemplo, la selección de símbolos, el tipo, si se tienen en cuenta las órdenes manuales, el número mágico.
 
Tigerfreerun:
Por favor, ayúdenme a escribir una función : cerrar órdenes de un lote mayor a uno menor (string Symbol, int type, bool hand orders, int Magic)
Por ejemplo, la selección de símbolos, el tipo, si se tienen en cuenta las órdenes manuales, el número mágico.

Sí, está listo para usar.

//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 11.12.2008                                                     |
//|  Описание : Закрытие позиций в порядке сортировки по размерам лотов.       |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента        (    ""       - любой символ,      |
//|                                             NULL      - текущий символ)    |
//|    op - операция                        (    -1       - любая позиция)     |
//|    mn - MagicNumber                     (    -1       - любой магик)       |
//|    sd - Направление сортировки лотов    (MODE_ASCEND  - возрастание,       |
//|                                          MODE_DESCEND - убывание)          |
//+----------------------------------------------------------------------------+
void ClosePosBySortLots(string sy="", int op=-1, int mn=-1, int sd=MODE_DESCEND) {
  double a[][2];                  // Массив лотов и тикетов
  int    i, k=OrdersTotal();      // Счётчик и количество ордеров
  int    p=0;                     // Количество позиций

  if (sy=="0") sy=Symbol();
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
      if ((OrderSymbol()==sy || sy=="") && (op<0 || OrderType()==op)) {
        if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
          if (mn<0 || OrderMagicNumber()==mn) {
            p++;
            ArrayResize(a, p);
            a[p-1][0]=OrderLots();
            a[p-1][1]=OrderTicket();
          }
        }
      }
    }
  }

  // вдруг позиций нету, тогда и закрывать нечего
  if (p>0) {
    ArraySort(a, WHOLE_ARRAY, 0, sd);
    for (i=0; i<p; i++) {
      if (OrderSelect(a[i][1], SELECT_BY_TICKET)) {
        // проверим незакрытость на всякий случай,
        // может какая-то позиция уже закрылась по стопу/тейку
        if (OrderCloseTime()==0) ClosePosBySelect();
      }
    }
  }
}
 
Alekseu Fedotov:

Sí, está listo para salir.

Intenté usarlo, pero por alguna razón no funciona.
¿En qué parte de esta función está el cierre propiamente dicho, por lo que veo hay una referencia a otra función?
 
Tigerfreerun:
Intenté usarlo, pero por alguna razón no funciona.
¿Dónde está el cierre propiamente dicho en esta función, por lo que veo hay una referencia a otra función?

Sí, hay una función ClosePosBySelect() en toda regla, no sólo el envío de una orden comercial sin comprobaciones de estado y resultado.

Buscar en el sitio le dará un enlace a la función ClosePosBySelect() de kim

 
Tigerfreerun:
Intenté usarlo, pero por alguna razón no funciona.
¿En qué parte de esta función está el cierre propiamente dicho, por lo que veo hay una referencia a otra función?

En la cabecera de esta función hay una dirección web, vaya a descargar todas las bibliotecas,

Funciona muy bien.

 

Dibujo barras horizontales. El indicador correctamente, de acuerdo con las coordenadas pone líneas, pero en algún momento, en una nueva barra se pone una línea en un, precio arbitrario, que consiste en muchos segmentos de diferentes longitudes, superpuestas entre sí. El precio de ajuste "ajeno" no se ajusta a ninguna condición. ¿De dónde vienen, cómo se pueden prevenir?

if(Line)
  {
   n_++;
   Setline(n_,Time[b_u_pbu],High[b_u_pbu],Time[b_u_pbu1],High[b_u_pbu],clrLime);
  }
//
void Setline(int sh,datetime tm,double pr,datetime tm1,double pr1,color clr)
  {
   ObjectCreate("-"+sh,OBJ_TREND,0,tm,pr,tm1,pr1,clr);
   ObjectSet("-"+sh,7,STYLE_SOLID);
   ObjectSet("-"+sh,10,false);
   ObjectSet("-"+sh,6,clr);
   ObjectSet("-"+sh,8,2);
  }
 
bij:

Dibujo barras horizontales. El indicador correctamente, de acuerdo con las coordenadas pone líneas, pero en algún momento, en una nueva barra se pone una línea en un, precio arbitrario, que consiste en muchos segmentos de diferentes longitudes, superpuestas entre sí. El precio de ajuste "ajeno" no se ajusta a ninguna condición. ¿De dónde vienen, cómo se pueden prevenir?

Los nombres de las líneas cambian y de ahí la multitud de líneas.

En estos casos, es mejor incluir la hora de apertura del bar en el nombre de la línea.