[¡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 497
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
incrustar el código en el EA, tenía algo así hasta que lo borré, estaba usando el marco de tiempo por hora
orderelect - selecciona el último pedido en el historial
tomar la hora de su cierre y sacar la hora de cierre
y antes de abrir la orden, establezca una condición para que la hora actual NO sea igual a la hora de cierre de la orden desde el historial
Por favor, ayúdenme con este problema, mi variable TP se convierte en cero después de la segunda actualización del precio, es decir, el asesor abre una orden, y el TP y el Bid no son ambos iguales a cero, entonces el precio se actualiza de nuevo y el TP es cero, aunque esto no está en el código, tuve un problema con el arrastre de SL, pero ahora resulta que el problema está en la definición de TP
int start()
{
//----
double TP;
double SL;
if (OrdersTotal()==0)
{
OrderSend(Symbol(),OP_BUY,0.01,Ask,3,0,Bid+4*Point);
OrderSelect(OrdersTotal()-1,SELECT_BY_POS);
TP=OrderTakeProfit();
}
Alert ("TP=" + TP);
Alert ("Bid=" + Bid);
if (OrdersTotal()>0)
{
if (TP-Bid<3*Point)
{
Alert ("Approaching TP by 1 or 2");
Alert ("TP=" + TP);
Alert ("Bid=" + Bid);
}
}
//----
return(0);
}
Por favor, ayúdenme con este problema, mi variable TP se pone a cero después de la segunda actualización del precio, es decir, el EA abre una orden y muestra los valores de TP y Bid, ambos no son iguales a cero, entonces el precio se actualiza de nuevo y el TP es cero, aunque en el código, no hay tales comandos, tuve un problema con tirar de SL hacia arriba, pero ahora resulta que el problema está en la definición de TP
double TP, SL;
int start()
{
//----
if (OrdersTotal()==0)
{
OrderSend(Symbol(),OP_BUY,0.01,Ask,3,0,Bid+4*Point);
OrderSelect(OrdersTotal()-1,SELECT_BY_POS);
TP=OrderTakeProfit();
}
Alert ("TP=" + TP);
Alert ("Bid=" + Bid);
if (OrdersTotal()>0)
{
if (TP-Bid<3*Point)
{
Alert ("Приблизился к ТП на 1 или 2");
Alert ("TP=" + TP);
Alert ("Bid=" + Bid);
}
}
//----
return(0);
}
Por favor, indique cómo abrir una orden en una nueva barra sólo una vez ????
Lea aquí: https://www.mql5.com/ru/forum/134437
Hola a todos.
Hay dos señales en la estrategia: una primaria y otra secundaria. Una operación se abre cuando la segunda señal aparece a más tardar 12 horas después. Pregunta: ¿Cómo puedo enseñar a mi Asesor Experto a no reaccionar a la señal, si aparece después de 12 horas? Por favor, si puede dar un ejemplo de código concreto
Hola a todos.
Hay dos señales en la estrategia: una primaria y otra secundaria. Una operación se abre cuando la segunda señal aparece a más tardar 12 horas después. Pregunta: ¿Cómo puedo enseñar a mi Asesor Experto a no reaccionar a la señal, si aparece después de 12 horas? Por favor, si puedes darme un ejemplo del código
Hola Dmitry. Por mi parte, estoy dispuesto a ofrecerle la siguiente variante. Por analogía, véase la activación de los criterios de negociación de este artículo - también hay dos señales - a saber - véase después de la segunda figura "Lo primero que hay que esperar en el gráfico de DeMarker es el momento en que el DeMarker cruza las líneas de MA rápida y lenta alrededor de 0,7 para una posición corta. Esta es la primera señal preliminar. Luego esperamos el cruce de las propias líneas MA. Esta es la señal principal, tras la cual se pueden realizar las lecturas del indicador Taichi. Si las líneas MA no se cruzan, se considera una señal falsa y el movimiento del precio continuará. Aquí es cómo se implementa en mi código - en la inclusión de búhos que son responsables de la activación de los criterios de comercio.
El truco principal es trabajar a través de los dos de abajo (al final de) la inclusión mediante el establecimiento y restablecimiento de las banderas cuando uno u otro criterio de comercio se activa.
Además, guardará la hora actual cuando se active el criterio principal utilizando TimeCurrent, es decir, especificará una expresión de tipo x = TimeCurrent antes dereturn(OP_BUY); oreturn(OP_SELL); donde x es una variable global de tipo datetime por analogía en la primera funciónint_op_DeMarker. Luego haz lo mismo con la segunda funciónint type_op_MA... - allí se memoriza la variable y = TimeCurrent;
A continuación, en el bloque de cálculo de los criterios comerciales se compara el valor de estas dos variables con el signo más (resulta que no es necesario el análogo de trabajar con valores UTC - en su lugar se toma una comparación de tiempo de recepción de sus dos señales comerciales):
P.D. Además te envío una función para la posibilidad de optimizar el valor del TF de trabajo.
P.P.S. Así es como se organiza esta estructura de código en mi código. No excluyo que haya variantes de código mucho mejores para cumplir esas condiciones del EA. :-)))
¿Cómo puedo calcular el beneficio de un par de divisas en mi EA?
Por ejemplo, tengo siete órdenes de compra abiertas en euros a diferentes precios. ¿Cómo puedo calcular un beneficio en euros sin afectar a otras órdenes en otros pares? ????
usar SelectOrder para escanear todas las órdenes abiertas
comprobar el par requerido (OrderSymbol)
entonces añade el beneficio a cualquier variable si es el OrderProfit requerido
aquí hay un enlace con funciones útiles https://docs.mql4.com/ru/trading/OrderSelect
en el lado izquierdo hay un menú con operaciones, todas ellas están descritas allí