ax00071: El registro muestra un intento de cerrar buy2, ticket desconocido para la función orderclose. Código de memoria ya que estoy en el trabajo
Ah. Escribo de memoria ya que también estoy en el trabajo. Prueba: y Ticket comparar con el del informe orderclose. En el probador parece ser 0, 1, 2, 3, ....
RefreshRates();// Это обязательно ДО OrderSelect() и лучше в таком виде: while (!RefreshRates()) ;for(int i=OrdersTotal()-1; i>=0; i--)
if (! OrderSelect(i,SELECT_BY_POS)) continue;
Ticket=OrderTicket();
Lot =OrderLots();
// Сообщение о попытке следует выдавать ДО ее осуществления, т.к. попытка может что-то изменить
Alert ("Попытка закрыть Buy Ticket=",Ticket, " Lot=",Lot); // Кажется Alert в тестере бестолкова, попробуйте Print
Ans=OrderClose(Ticket,Lot,OrderClosePrice() ... );
}
Quiero aprender a hacer un EA. ¿Quizás el mercado cambie y tenga que pagar más, por ejemplo, para cambiar un poco el algoritmo?
No sé si realmente puedo hacer un TS en cualquier constructor de búhos, pero prefiero entender las funciones básicas como hacer un stop en un lugar determinado o pedir una orden para operar en determinados días.
No tengo ni idea de lo que hay que hacer con 1,2,3 etc. incluso en el constructor, y por qué es importante conectar todo en este orden con flechas. Quien imparte formación en mql 4 de la A a la Z y no como los guerreros de Internet que crean cursos donde no explican nada en detalle por qué sucede así, en palabras, no harás nada nuevo por ti mismo, sólo tendrás que copiar su código .... Es decir, saben qué orden es responsable de qué, y no se limitaron a señalar al azar ..... Bueno, que los profesionales hagan pirámide, lote dinámico, parada inteligente; mi tarea es diferente - para descargar los filtros necesarios y comprender la esencia de la formación de la tendencia. Gracias por su ayuda.
Si quieres aprenderlo por ti mismo, lo único que necesitas es tener documentación, que la tienes, y ser capaz de leer y entender lo que has leído. Si no has conseguido entenderlo desde la primera vez, léelo unas cuantas veces más y preferiblemente a un ritmo más lento, para que tu cerebro tenga tiempo de reconocer el significado de lo que has leído.
Y después, la imaginación tiene vía libre.
Quiero abrir un pedido con la condición Abra la sección "Funciones comerciales" de la documentación y busque la función que abre la orden y escríbala según la sintaxis...
Oh, sí... tienes que cumplir la condición... ...abra la sección "Operadores", lea"Conditional if-else statement" y escriba la condición necesaria.
Una vez hecho esto, lees la documentación de principio a fin para saber qué hay en el lenguaje, qué puedes conseguir.
yo otra vez :) Escribió una función que permite que no se abran más de n órdenes en 1 día. Ahora la función drena el depósito, es decir, las órdenes se abren en cada tick.
¿Dónde he metido la pata otra vez?)
int OrderMax = 3; // número máximo de órdenes que se pueden abrir durante 1 día. void OpenOrders() { for (int i = 1; i <= 5; i++) { si (DayOfWeek() == i) { int cuenta_máx = 0; if (count_max <= OrderMax) { for(int cn = OrdersTotal()-1; cn>=0; cn--) { if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES) && OrderType() == OP_BUY) count_max++; } } } } }
Chicos, ¿es posible abrir órdenes en otros pares con un EA? Por ejemplo, un EA sólo está en EURAUD y con la condición de abrir una operación en los pares EURAUD y GBPUSD. ¿Cuál debe ser la condición, si es posible?
ivan-baaton: Yo también:) He escrito una función que permite abrir no más de n órdenes en 1 día. Ahora esta función está perdiendo el depósito, es decir, las órdenes se abren en cada tick.
¿Dónde he metido la pata otra vez?)
int OrderMax = 3; // número máximo de órdenes que se pueden abrir durante 1 día. void OpenOrders() { for (int i = 1; i <= 5; i++) { si (DayOfWeek() == i) { int cuenta_máx = 0; if (count_max <= OrderMax) { for(int cn = OrdersTotal()-1; cn>=0; cn--) { if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES) && OrderType() == OP_BUY) count_max++; } } } } }
En mi opinión, el planteamiento no es nada lógico. ¿Por qué definir el día de la semana? ¿Qué más da el día que sea, si la condición debe decir "no abrir más de xxx órdenes hoy"?
Me parece más razonable contar las órdenes abiertas hoy y colocar una condición adecuada en la condición.
Rustam Bikbulatov: Ребята, можно ли с помощью одного советника открывать ордера на других парах? Например Советник только стоит на паре EURAUD и при условии открытии открывается сделка на парах EURAUD и GBPUSD. Какое должно быть условие если будет возможность?
Puede.
Sólo en el probador no funciona.
intOrderSend(
stringsymbol, // символint cmd, // торговая операцияdouble volume, // количество лотовdouble price, // ценаint slippage, // проскальзываниеdouble stoploss, // stop lossdouble takeprofit, // take profitstring comment=NULL, // комментарийint magic=0, // идентификаторdatetime expiration=0, // срок истечения ордераcolor arrow_color=clrNONE// цвет
);
Ah. Escribo de memoria ya que también estoy en el trabajo. Prueba: y Ticket comparar con lo que la orden tiene en el informe. En el probador parece ser 0, 1, 2, 3, ....
Gracias por el aviso )) Soy un pringado... ... al cierre tenía la condición de cerrar la operación a las 22:00 del viernes, sin ninguna condición adicional para comprobar el tipo de operación. El acuerdo en sí se cerró un par de horas antes. Así, cuando llegaron las 22:00 horas, el Asesor Experto comenzó a enviar órdenes para cerrar una orden que ya estaba cerrada ...
Para iniciar sesión y usar el sitio web MQL5.com es necesario permitir el uso de Сookies.
Por favor, active este ajuste en su navegador, de lo contrario, no podrá iniciar sesión.
Ha iniciado sesión. La autenticación de dos factores se ha desactivado. Vuelva a configurarla y escanee un nuevo código QR, o continúe con la autenticación de dos factores desactivada.
Ah. Escribo de memoria ya que también estoy en el trabajo. Prueba: y Ticket comparar con el del informe orderclose. En el probador parece ser 0, 1, 2, 3, ....
Quiero aprender a hacer un EA. ¿Quizás el mercado cambie y tenga que pagar más, por ejemplo, para cambiar un poco el algoritmo?
No sé si realmente puedo hacer un TS en cualquier constructor de búhos, pero prefiero entender las funciones básicas como hacer un stop en un lugar determinado o pedir una orden para operar en determinados días.
No tengo ni idea de lo que hay que hacer con 1,2,3 etc. incluso en el constructor, y por qué es importante conectar todo en este orden con flechas. Quien imparte formación en mql 4 de la A a la Z y no como los guerreros de Internet que crean cursos donde no explican nada en detalle por qué sucede así, en palabras, no harás nada nuevo por ti mismo, sólo tendrás que copiar su código .... Es decir, saben qué orden es responsable de qué, y no se limitaron a señalar al azar ..... Bueno, que los profesionales hagan pirámide, lote dinámico, parada inteligente; mi tarea es diferente - para descargar los filtros necesarios y comprender la esencia de la formación de la tendencia. Gracias por su ayuda.
Si quieres aprenderlo por ti mismo, lo único que necesitas es tener documentación, que la tienes, y ser capaz de leer y entender lo que has leído. Si no has conseguido entenderlo desde la primera vez, léelo unas cuantas veces más y preferiblemente a un ritmo más lento, para que tu cerebro tenga tiempo de reconocer el significado de lo que has leído.
Y después, la imaginación tiene vía libre.
Quiero abrir un pedido con la condición Abra la sección "Funciones comerciales" de la documentación y busque la función que abre la orden y escríbala según la sintaxis...
Oh, sí... tienes que cumplir la condición... ...abra la sección "Operadores", lea"Conditional if-else statement" y escriba la condición necesaria.
Una vez hecho esto, lees la documentación de principio a fin para saber qué hay en el lenguaje, qué puedes conseguir.
Escribió una función que permite que no se abran más de n órdenes en 1 día.
Ahora la función drena el depósito, es decir, las órdenes se abren en cada tick.
¿Dónde he metido la pata otra vez?)
int OrderMax = 3; // número máximo de órdenes que se pueden abrir durante 1 día.
void OpenOrders()
{
for (int i = 1; i <= 5; i++)
{
si (DayOfWeek() == i)
{
int cuenta_máx = 0;
if (count_max <= OrderMax)
{
for(int cn = OrdersTotal()-1; cn>=0; cn--)
{
if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES) && OrderType() == OP_BUY)
count_max++;
}
}
}
}
}
Yo también:)
He escrito una función que permite abrir no más de n órdenes en 1 día.
Ahora esta función está perdiendo el depósito, es decir, las órdenes se abren en cada tick.
¿Dónde he metido la pata otra vez?)
int OrderMax = 3; // número máximo de órdenes que se pueden abrir durante 1 día.
void OpenOrders()
{
for (int i = 1; i <= 5; i++)
{
si (DayOfWeek() == i)
{
int cuenta_máx = 0;
if (count_max <= OrderMax)
{
for(int cn = OrdersTotal()-1; cn>=0; cn--)
{
if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES) && OrderType() == OP_BUY)
count_max++;
}
}
}
}
}
En mi opinión, el planteamiento no es nada lógico. ¿Por qué definir el día de la semana? ¿Qué más da el día que sea, si la condición debe decir "no abrir más de xxx órdenes hoy"?
Me parece más razonable contar las órdenes abiertas hoy y colocar una condición adecuada en la condición.
falta la definición de la fecha de apertura de la orden.Rustam Bikbulatov:
Ребята, можно ли с помощью одного советника открывать ордера на других парах? Например Советник только стоит на паре EURAUD и при условии открытии открывается сделка на парах EURAUD и GBPUSD. Какое должно быть условие если будет возможность?
Sólo en el probador no funciona.
Sí, así es.
Sólo en el probador no funciona.
¿Cómo se enumeran, con coma o con &&?
¿Cómo se enumeran? ¿Coma o &&?
La suya es una ¿qué? ¿una lista de personajes? ¿o qué?
Cada OrderSend tiene su propio carácter. Sin comas ni otras cosas...
La suya es una ¿qué? ¿una lista de personajes o qué?
Cada OrderSend tiene su propio carácter. Sin comas ni otras cosas...
lista de pares
Ah. Escribo de memoria ya que también estoy en el trabajo. Prueba: y Ticket comparar con lo que la orden tiene en el informe. En el probador parece ser 0, 1, 2, 3, ....