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

 
NEKSUS_ >> :

Buenas tardes señores, de nuevo por favor ayuda con el script de eliminación de objetos.

El script elimina varios objetos por su nombre, pero al lanzarlo sale un centenar de errores (más precisamente, el mismo, pero muchas veces) ayuda plz.


¿Supongo que este código está diseñado para borrar todos los objetos con números en sus nombres del gráfico? Bueno, entonces pon else antes de todos los ifs, excepto el primero. De lo contrario, su índice x ya cae en la zona negativa en la primera iteración.

 
NEKSUS_ >> :

Buenas tardes señores, de nuevo por favor ayuda con el script de eliminación de objetos.

El script mata algunos objetos por su nombre, pero al iniciarse aparece un buen centenar de errores (más precisamente, el mismo, pero muchas veces) ayuda ps.


sustituye este bucle for (int x = ObjectsTotal(); x>0 ; x--) (sólo corrige los errores, como más o igual y quita 1 del número de objetos) y elimina todos los "x--;" en los ifs

 
dmmikl86 >> :

ayúdame a colorear el indicador, quiero que sea verde si el valor sube, rojo si baja

aquí está el código:


aquí hay uno para ayudar

https://www.mql5.com/ru/articles/1451

Implementación de indicadores tricolores y algunas características para simplificar al máximo la escritura de indicadores

 
alsu >> :

Entiendo que este intrincado código está diseñado para eliminar de la tabla todos los objetos con un dígito en su nombre... Pues bien, entonces pon antes todos los if, excepto el primero, y else también. Porque en la primera iteración su índice x ya cae en la zona negativa.


No fallará, es muy difícil encontrar un objeto con un índice negativo, o más bien podría fallar, pero por un máximo de uno.
 

Estimados profesionales, por favor, ayúdenme. La idea es que el EA cree una orden y luego vuelva a crear la misma orden si esta falla. ¿Pero no es así?

//--------------------------------------------------------------- 0 ----------------

int start() // Función especial start

{

int H=100; // Establecer el tiempo - segundo

int Dist=10; // Establecer TP y SL

double Lot=1; //set lot

//--------------------------------------------------------------- 1 ----------------

doble i=0,001;

double Cena=NormalizeDouble(Ask,3); // normalizar el precio

double Price=NormalizeDouble(Cena+i,5); // Encuentra elprecio de

double TP=Precio+Dist*Punto; // Encontrar el TP

double SL=Distancia de precio*Punto; //Encontrar SL

int x=1; // Primera condición

int y=1; // Segunda condición

//--------------------------------------------------------------- 2 ----------------

for (int pos=1; pos<=OrdersTotal(); pos++) // recorre todos los pedidos

{ si (OrderSelect(pos-1,SELECT_BY_POS)==true) // destacar un pedido

{ si (OrderTakeProfit()==TP)

{ Alerta("activada x");

x=2;

romper;

}

}

else Print("Error ", GetLastError(), " cuando selecciona orden número ", pos);

}

//--------------------------------------------------------------- 3 ----------------

for (pos=1; pos<=OrdersTotal(); pos++) // recorre todos los pedidos

{ si (OrderSelect(pos-1,SELECT_BY_POS)==true) // marcar un pedido

{ si (OrderOpenPrice()==Price)

{ Alerta("desencadenado y");

y=2;

romper;

}

}

else Print("Error ", GetLastError(), " cuando selecciona orden número ", pos);

}

//--------------------------------------------------------------- 4 ----------------

si (x==2&y==2)

{ Alert("¡¡¡Este pedido ya existe!!!");}

else { Alerta(" se haenviado la orden",Símbolo()," BUYSTOP ", Precio," Pendiente...");

OrderSend(Symbol(), OP_BUYSTOP, Lot, Price, 0, SL, TP);

}

Sleep(H*60); //Esperar 60 segundos

RefreshRates();

//--------------------------------------------------------------- 5 -------------------

Alerta ("El script ha terminado de funcionar -----------------------------");

return; // Salir destart()

}

 

He instalado MT4 (de forex4you), estoy probando estrategias, pero las cotizaciones de M1 sólo las tengo desde el 2.09.2009, no puedo cargarlas a través del servicio-archivo de cotizaciones,

¿Pueden decirme dónde puedo descargar el archivo de cotizaciones al menos de 2009? Otra cosa, cuando pongo la fecha en el probador de estrategias las cotizaciones no se descargan automáticamente.

 
albon >> :

He instalado MT4 (de forex4you), estoy probando estrategias, pero las cotizaciones de M1 sólo las tengo desde el 2.09.2009, no puedo cargarlas a través del servicio-archivo de cotizaciones,

¿Pueden decirme dónde puedo descargar el archivo de cotizaciones al menos de 2009? Cuando establezco la fecha en el probador de estrategias, las cotizaciones no se descargan automáticamente.

Intenta instalar el MT4 de otro broker. (es decir, diferentes MT4).

 

Estimados profesionales, por favor, ayúdenme. La idea es que el EA cree una orden y vuelva a crear la misma orden si ésta falla. ¿Pero esto no ocurre?

Crea órdenes todo el tiempo, sin parar.


 
VII >> :

Estimados profesionales, por favor, ayúdenme. La idea es que el EA cree una orden y luego vuelva a crear la misma orden si esta falla. ¿Pero no es así?

//--------------------------------------------------------------- 0 ----------------


double Cena=NormalizeDouble(Ask,3); //Normalizar el precio

No podrá crear el mismo orden, porque Ask cambia constantemente en cada tic. Y todos los demás parámetros y sus comparaciones en condiciones se calculan a partir de esta variable.

 
VII >> :

Estimados profesionales, por favor, ayúdenme. La idea es que el EA cree una orden y luego vuelva a crear la misma orden si esta falla. ¿Pero esto no sucede?


Tenemos dos formas de que el EA/script abra exactamente la misma orden que hemos establecido. En primer lugar, establecemos la orden y escribimos todos sus parámetros en las variables que los almacenarán. Si no hay orden, pasaremos al modo de espera. En cuanto alcancemos una condición en la que se pueda establecer una orden con estos parámetros, abriremos una orden.

En segundo lugar. Una vez que la orden haya desaparecido del mercado, revise el historial y encuentre la orden más reciente. Registramos sus parámetros y activamos el modo de espera como hicimos en el primer caso.

Lo que quiero decir es esto. Si construyes la lógica del programa de la manera que has descrito y que he explicado aquí, todas las órdenes esperarán el mismo nivel horizontal. ¿Lo necesitas?