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

 
tim2019:
Entonces, ¿no crees que es demasiado? Tal vez los desarrolladores deberían mirar otros recursos independientes para entender cómo debe ser una interfaz amigable para el usuario. Ni siquiera pude encontrar el botón de registro de inmediato. En definitiva, es terrible.

No, no lo sé.

Te registraste aquí ayer. ¿Qué tienes que vender? ¿Qué conocimientos tiene para ejecutar órdenes en el servicio de autónomos a un nivel decente? No al nivel de "cada cómo, sólo para salir", sino a un nivel que se corresponda con el de un excelente, seamos buenos, desarrollador...

¿O debería darse prisa antes de cambiar de opinión?

 
Artyom Trishkin:

No, no lo sé.

Te registraste aquí ayer. ¿Qué tienes que vender? ¿Qué conocimientos tiene para realizar encargos por cuenta propia a un nivel decente? No al nivel de "cada cómo, sólo por salir", sino a un nivel consistente con el de un excelente, digamos bueno, desarrollador?

¿O quiere darse prisa antes de cambiar de opinión?

Al fin y al cabo, existen algunas normas para la interfaz. Si hubiera un error, al menos deberíamos informar al usuario de qué tipo de error, en lugar de obligarle a golpear varias veces con la terquedad de un pájaro carpintero y volver a descargar / rellenar.

¿Qué tiene que ver esto con el conocimiento o con lo que se vende? Ni siquiera he llegado a esa etapa. Más bien, por desgracia, en eso consiste el mundo moderno. No le gustó, lo cerró y pasó de largo. Eso no es lo que somos. Y en definitiva, una conversación vacía. Estoy hablando torcido y me están convenciendo de que así debe ser. De acuerdo.

 
tim2019:

Al fin y al cabo, existen algunas normas de interfaz. Si hay un error, es habitual indicar al menos qué tipo de error, en lugar de obligar al usuario a picotear repetidamente con la tenacidad de un pájaro carpintero y volver a descargar/recargar.

¿Qué tiene que ver esto con el conocimiento o con lo que se vende? Ni siquiera he llegado a esa etapa. Más bien, por desgracia, en eso consiste el mundo moderno. No le gustó, lo cerró y pasó de largo. Eso no es lo que somos. Y en definitiva, una conversación vacía. Estoy hablando torcido y me están convenciendo de que así debe ser. De acuerdo.

Conozco gente que ha pasado por el registro de vendedores literalmente en un día. Pero estas personas, y se nota al verlas, son curiosas y no tienen prisa. Y he visto gente que lleva meses preguntando en el foro, pero no hace nada de lo que se le dice y escribe.

Y, para que conste, no hay ningún humano allí: todo el registro está supervisado por un robot. Así que puedes llamar a su puerta durante mucho tiempo y deslizarle algo malo. Pero aún así vale la pena leer sus posts - todo debería estar ahí. Desgraciadamente, hace tiempo que pasé todo esto, y desde entonces han cambiado muchas cosas, por lo que sustancialmente no puedo decirte exactamente cuál es tu problema. Lea, por ejemplo, las secciones de su perfil de proveedor:


 

Ayuda para ajustar las condiciones de apertura de posiciones

// открытие продаж

   if(CountSell()==0 && iCustom(NULL,0,"ZigZag_Rosh",12,5,3,1,0)==Low[0] && iCustom(NULL,0,"ZigZag_Rosh",48,20,12,1,0)==Low[0])
     
// закрытие продаж
            if(CountSell()>0 && iCustom(NULL,0,"ZigZag_Rosh",12,5,3,0,1)==High[0] && iCustom(NULL,0,"ZigZag_Rosh",48,20,12,0,1)==High[0])
              
// открытие покупок

   if(CountBuy()==0 && iCustom(NULL,0,"ZigZag_Rosh",12,5,3,0,1)==High[0] && iCustom(NULL,0,"ZigZag_Rosh",48,20,12,0,1)==High[0])
     
// закрытие покупок    
            if(CountBuy()>0 && iCustom(NULL,0,"ZigZag_Rosh",12,5,3,1,0)==Low[0] && iCustom(NULL,0,"ZigZag_Rosh",48,20,12,1,0)==Low[0])

considerando que los parámetros del indicador están incorporados en el robot

------------------------------------------------------------------+
//|                                       Test advisor on ZigZag.mq4 |
//|                        Copyright 2017, MetaQuotes Software Corp. |
//|                                         https:/goga342@yandex.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright c 2010, MQL для тебя."
#property link "http://mql4you.ru"
#property strict
extern double lots = 0.01; //
extern int  TakeProfit=60; //
extern int  StopLoss=100; //
extern int Magic=111111111;
extern int Slippage=3;
extern int ExtDepth=12;
extern int ExtDeviation=5;
extern int ExtBackstep=3;

datetime Today=0;
double SL,TP;
int ticket;
//±-----------------------------------------------------------------+
int OnInit()
  {
   if(Digits==3 || Digits==5)
     {
      TakeProfit *=10;
      StopLoss   *=10;
      Slippage   *=10;
     }
   return(INIT_SUCCEEDED);
  }
//±-----------------------------------------------------------------+
int deinit() {return(0);}
//±-----------------------------------------------------------------+
int start()
  {

   if(DayOfWeek()==0 || DayOfWeek()==6) return(0); // в выходные не работаем
   if(!IsTradeAllowed()) return(0); // пропустим тик если терминал занят
                                    //:проверим открытие новой свечи
   if(Time[0]==Today) return(0);
   Today=Time[0];
//:получим значение ZigZag на предыдущей свече
   double lZZ=iCustom(NULL,0,"ZigZag",ExtDepth,ExtDeviation,ExtBackstep,0,1);
  
// открытие продаж

   if(CountSell()==0 && iCustom(NULL,0,"ZigZag_Rosh",12,5,3,1,0)==Low[0] && iCustom(NULL,0,"ZigZag_Rosh",48,20,12,1,0)==Low[0])
     {
      SL = NormalizeDouble(Bid+StopLoss*Point, Digits);
      TP = NormalizeDouble(Bid-TakeProfit*Point, Digits);
        {

         ticket=OrderSend(Symbol(),OP_SELL,lots,Bid,Slippage,SL,TP,"macd sample",Magic,0,Red);
         if(ticket>0)
           {
            // закрытие продаж
            if(CountSell()>0 && iCustom(NULL,0,"ZigZag_Rosh",12,5,3,0,1)==High[0] && iCustom(NULL,0,"ZigZag_Rosh",48,20,12,0,1)==High[0])
              {
               for(int i=OrdersTotal()-1; i>=0; i--)
                 {
                  if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
                    {
                     if(OrderMagicNumber()==Magic && OrderType()==OP_SELL)
                        if(OrderClose(OrderTicket(),OrderLots(),Ask,Slippage,clrNONE))
                           Print("Ошибка открытия ордера на покупку !");
                    }
                 }
              }
           }
        }
     }
// открытие покупок

   if(CountBuy()==0 && iCustom(NULL,0,"ZigZag_Rosh",12,5,3,0,1)==High[0] && iCustom(NULL,0,"ZigZag_Rosh",48,20,12,0,1)==High[0])
     {
      TP = NormalizeDouble(Ask+TakeProfit*Point, Digits);
      SL = NormalizeDouble(Ask-StopLoss*Point, Digits);
        {
         ticket=OrderSend(Symbol(),OP_BUY,lots,Ask,Slippage,SL,TP,"macd sample",Magic,0,Green);
         if(ticket>0)
           {
            // закрытие покупок    
            if(CountBuy()>0 && iCustom(NULL,0,"ZigZag_Rosh",12,5,3,1,0)==Low[0] && iCustom(NULL,0,"ZigZag_Rosh",48,20,12,1,0)==Low[0])
              {
               for(int i=OrdersTotal()-1; i>=0; i--)
                 {
                  if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
                    {
                     if(OrderMagicNumber()==Magic && OrderType()==OP_BUY)
                        if(!OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,clrNONE))
                           Print("Ошибка открытия ордера на продажу!");
                    }
                 }
              }
           }
        }
     }
   return(0);
  }
//+------------------------------------------------------------------+
int CountSell()//проверкна открытие ордеров на продажу
  {
   int count=0;

   for(int trade=OrdersTotal()-1; trade>=0; trade--)
     {
      if(OrderSelect(trade,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic && OrderType()==OP_SELL)
           {
            if(OrderType()==OP_SELL)
               count++;
           }
        }
     }
   return(count);
  }
//+------------------------------------------------------------------+
int CountBuy()// проверкна открытие ордеров на покупку
  {
   int count=0;

   for(int trade=OrdersTotal()-1; trade>=0; trade--)
     {
      if(OrderSelect(trade,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic && OrderType()==OP_BUY)
           {
            if(OrderType()==OP_BUY)
               count++;
           }
        }
     }
   return(count);
  }
//+------------------------------------------------------------------+
 
Алексей Тарабанов:

Si no puedes ganar, roba.

Una frase clásica de una película, no recuerdo el título: "Si no puedes robar, aprende a ganar".
 
Buenas tardes, por alguna razón el EA está cargando el terminal. ¿Cómo detectar el error? ((( Gracias.
 
rabanik:
Buenas tardes, por alguna razón el EA está cargando el terminal. ¿Cómo detectar el error? ((( Gracias.
Профилирование кода - Разработка программ - MetaTrader 5
Профилирование кода - Разработка программ - MetaTrader 5
  • www.metatrader5.com
Профилирование — это сбор характеристик программы во время ее выполнения. При профилировании замеряется время выполнения и количество вызовов отдельных функций и строк в коде программы. При помощи этого инструмента программист может найти наиболее медленные участки кода и провести их оптимизацию. Профилирование можно проводить на обычном...
 

Buenas tardes. He empezado a probar el Asesor Experto en una cuenta real. Nunca he visto nada parecido con las órdenes de venta.

 
Lomonosov1991:

Buenas tardes. He empezado a probar el Asesor Experto en una cuenta real. Nunca he visto nada parecido con las órdenes de venta.

Buscar en el diario "Expertos"

 

¡Buenos días a todos! Amigos, pues aconsejen si alguien sabe.

Este es el código que puedes utilizar para obtener los precios actuales.

void OnTick()
  {
   MqlTick last_tick;
//---
   if(SymbolInfoTick(Symbol(),last_tick))
     {
      Print(last_tick.time,": Bid = ",last_tick.bid,
            " Ask = ",last_tick.ask,"  Volume = ",last_tick.volume);
     }
   else 
      Print("SymbolInfoTick() failed, error = ",GetLastError());
//---
  }

Pregunta:

¿Cuál es la forma correcta de adjuntarlo?

bool  SymbolInfoTick(
   string    symbol,     // символ
   MqlTick&  tick        // ссылка на структуру
   );

Bueno, que era posible obtener los precios actuales en un Asesor Experto para varios pares de divisas.

Bueno, no se me da bien programar, así que estoy intentando averiguarlo.