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

 

Aquí: https://docs.mql4.com/ru/dateandtime/DayOfWeek

He visto esto, devuelve el día de la semana, pero necesito saber qué día de la semana es el último día de la próxima semana. Porque hay días en los que el último día de la semana no es el viernes

 
¿Puede decirme si puede cambiar la plantilla del gráfico que se abre después de la prueba? Para hacer visibles las marcas del trato, pero cuando aplico mi propia plantilla, todas las marcas están ahí...
 
alexhammer:


Sus códigos no funcionan.... :( Sólo necesito abrir una orden al mismo tiempo que se activa el stop..... No hay indicadores... simplemente cerrando el lote.... no creía que fuera una tarea tan difícil.

¡¡¡AYUDA!!! ¡Es urgente! :(

 
ScioMe:
¿Puede modificar el patrón gráfico que se abrirá después de la prueba? Estoy usando mi propia plantilla y todas las marcas están ahí...

Inicie el comprobador con la opción "Visualización" marcada.

Cuando el comprobador cargue el historial y comience a trabajar, pulse el botón de pausa y fije su patrón en el gráfico,

pulse el botón de pausa para continuar con el probador. Si lo desea, puede saltarse la visualización (botón Saltar a).

Cuando el probador termine, verás todas las flechas del gráfico con tu patrón.

 
PariaH:


Sus códigos no encajan.... :( Sólo necesito abrir una orden al mismo tiempo que se activa el stop..... No hay indicadores... simplemente cerrando el lote.... no creía que fuera una tarea tan difícil.

¡¡¡POR FAVOR, ayuda!!! ¡¡¡Es urgente!!! :(

Creo que esto se puede solucionar llevando la cuenta del número de lotes colgados. La función CalculateOrders() en el Asesor Experto de Media Móvil incorporado.

Has hecho un pedido->calcular el número de pedidos activos->recordarlo en una variable->.

comprobar en cada iteración en la función Inicio-> si el número de pedidos ha disminuido-> si ha disminuido, reaccionar como sea necesario.

 
PariaH:


Sus códigos no encajan.... :( Sólo hay que abrir una orden al mismo tiempo que se activa el stop..... No hay indicadores... simplemente cerrando el lote.... no creía que fuera una tarea tan difícil.

¡¡¡AYUDA!!! ¡Es urgente! :(

La función F devuelve la bandera para cerrar la última posición en la parada:

//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 19.05.2008                                                     |
//|  Описание : Возвращает флаг закрытия последней позиции по стопу.           |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   (""   - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - операция                   (-1   - любая позиция)                  |
//|    mn - MagicNumber                (-1   - любой магик)                    |
//+----------------------------------------------------------------------------+
bool isCloseLastPosByStop(string sy="", int op=-1, int mn=-1) {
  datetime t;
  double   ocp, osl;
  int      dg, i, j=-1, k=OrdersHistoryTotal();

  if (sy=="0") sy=Symbol();
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
      if (OrderSymbol()==sy || sy=="") {
        if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
          if (op<0 || OrderType()==op) {
            if (mn<0 || OrderMagicNumber()==mn) {
              if (t<OrderCloseTime()) {
                t=OrderCloseTime();
                j=i;
              }
            }
          }
        }
      }
    }
  }
  if (OrderSelect(j, SELECT_BY_POS, MODE_HISTORY)) {
    dg=MarketInfo(sy, MODE_DIGITS);
    if (dg==0) if (StringFind(OrderSymbol(), "JPY")<0) dg=4; else dg=2;
    ocp=NormalizeDouble(OrderClosePrice(), dg);
    osl=NormalizeDouble(OrderStopLoss(), dg);
    if (ocp==osl) return(True);
  }
  return(False);
}

... en la toma:

//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 19.05.2008                                                     |
//|  Описание : Возвращает флаг закрытия последней позиции по тейку.           |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   (""   - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - операция                   (-1   - любая позиция)                  |
//|    mn - MagicNumber                (-1   - любой магик)                    |
//+----------------------------------------------------------------------------+
bool isCloseLastPosByTake(string sy="", int op=-1, int mn=-1) {
  datetime t;
  double   ocp, otp;
  int      dg, i, j=-1, k=OrdersHistoryTotal();

  if (sy=="0") sy=Symbol();
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
      if (OrderSymbol()==sy || sy=="") {
        if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
          if (op<0 || OrderType()==op) {
            if (mn<0 || OrderMagicNumber()==mn) {
              if (t<OrderCloseTime()) {
                t=OrderCloseTime();
                j=i;
              }
            }
          }
        }
      }
    }
  }
  if (OrderSelect(j, SELECT_BY_POS, MODE_HISTORY)) {
    dg=MarketInfo(sy, MODE_DIGITS);
    if (dg==0) if (StringFind(OrderSymbol(), "JPY")<0) dg=4; else dg=2;
    ocp=NormalizeDouble(OrderClosePrice(), dg);
    otp=NormalizeDouble(OrderTakeProfit(), dg);
    if (ocp==otp) return(True);
  }
  return(False);
}

Búsquelo usted mismo aquí. Entonces puedes escribir tu propio...

 

Hola.

Estoy trabajando en un Asesor Experto, no puedo entender cómo se debe ejecutar la siguiente línea:

si (profitbuy<=0)mtpb=tpb;

La condición es clara, no está claro a qué resultado la variable mtpb toma el valor de la variable tpb.

 
paibolit:

Hola.

Estoy trabajando en un Asesor Experto, no puedo entender cómo se debe ejecutar la siguiente línea:

si (profitbuy<=0)mtpb=tpb;

La condición es clara, no está claro a qué resultado la variable mtpb toma el valor de la variable tpb.

Si el beneficio de las posiciones de la bahía no es superior a cero, entonces mtpb=tpb.
 
ZZZEROXXX:

Aquí: https://docs.mql4.com/ru/dateandtime/DayOfWeek

He visto esto, devuelve el día de la semana, pero necesito saber qué día de la semana es el último día de la próxima semana. Porque hay días en los que el último día de la semana no es el viernes.

El fin no justifica los medios.

Para aclararlo, he aquí una pregunta: tú mismo, cuando quieres determinar "qué día de la semana será el último de la próxima semana", ¿qué haces? Correcto, busque el calendario del año en curso, vea qué días festivos caen en su país específicamente, y averigüe si el fin de semana fue transferido de un día a otro (por ejemplo, del domingo al jueves, para lo cual cada año el parlamento, es decir, la Duma del Estado, adopta un documento separado), etc. ¿Crees que alguien se tomaría la molestia de crear un programa en MQL para este fin? Personalmente, me resulta más fácil mirar el calendario...

 

¡Buenas noches! Lo siento, quiero entender el principio, que, tal construcción no es posible?

int u; u=0-10; for( u;u<30;u++) {Alert("u",u); } Escribe el error ';' - la asignación espera C:Òãîðóì MF Trader 4\documents\experts\cycle.mq4 (33, 31)
¡Aparece un punto y coma entre u; u Lo comprobé una vez con ayuda, por favor, explíquelo!