[ARCHIVO] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 3. - página 527

 
Hola. ¿Pueden decirme si un EA tiene que abrir una posición a precio de mercado, cómo puedo saber si una orden se ha abierto y cuál es su precio de apertura?
 
awega:
Hola. ¿Pueden decirme si un EA tiene que abrir una posición a precio de mercado, cómo puedo saber si una orden se ha abierto y cuál es su precio de apertura?
https://book.mql4.com/ru/
 
¿Cómo puedo saber la hora actual?
 
Necesito implementar una función que devuelva un resultado compuesto a partir de valores de varios tipos, ¿pueden decirme cómo hacerlo? ¿O debería utilizar variables globales para los valores de esta función?
 
splxgf:
https://book.mql4.com/ru/
Si sabes en qué tema buscar
 
//+------------------------------------------------------------------+
//|                                                       10pips.mq4 |
//|                                                        fortrader |
//|                                                 www.fortrader.ru |
//+------------------------------------------------------------------+
#property copyright "fortrader"
#property link      "www.fortrader.ru"

extern int       TakeProfit_Buy = 10;
extern int       StopLoss_Buy = 5000;
extern int       TrailingStop_Buy = 5000;
extern int       TakeProfit_Sell = 10;
extern int       StopLoss_Sell = 5000;
extern int       TrailingStop_Sell = 5000;
extern double     Lots = 0.01;

//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
  if (Volume[0] > 1000) return(0);
// Объявляем переменные
int total, cnt;

  total=OrdersTotal();

  // Проверка средств
  if(AccountFreeMargin()<(1000*Lots))
     {
       Print("We have no money. Free Margin = ", AccountFreeMargin());   
       return(0);  
     }
  if(total<1000)
    {  
     // Открытие сделкок
       OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-StopLoss_Buy*Point,Ask+TakeProfit_Buy*Point,"Покупаем",16384,0,Green);
       Sleep(10);//10 секунд
       RefreshRates();
       OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Ask+StopLoss_Sell*Point,Bid-TakeProfit_Sell*Point,"Продаем",16385,0,Red);
    }
  if(total==1000)
    {
       OrderSelect(0, SELECT_BY_POS, MODE_TRADES);
       if(OrderType()==OP_BUY)
         {
           OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-StopLoss_Buy*Point,Ask+TakeProfit_Buy*Point,"Покупаем",16384,0,Green);
         }
       if(OrderType()==OP_SELL)
         {
           OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Ask+StopLoss_Sell*Point,Bid-TakeProfit_Sell*Point,"Продаем",16385,0,Red);
         }
    }   
  for(cnt=total-1;cnt>=0;cnt--)
     {
       OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
       if(OrderType()==OP_BUY)
         {
           if(TrailingStop_Buy>0)  
             {                 
               if(Bid-OrderOpenPrice()>Point*TrailingStop_Buy) // Bid - цена покупки
                 {
                   if(OrderStopLoss()<Bid-Point*TrailingStop_Buy)
                     {
                       OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop_Buy,OrderTakeProfit(),0,Green);
                       return(0);
                     }
                 }
             }
         }
       if(OrderType()==OP_SELL)
         {
           if(TrailingStop_Sell>0)  
             {                 
               if((OrderOpenPrice()-Ask)>(Point*TrailingStop_Sell))  // Ask - цена продажи
                 {
                   if((OrderStopLoss()>(Ask+Point*TrailingStop_Sell)) || (OrderStopLoss()==0))
                     {
                       OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop_Sell,OrderTakeProfit(),0,Red);
                       return(0);
                     }
                 }
             }
         }
  
     }
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
Tengo un simple Asesor Experto, abre operaciones de venta o compra hasta una cierta cantidad y establece SL y TP (es la cantidad de operaciones que es importante para mí). Tengo un simple Asesor Experto que simplemente abre una posición de Venta o Compra para una determinada cantidad de operaciones, y luego abre una posición de Venta o Compra para una determinada cantidad de operaciones (es el número de operaciones que me interesa). Por favor, aconséjeme lo que se puede hacer en este caso.
 
DOCTORS:
¿Cómo puedo saber la hora actual?
HoraCorriente()
 
utyff:
Tengo un simple Asesor Experto, abre operaciones de venta o compra hasta una cierta cantidad y establece SL y TP (es la cantidad de operaciones que es importante para mí). Tengo un simple Asesor Experto que sólo abre la posición de venta o compra para una cierta cantidad de operaciones, y luego abre SL o TP (es sólo la cantidad de operaciones que me importa). Por favor, indique qué se puede hacer en este caso.

Aumentar el deslizamiento y normalizar los precios
 
awega:
Hola. ¿Me pueden decir, si un EA tiene que abrir una posición al precio del mercado, cómo puedo determinar si una orden se ha abierto y cómo determinar su precio de apertura?
Abra la ayuda en el MetaEditor, "Funciones comerciales": OrderSend() y OrderOpenPrice() - hay respuestas listas a sus preguntas.
 
utyff:
Tengo un simple Asesor Experto, abre operaciones de venta o compra hasta una cierta cantidad y establece SL y TP (es la cantidad de operaciones que es importante para mí). Tengo un EA sencillo, solo abre operaciones de venta o compra con cierta cantidad de lotes y coloca SL o TP (es la cantidad de operaciones que me interesa). Por favor, aconséjeme qué se puede hacer aquí.
Lo primero que hay que hacer es comprobar el Diario de Registro de Vehículos: el Asesor Experto dejará allí mensajes de error. Y luego, según estos mensajes, analizar qué y por qué. Y es deseable que tú mismo aprendas a analizar, en lugar de lanzar aquí paquetes de código con la esperanza de que otros hagan lo mismo por ti.