Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 6. - página 699

 

El EA utilizó una cuenta atrás con un registro de tiempo sobre el evento que tenía lugar:

if (line1 < 0 && time ==0){time=Time[0];}//сработало предварительное условие входа, записываем время
if (time > 0)shift=iBarShift(Symbol(),Period(),time);//находим индекс бара

y si la condición no se activó

if (line1 == 0){time=0;}

el índice aumentaba con cada barra.

En el indicador es necesario poner una flecha después de un determinado índice una vez.

He intentado hacer lo mismo en el indicador pero no funciona nada:

int tikket;// расположено на глобальном уровне
datetime time;// расположено на глобальном уровне

///////////////////////////////////

for(i=limit1;i>=0;i--)
     {
      if(ExtMapBuffer2[i]<0 && time == 0){time=Time[i];}
      if(time > 0)shift=iBarShift(Symbol(),Period(),time);//находим индекс бара
      if(ExtMapBuffer2[i]==0){time=0;tikket=0;}
      if(ExtMapBuffer2[i]<0 && shift>=shet && tikket==0){tikket=1;if(tikket>0)ExtMapBuffer3[i]=High[i]+150*Point;}
     }


En la primera barra donde " ExtMapBuffer2[i]<0 " se pone la flecha, y no se considera "shift>=shet".

Lógicamente, deberíamos hacer algo con esta línea " if(time > 0)shift=iBarShift(Symbol(),Period(),time);".

¿Qué te parece?

 

Queridos programadores, necesito vuestra ayuda.

Intenté compilar CloseAllOrders EA, pero me aparece la siguiente entrada:

------------------------------------------

CloseAllOrders_v5.mq4'
'WinUser32.mqh'
función debe devolver un valor CloseAllOrders_v5.mq4 30 22
la función debe devolver un valor CloseAllOrders_v5.mq4 79 41
0 error(es), 2 advertencia(s)

--------------------------------------------------

¿Qué debo hacer para que mi EA funcione?

Se adjunta el EA.

Gracias de antemano por su ayuda.

Saludos,

Archivos adjuntos:
 
Geowind64:

Queridos programadores, necesito vuestra ayuda.

Intenté compilar el EA CloseAllOrders, pero me aparece la siguiente entrada:

------------------------------------------

'CloseAllOrders_v5.mq4'.
WinUser32.mqh'
La función debe devolver un valor CloseAllOrders_v5.mq4 30 22
la función debe devolver un valor CloseAllOrders_v5.mq4 79 41
0 error(es), 2 advertencia(s)

--------------------------------------------------

¿Qué debo hacer para que mi EA funcione?

Asesor experto adjunto.

Gracias de antemano por su ayuda.

Saludos,


La función debe devolver el valor

if (ret==IDCANCEL)return(0);

и

if (ret1==IDCANCEL)return(0);

Algo así.

 

Una pregunta para usted:

El Asesor Experto tiene un ajuste que determina en qué vela entrar. El EA abre una operación en la señal del indicador, en la tercera vela después de la señal. En la segunda vela después de la señal, hay una señal en la dirección opuesta. ¿Cómo escribo la condición para que no entremos cuando haya una señal hacia el lado contrario?

extern int sdvig=3;//На какой свече заходим

 double pokupaem=iCustom(Symbol(),Per,"super-signals-channel",4,500,3,sdvig);

 double prodaem=iCustom(Symbol(),Per,"super-signals-channel",4,500,2,sdvig);

 if(OrdersTotal()==0)

 {

  double lot=(AccountBalance()/ MinLot)*0.01;

  if(center>Ask && pokupaem>0 && prodaem<1 && prodaem1<1 &&SelBuyDaily==Vhodim1)

  {

   x=OrderSend(Symbol(),OP_BUY,lot,Ask,3,0,0,Komment,Magic,0,Blue);

  }

  if(center<Bid && prodaem>0 && pokupaem<1 && pokupaem1<1 && SelBuyDaily==Vhodim2)

  {

   y=OrderSend(Symbol(),OP_SELL,lot,Bid,3,0,0,Komment,Magic,0,Red);

  }

 }

 

Resuelve el problema utilizando variables adicionales. Prescribimos indicadores con la señal en la vela actual. Cuando aparece la primera señal asignamos un dígito a la variable, cuando aparece la señal contraria asignamos otro dígito.

 ////////////////////////////////////////////////////////////////////////////////////////

 //                       Проверка на наличие обратного сигнала                       //

 //////////////////////////////////////////////////////////////////////////////////////

  double pokup=iCustom(Symbol(),Period(),"super-signals-channel",4,500,3,0);

  double prod=iCustom(Symbol(),Period(),"super-signals-channel",4,500,2,0);

 if(pokup>0){

  proverka=1;

  }

 if(prod>0){

  proverka=2;

  }

/////////////////////////////////////////////////////////////////////////////////////////////////////

//                  Блок открытия зделок при отключённых стоп-лосс и тейк-профит                  //

///////////////////////////////////////////////////////////////////////////////////////////////////

 if(OrdersTotal()==0)

 {

  double lot=(AccountBalance()/ MinLot)*0.01;

  if(center>Ask && pokupaem>0 && prodaem<1 && prodaem1<1 && SelBuyDaily==Vhodim1 && proverka==1)

  {

   x=OrderSend(Symbol(),OP_BUY,lot,Ask,3,0,0,Komment,Magic,0,Blue);

  }

  if(center<Bid && prodaem>0 && pokupaem<1 && pokupaem1<1 && SelBuyDaily==Vhodim2 && proverka==2)

  {

   y=OrderSend(Symbol(),OP_SELL,lot,Bid,3,0,0,Komment,Magic,0,Red);

  }

 }

 

Hola, ¿por qué se abre el EA... ...o incluso abre órdenes por encima del precio? Estoy probando el EA en el probador de estrategias en Metatrader.

Yo abro los pedidos así:

   RefreshRates();
   switch(send)
      {
      case 1: ticked = OrderSend(Symbol(), OP_BUY, lot, Ask, 4, NormalizeDouble(Bid-SL*Point, Digits), NormalizeDouble(Ask+TP*Point, Digits), "Buy_", magik, 0, clrBlue); break;
      case 2: ticked = OrderSend(Symbol(), OP_SELL, lot, Bid, 4, NormalizeDouble(Ask+SL*Point, Digits), NormalizeDouble(Bid-TP*Point, Digits), "Sell_", magik, 0, clrRed); break;
      default : ticked = 0;
      }



 
nr72:

Hola, ¿por qué se abre el EA... ...o incluso abre órdenes por encima del precio? Estoy probando el EA en el probador de estrategias en Metatrader.

Yo abro los pedidos así:



La compra se abre también en Ask. Pulse F8 en el gráfico de visualización, marque la casilla "Mostrar la línea Ask" en la pestaña "General". Todas las preguntas desaparecerán por sí solas.
 
artmedia70:
La compra se abre en Ask same. Pulse F8 en el gráfico de visualización, marque la casilla "Mostrar la línea Ask" en la pestaña "General". Todas las preguntas desaparecerán por sí solas.


Gracias. Ya lo tengo...
 
alexey1979621:
Hola a todos, no consigo acoplar un pavo búho, ayuda de los entendidos.
La línea del euro (verde) cruza la línea de la libra (marrón claro) desde arriba hacia abajo y abre una orden de venta para la libra euro. Si la libra cruza la línea del euro desde abajo hacia arriba, compramos la libra euro.
Mi registro dice que no ve el indicador.
Adjunto el asesor y el indicador.

Gracias de antemano.


No aconsejo descompilar. Sólo hay un pequeño camino hasta el baño.
 

1.¿Pueden decirme si es posible colapsar programáticamente la barra de operaciones rápidas, que se encuentra en la esquina superior izquierda del gráfico?

2. ¿Es posible desactivar mediante programación la negociación rápida?