Errores, fallos, preguntas - página 3175

 
A100 #:
Un error de compilación:
class A {};

void* t = new A;

Los punteros se han convertido en direcciones en MQL, ¿o qué significa eso ahora?

 
fxsaber #:

¿Los punteros se han convertido en direcciones en MQL o qué significa esto ahora?

Sí, nada parece haber cambiado (en la build 2949 igualmente). Un puntero a una clase podría ser convertido a void * antes de

 

¿Hay alguna manera de superar el clic en el objeto a través del objeto.

Creo una TrendLine y luego justo encima hay una BitmapLabel que la cubre completamente y si haces clic directamente en el lugar donde está la TrendLine bajo la BitmapLabel se empieza a mover

Adjunto un vídeo de la misma.

 
William Roeder #:

Tu corredor lo ha estropeado. Habla con ellos.

Entiendo que tal vez el corredor se olvidó de ajustar algo correctamente en la configuración de algunos símbolos, pero no es sólo mi problema de corredor, mi cliente también tiene ese problema con otro borker.

Y hoy en día no tenemos ninguna alternativa para OrderCalcMargin(). Si esta función devuelve un valor incorrecto del margen requerido, entonces todas las demás funciones personalizadas también devuelven un valor incorrecto.

OrderCalcMargin se utiliza a menudo para muchas herramientas de comercio, que ayudan a ver el margen requerido por el cliente y calcular el lote correctamente.

¿Qué hacer? ¿Tal vez podamos obtener una fórmula que no dependa del factor humano? Algunos corredores ajustarán todo correctamente, y muchos otros no. Y siempre obtendremos este error con un margen incorrecto.

 
Aleksei Beliakov #:

¿Existe alguna forma de superar la pulsación sobre el objeto a través del mismo?

Creo una TrendLine y justo encima hay una BitmapLabel que la cubre completamente y si haces clic justo donde está la TrendLine debajo de la BitmapLabel se empieza a mover

Adjunto un vídeo de la misma.

¿Es posible hacer algo con OBJPROP_SELECTABLE... Digamos que pulsando una determinada tecla (o botón en el gráfico) para bloquear o desbloquear la selección de un objeto

 

Supongo que sería conveniente que el compilador mostrara una advertencia si el archivo adjunto, que está después de OrderSelect(), contiene más llamadas a OrderSelect(), incluidas las llamadas a funciones.

Ayer toda la noche buscando el bicho, y esta es la segunda vez por este motivo.

void Trailing()
{
   for(int i=OrdersTotal()-1; i>=0; i--)
   {
      if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
      {
         if (OrderSymbol() == Symbol() && OrderMagicNumber()==magic)
         {
            if(OrderType() == OP_BUY)
            {
               if(Bid >= GetAveragePrice(OP_BUY)+start_tral_level*Point)//OrderOpenPrice()
               {
                  if(Bid >= OrderStopLoss()+(tral_stop+tral_step)*Point || OrderStopLoss()==0)
                  {
                     if(!OrderModify(OrderTicket(), OrderOpenPrice()
                     , NormalizeDouble(Bid-tral_stop*Point, Digits), OrderTakeProfit(), OrderExpiration())) 
                     {
                        Print("Trailing buy err ", GetLastError());
                     }
                  }
               }
            }
            if(OrderType()==OP_SELL)
            {
               if(Ask <= GetAveragePrice(OP_SELL)-start_tral_level*Point)//OrderOpenPrice()
               {
                  if(Ask <= OrderStopLoss()-(tral_stop+tral_step)*Point || OrderStopLoss()==0)
                  {
                     if(!OrderModify(OrderTicket(), OrderOpenPrice()
                     , NormalizeDouble(Ask+tral_stop*Point, Digits), OrderTakeProfit(), OrderExpiration())) 
                     {
                        Print("Trailing sell err ", GetLastError());
                     }
                  }   
               }   
            }   
         }
      }
   }
}
double GetAveragePrice(int in_type)//расчет средней цены позиций
{
   double dRes=-1;
   double dSum=0;
   double dLot=0;
   double dComission=0;
   double dSwap=0;
   int iTotalPos=OrdersTotal();
   for(int cnt=0;cnt<iTotalPos;cnt++)
   {
      if(!OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES)) Print( "Error Select Order");
      {
         if(OrderType()==in_type && OrderSymbol()==Symbol() && OrderMagicNumber()==magic)
         {
            dSum+=OrderOpenPrice()*OrderLots();
            dLot+=OrderLots();
            dSwap+=OrderSwap();
            dComission+=OrderCommission();
         }
      }    
   }     
   if(in_type==OP_BUY && dLot!=0) dRes=dSum/dLot-dSwap/dLot*Point-dComission/dLot*Point;
   if(in_type==OP_SELL && dLot!=0) dRes=dSum/dLot+dSwap/dLot*Point+dComission/dLot*Point;
   
   return dRes;
}
 
Andrei Sokolov llamadas a funciones.

Ayer estuve buscando el bicho toda la noche y esta es la segunda vez por este motivo.

Un par de días más así y no necesitarás ninguna advertencia.

 
Alexey Viktorov #:

Un par de días más como este y no necesitarás una advertencia.

Esto no invalida el hecho de que sería más conveniente con una advertencia

 
Cómo usar esta aplicación es cómo ganar
 
Hanene1304 #:
Cómo usar esta aplicación es cómo ganar

Por favor, compruebe el post/información/enlaces de abajo -

Foro sobre el comercio, los sistemas de comercio automatizado y las estrategias de comercio de prueba

¿cómo puedo ganar 1 millón de dólares?

Sergey Golubev, 2022.02.17 15:20

Encuentra un broker de Metatrader (hay muchos brokers de Metatrader, usa google para encontrarlos), y abre la cuenta de acuerdo a sus condiciones en sus sitios web.
Prueba con la demo primero.

1. El artículo - MQL5.community - Memo de usuario

2. MetaTrader 5 Ayuda -Abrir una cuenta

3. ¿Por dónde empiezo?
https://www.mql5.com/en/forum/212020

4. Ayuda de MetaTrader 5 - Plataforma comercial - Manual del usuario

5. Cómo hacer una búsqueda en el foro
https://www.mql5.com/en/forum/193510

6. Buscar un servidor por el nombre del broker:
https://www.mql5.com/en/forum/214820

7. Mi lista de brokers: https: //www.mql5.com/en/forum/353226/page3