[¡AVISO CERRADO!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen. No puedo ir a ningún sitio sin ti. - página 212

 

MA_1_t=iCustom(Symbol(),0,"AMA_optimized",1,1); // ??_1
MA_2_t=iCustom(Symbol(),0,"AMA_optimized",2,1); // ??_2
MA_3_t=iCustom(Symbol(),0,"AMA_optimized",1,2); // ??_2
MA_4_t=iCustom(Symbol(),0,"AMA_optimized",2,2); // ??_4
//---------------------------------------------------------------- 5.1 ???? ?????
static datetime New_Time;
bool New_Bar;
bool wayUP, wayDOWN;

if(New_Time!=Time[0])
{
New_Time=Time[0];
New_Bar=true;
} else { New_Bar=false;
}
//---------------------------------------------------------------- 5.1

if (MA_1_t!=0 && wayDOWN==true) // && MA_3_t==0
{
if (New_Bar==true)
{
Opn_B=true;
New_Bar=false;
}
//Cls_S=true;
}

if (MA_2_t!=0 && wayUP==true) // && MA_4_t==0
{
if (New_Bar==true)
{
Opn_S=true;
New_Bar=false;
}
//Cls_B=true;
}

if (New_Bar==true) {
if (MA_3_t!=0 && MA_4_t==0) {wayUP=true;}
if (MA_4_t!=0 && MA_3_t==0) {wayDOWN=true;}
}

//--------------------------------------------------------------- 6 --

GENTE, tenemos que recordar de alguna manera hasta 2 barras cual era la dirección y luego compararla, si la dirección no es la misma que en 1 barra, entonces abrir en 0 barra...

O no ayudarán.

Может я не правельные вопросы задаю, черт побери?! мысли в члух

 
Hola a todos. Hice un marco de tiempo M10 no estándar en MT4, pero no funciona en tiempo real por alguna razón. Es decir, muestra el historial correctamente para el marco temporal requerido de M10, pero sólo hasta el momento en que lo creé. ¿Cuál es el problema? No sé si debería ser así o he hecho algo mal. ¡Lo he hecho para no tener la oportunidad de operar en tiempo real por tiempo no estándar, tengo que mirar el historial solamente(!
 
Copie el archivo Period_Converter_Opt.mq4 en la carpeta experts\indicators de su terminal. Si el terminal ha sido abierto, recárguelo.

Paso 2.1. Añada el indicador Period_Converter_Opt al gráfico del que desea obtener un marco temporal no estándar. Se abrirá una ventana. Marque la casilla "Permitir la importación de DLL" en la pestaña "General".

Paso 2.2. En la pestaña "Parámetros de entrada" se pueden ajustar varias variables. La variable PeriodMultiplier es el multiplicador del gráfico original. Por ejemplo, si desea obtener el gráfico H1 como el gráfico H6, debe establecer el valor de 6.

La variable UpdateInterval es responsable de la frecuencia de las actualizaciones del gráfico. La configuración por defecto es cero: el gráfico se actualiza en tiempo real. Si quieres reducir la carga de los recursos de tu ordenador, aumenta este valor.


El paso entre los marcos temporales regulares de MetaTrade es bastante grande: gráficos horarios, de cuatro horas y diarios. Por lo tanto, los gráficos M10, H2, H3, H6, H8, H12 pueden ser útiles.
El resto es como siempre: abrir un gráfico sin conexión, buscar el TF creado y ejecutarlo.
Archivos adjuntos:
 

En algún lugar, hace algún tiempo me encontré con un operador o función que le decía al EA que trabajara SOLO con las órdenes del instrumento en el que se encontraba, ignorando las órdenes de otros pares. He intentado encontrarlo ahora y no he podido. ¿Tal vez alguien pueda darme una pista rápida?

 
vendim писал(а) >>

En algún lugar he visto un operador o una función que le dice al EA que trabaje SOLO con las órdenes del instrumento en el que se encuentra, ignorando las órdenes de otros pares. He intentado encontrarlo ahora y no he podido. ¿Puede alguien darme una pista rápida?

El parámetro mágico se encarga de ello al abrir una orden.

Magia negativa".

 
DDFedor писал(а) >>

El parámetro mágico al abrir una orden es el responsable de esto. al analizar las órdenes, considere su singularidad.

Me refiero a las características estándar de la lengua. Tal vez me equivoque, o tal vez esté escrito en algún lugar por separado y no me haya dado cuenta. Todo el código contiene un montón de comprobaciones del tipo

&& (OrderSymbol() == Symbol())

En el código del Asesor Experto la línea requerida (incluso con un comentario) estaba al principio y el autor no se molestó con las órdenes de otros pares de divisas después de eso. Tal vez, los pedidos fueron tomados de la biblioteca ...

En definitiva, el operador/función estándar en MQL4, ¿existe?

 

de nuevo, que alguien me ayude con el borrado de objetos

#property copyright ""
#property link      ""

#include <WinUser32.mqh>

int start() {
   for (int li_0 = 0; li_0 < ObjectsTotal(); li_0++) {
      if (StringFind(ObjectName( li_0), "стрелка") == 0) {
         ObjectDelete(ObjectName( li_0));
         li_0--;
      }
   }
   int li_4 = WindowHandle(Symbol(), Period());
   if ( li_4 != 0) PostMessageA( li_4, WM_COMMAND, 33324, 0);
   return (0);
}

como puedo hacer que este script borre objetos no por nombre sino por estilo, por ejemplo





(OBJPROP_ARROWCODE,158)

ayúdame, por favor

 
NEKSUS_ >> :

de nuevo, que alguien me ayude con el borrado de objetos


como puedo hacer que este script borre los objetos no por nombre sino por estilo, por ejemplo





ayúdame a salir de aquí


Personalmente, yo haría lo siguiente:

for (int li_0 = 0; li_0 < ObjectsTotal(); li_0++) {
if (ObjectGet(ObjectName(li_0),OBJPROP_ARROWCODE)==158) {
ObjectDelete(ObjectName(li_0))
}
}

El bucle con el decremento solamente, de lo contrario no podrá averiguar el orden de los objetos si los borra uno por uno.

 
splxgf >> :

Personalmente, yo haría lo siguiente:

for (int li_0 = 0; li_0 < ObjectsTotal(); li_0++) {
if (ObjectGet(ObjectName(li_0),OBJPROP_ARROWCODE)==158) {
ObjectDelete(ObjectName(li_0))
}
}

Un bucle con decremento solamente - de lo contrario no podrá averiguar el orden de los objetos si los borra uno por uno.

Bueno, no sé nada de mql, y el script funciona, pero hay que ejecutarlo 7 veces y sigue dejando algunos objetos en el gráfico

 
NEKSUS_ >> :

No sé nada de mql, pero el script funciona, pero hay que ejecutarlo 7 veces y algunos objetos se quedan en el gráfico igualmente

Puede que sí:

for(int k=0; k<ObjectsTotal(); k++)
{
   if (ObjectGet(ObjectName( k), OBJPROP_ARROWCODE)==158) 
   {
      ObjectDelete(ObjectName( k));
      k--;
   }
}

Esto es la eliminación de las flechas. Si está interesado en otros objetos - lea la ayuda de la función ObjectGet()