Preguntas de los principiantes MQL4 MT4 MetaTrader 4 - página 84

 
Arseniy Barudkin:   Hola señores, por favor ayúdenme a escribir esta función.

¡¡Feliz día de la victoria!! Han pasado 4 días - sin respuesta. Vamos a intentar... ¡¡¡Los descontentos escriben en persona!!!

//+-------------------------------------------------------+
//| функция перебрала открытые ордера на графике          |
//| и выделила: 1) с самым маленьким лотом и --- профитом |
//| 2) с самым большим лотом и +++ профитом.       скрипт |
//| Предполагается, что такие есть. И удалила    PROBA.mq4|
//+-------------------------------------------------------+
// Назначение функций OrdersTotal, OrderSelect, OrderClose
// и прочих узнаем поставив на них курсор и нажав F1

#property strict

void OnStart()
{
   int    Проскальзывание=20;
   int    Тикет1 =0,  Тикет2=0;
   double Лот1=100000, Лот2=0;
   bool   Результат;     //  Чтоб избежать лишних предупреждений

   // Выделение
   for(int Тикет=OrdersTotal()-1; Тикет>=0; Тикет--)
   {
     if(!OrderSelect(Тикет,SELECT_BY_POS)) continue; // Что-то помешало - идем к следующему
     if(OrderSymbol() != _Symbol) continue;          // Чужой график

     // Если с меньшим лотом и   --- профитом   то запомним тикет и лот
     if(OrderLots()<Лот1     &&  OrderProfit()<0)
     {
       Тикет1=OrderTicket();
       Лот1=OrderLots();
     }

     // Если с большим лотом и   +++ профитом   то запомним тикет и лот
     if(OrderLots()>Лот2     &&  OrderProfit()>0)
     {
       Тикет2=OrderTicket();
       Лот2=OrderLots();
     }
   }

   // Удаление
   if(Тикет1)
   {
      while(!RefreshRates());
      if(OrderSelect(Тикет1,SELECT_BY_TICKET))  // Чтоб получить цену закрытия
         Результат=OrderClose(Тикет1, Лот1,OrderClosePrice(),Проскальзывание);
   }

   if(Тикет2)
   {
      while(!RefreshRates());
      if(OrderSelect(Тикет2,SELECT_BY_TICKET))
         Результат=OrderClose(Тикет2, Лот2,OrderClosePrice(),Проскальзывание);
   }
}   

Y entonces surgió la pregunta: si sólo hay dos órdenes. Uno con un lote grande con beneficio negativo, y otro con un lote más pequeño con beneficio positivo

¿Y si sólo hay un pedido? ¿Qué pasa si todas las órdenes tienen el mismo lote y todas con un beneficio negativo - debemos cerrar una por una?

 

¡Hola!

¿Pueden ayudarme? El Asesor Experto está recuperando operacionescada tick. ¿Cómo escribo el código para quitar unos 5 oficios o sólo los que quiera?

extern int tp=50;

extern int sl=200;

extern double lot=0.01;

void OnTick()

{

OrderSend("USDJPY",OP_SELL,lot,Bid,0,Ask+sl*Point,Ask-tp*Point, "Batsasho",1,0,Red);

}

¿Qué debo cambiar o añadir al código?

¿Puedes responder ***.

Gracias.

 
alstefanov:

¡Hola!

¿Pueden ayudarme? El Asesor Experto está recuperando operacionescada tick. ¿Cómo escribo el código para quitar unos 5 oficios o sólo los que quiera?

extern int tp=50;

extern int sl=200;

extern double lot=0.01;

void OnTick()

{

OrderSend("USDJPY",OP_SELL,lot,Bid,0,Ask+sl*Point,Ask-tp*Point, "Batsasho",1,0,Red);

}

¿Qué debo cambiar o añadir al código?

¿Puedes responder ***.

Gracias.

extern int tp=50;

extern int sl=200;

extern double lot=0.01;

void OnTick()

{ 

if(OrdersTotal()==0)OrderSend("USDJPY",OP_SELL,lot,Bid,0,Ask+sl*Point,Ask-tp*Point,"Batsasho",1,0,Red);

}
 
Por favor, aconsejar cómo acelerar el trabajo de la EA en el probador para que sea probado más rápido, la EA utiliza sólo un indicador
 
missha32¿Cómo puedo hacer que mi EA más rápido en el probador de la estrategia, que utiliza sólo un indicador

En primer lugar, acortar el intervalo de tiempo de las pruebas. Lo mejor: 1) los últimos tres meses. 2) tres meses con un brexit en medio. Asegúrese de no hacer la prueba en todas las garrapatas. De hecho, en MT4, no hay ticks en el historial, y son modelados por ligeras sacudidas del precio hacia arriba y hacia abajo. Si usted prueba en dos marcos de tiempo - M15 y M1, a continuación, ver, donde es mejor. O, mejor aún, utilice la demostración: iníciela el lunes por la mañana y compruebe el resultado el viernes por la noche utilizando el conocido script. Si necesitamos probar 100 Asesores Expertos, abrimos 10 terminales y en cada terminal hay 10 gráficos con Asesores Expertos.

Es necesario tener muchos ordenadores. En una cuenta real $4 con 500 de apalancamiento es suficiente. Mira cualquier gráfico - con una entrada correcta puedes fácilmente duplicar tu depósito en un día. Y eso es un millón de veces en un mes. ¿Existen estos EA gratuitos en Internet? ¿Alguien venderá eso? Por lo tanto, el dinero debería invertirse en ordenadores. Estamos buscando los puntos de entrada. Escribimos programas, calculamos en Excel usando las fórmulas y macros, y escribimos scripts y Asesores Expertos para los cálculos. Entonces, cuando descubrimos cómo encontrar puntos de entrada, y luego Robots, Stops, Arrastre, Depósito, Depósitos, Retiros...

 
STARIJ:

¡Feliz Día de la Victoria! Han pasado 4 días y no hay respuesta. Vamos a intentar... ¡¡¡Los descontentos escriben en sus cuentas personales!!!

Y entonces surgió la pregunta: si sólo hay dos órdenes. Con un lote grande con beneficio negativo, con un lote pequeño con beneficio positivo

¿Y si sólo hay un pedido? ¿Qué pasa si todas las órdenes tienen el mismo lote y todas con un beneficio negativo - debemos cerrar una por una?

for(int Ticket=Total de pedidos()-1; Ticket>=0; Ticket--) - este es el código de búsqueda de órdenes de mercado por ticket en orden inverso (desde la última orden abierta hasta la primera) - ¿lo he entendido bien?

Pero "Ticket" no funciona en cirílico, tiene que ser "Ticket" en latín.

 
Yaroslav Nykula:
for(int Ticket=Total de pedidos()-1; Ticket>=0; Ticket--) - este es el código de la búsqueda de la orden de mercado por el billete en el orden inverso (desde el último abierto hasta el primero) - ¿lo entiendo bien?

Pero "Ticket" en cirílico no funcionará, necesitas "Ticket" en latín.

No lo he comprobado, pero debería pasar no sólo en cirílico sino también en chino.
 
Vitaly Muzichenko:   No lo he comprobado, pero debería pasar no sólo en cirílico sino también en chino.
Cuando tomo una nueva lengua, lo primero que hago es comprobar si el cirílico se come al cirílico o lo escupe. Este lo hace. Aquí está ese guión - compruébalo.
Archivos adjuntos:
PROBA.mq4  2 kb
 
Hola. La pregunta es: ¿Podemos cargar los valores de los ticks (los precios correspondientes) para un determinado período de negociación (es decir, para una sola vela) en una matriz unidimensional? Y hacerlo de tal manera que la matriz se forme durante la formación de una vela. ¿Es realista en MQL4? Le agradecería sus comentarios.
 
STARIJ:

¡¡Feliz día de la victoria!! Han pasado cuatro días y no hay respuesta. Vamos a intentar... ¡¡¡Los descontentos escriben en privado!!!

Y entonces surgió una pregunta: si sólo hay dos órdenes. Con un lote grande con beneficio negativo, con un lote pequeño con beneficio positivo

Y si sólo hay un pedido. Y si todas las órdenes tienen el mismo lote y todas con beneficio negativo, ¿debemos cerrar una por una?


¡Muchas gracias! ¡Esta es una buena función! Esta función debe ser llamada si no hay suficiente margen para abrir otra orden. Pero no expresé mi idea correctamente; ¡resulta que necesitaba algo más! El lote más grande con el mayor beneficio de las posiciones abiertas y el lote más pequeño con el beneficio negativo de las posiciones abiertas.
Razón de la queja: