Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 221

 
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() ... );
}

 
novikov433:

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.

Торговые функции - Справочник MQL4
Торговые функции - Справочник MQL4
  • docs.mql4.com
Торговые функции - Справочник MQL4
 
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.

                     if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES) && OrderType() == OP_BUY)
                     count_max++; 
falta la definición de la fecha de apertura de la orden.
 

Rustam Bikbulatov:
Ребята, можно ли с помощью одного советника открывать ордера на других парах? Например Советник только стоит на паре EURAUD и при условии открытии открывается сделка на парах EURAUD и GBPUSD. Какое должно быть условие если будет возможность?

Puede.

Sólo en el probador no funciona.

int  OrderSend(
   string   symbol,              // символ
   int      cmd,                 // торговая операция
   double   volume,              // количество лотов
   double   price,               // цена
   int      slippage,            // проскальзывание
   double   stoploss,            // stop loss
   double   takeprofit,          // take profit
   string   comment=NULL,        // комментарий
   int      magic=0,             // идентификатор
   datetime expiration=0,        // срок истечения ордера
   color    arrow_color=clrNONE  // цвет
   );
 
Alexey Viktorov:
Sí, así es.

Sólo en el probador no funciona.


¿Cómo se enumeran, con coma o con &&?
 
Rustam Bikbulatov:

¿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...

 
Alexey Viktorov:

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
 
LRA:

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 ...