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

 
klopp:
¡Señores programadores! Por favor, ayúdenme a escribir un Asesor Experto basado en el indicador i-Regr.
El principio es idioticamente simple...
Cuando el valor de la línea superior del indicador (valor2) está por encima de 1,43 se realiza una operación de venta, cuando el valor de la línea inferior del indicador (valor3) está por debajo de 1,40, se cierra la venta y se realiza una operación de compra
, que se cierra cuando el valor2 está por encima de 1,43. Los valores 1.40 y 1.43 los elegí de forma aproximada, ya que
necesita ajustarse en función del plazo, por lo que es deseable que se puedan cambiar en las propiedades del EA, pero no en el programa, ya que no soy muy chapucero en programación.

Gracias de antemano a quien responda.
formayl@mail.ru

Después de leer su intercambio, decidí llamarme idiota. Dado que esta es una rama de ayudar a los que tratan de programar a sí mismos, entonces mi precio es de 100 USD y tres horas después del pago en WebMoney tienes un EA, que funcionará de verdad (no un juguete para la demo). Ponte en contacto conmigo en el área personal.

ZS. Se olvidó por completo - el regateo es apropiado y se fomenta (al alza, por supuesto)

 

El indicador se adjunta al mismo gráfico que el EA, tomo los datos del indicador, que luego se procesan en el EA. La cuestión es que necesito obtener datos del indicador no sólo en el par cuyo gráfico está abierto, sino también en otros 4 o 5 pares.
¿Cómo ponerlo en práctica? ¿Cómo se puede probar en el probador de estrategias?

 
nuan:

El indicador se adjunta al mismo gráfico que el EA, tomo los datos del indicador y luego se procesan en el EA. La cuestión es que necesito obtener los datos del indicador no sólo para el par de divisas cuyo gráfico está abierto, sino también para 4-5 pares.
¿Cómo ponerlo en práctica? ¿Cómo se puede probar en el probador de estrategias?

aquí https://docs.mql4.com/ru/indicators/iCustom

especificar el par requerido y el marco temporal requerido como parámetros string symbol, int timeframe - el indicador no tiene que estar unido al gráfico

el multiset no se prueba en el probador, sólo en MT5 (MQL5)

 
¡Muchas gracias!
 
KONDOR:


La sugerencia es buena, gracias, PERO ES LENTO PARA FUNCIONAR!!! la pregunta está abierta

"Tengo un EA, cómo puedo hacer que entienda que una orden previamente colocada por él (incluyendo una orden pendiente) ya no existe (por varias razones - disparó sl o TP o fue eliminada manualmente), es decir, cómo hacer que pregunte si la orden está viva o no. Los comandos que están en el editor devuelven valores, pero aquí el valor no está claro.

 

¿Cuál es el error, por qué no funciona? Me gustaría trazar una línea de 0 a 24 horas por precio DnPrice

if (!ObjectCreate("Down",OBJ_TREND,0,0:00,DnPrice,24:00)) //resignar líneas
{
Print("error: ¡no se puede crear Down! código #",GetLastError());
return(0);
}

ObjectSet("Down",OBJPROP_COLOR,Red);

 
Stells:

¿Cuál es el error, por qué no funciona? Quiero dibujar una línea de 0 a 24 horas al precio de DnPrice

if (!ObjectCreate("Down",OBJ_TREND,0,0:00,DnPrice,24:00)) //resignar líneas
{
Print("error: ¡no se puede crear Down! código #",GetLastError());
return(0);
}

ObjectSet("Down",OBJPROP_COLOR,Red);

https://docs.mql4.com/ru/basis/types/datetime

bool ObjectCreate( string name, int type, int window, datetime time1, double price1, datetime time2=0, double price2=0, datetime time3=0, double price3=0)

 
bercut0077:

La sugerencia es buena, gracias, PERO ES LENTO TRABAJAR!!! la pregunta está abierta

"Tengo un EA, cómo puedo hacer que entienda que una orden previamente colocada por él (incluyendo una orden pendiente) ya no existe (por varias razones - se disparó sl o TP o fue eliminada manualmente), es decir, cómo hacer que pregunte si la orden está viva o no. Los comandos que existen en el editor devuelven valores, pero aquí el valor no está claro.


Es muy fácil - hay una función OrdersHistoryTotal - recorre el historial y ve si el pedido con el mago requerido está en el historial, significa que está cerrado o borrado.

También podríamos añadir algunas condiciones en el bucle de ordenación de las órdenes del historial. Por ejemplo, si la hora de cierre de la orden es menor que la hora de apertura de hoy, ignoraremos dicha orden. Como resultado, el Asesor Experto seleccionará las órdenes que fueron cerradas/eliminadas hoy solamente.

 
nuan:
ZZZEROXXX¿por qué debería obtener beneficios?

Porque si le das la vuelta al gráfico, el gráfico crece )))) No creo que se trate sólo del diferencial, si partimos de la base de que no hay muchas operaciones, el diferencial no juega un papel decisivo en la rentabilidad.
 

Dígame, para una orden remota, ¿es posible saber si se cerró en TakeProfit o no?

¿Puedo utilizar el

double OrderTakeProfit( )
Devuelve el precio de cierre cuando se ha alcanzado el margen de beneficio (take profit) para la orden actualmente seleccionada
El pedido debe ser preseleccionado mediante la función OrderSelect().
?

Podemos crear una condición como esta

for ( i=OrdersTotal();i>0;i--){ OrderSelect(i,SELECT_BY_POS,MODE_HISTORY  );
if( OrderMagicNumber( )==2000 &&OrderSymbol()==Symbol()&&OrderTakeProfit( )>0 ||
   OrderMagicNumber( )==1000 &&OrderSymbol()==Symbol()&&OrderTakeProfit( )>0

¿Esta función no devolvería más que cero para cualquier orden si se cerrara, como cuál sería el beneficio?