Erros, bugs, perguntas - página 3175

 
A100 #:
Um erro de compilação:
class A {};

void* t = new A;

Os ponteiros se tornaram endereços na MQL, ou o que isso significa agora?

 
fxsaber #:

As indicações se tornaram endereços na MQL ou qual é o significado disso agora?

Sim, nada parece ter mudado (na construção 2949 da mesma forma). Um ponteiro para uma classe poderia ser convertido em vazio * antes

 

Existe alguma maneira de superar o clique sobre o objeto através do objeto.

Eu crio uma TrendLine e logo acima dela há um BitmapLabel que a cobre completamente e se você clicar diretamente no local onde a TrendLine está sob o BitmapLabel ela começa a se mover

Estou anexando um vídeo do mesmo.

 
William Roeder #:

Seu corretor fez asneira. Fale com eles.

Entendo que talvez o corretor se tenha esquecido de ajustar algo corretamente nas configurações de alguns símbolos, mas não é apenas meu problema de corretor, meu cliente também tem tal problema com outro corretor.

E hoje não temos alternativa para a OrderCalcMargin(). Se esta função retornar valor errado da margem necessária, então todas as outras funções personalizadas também retornam valor errado.

A OrderCalcMargin é freqüentemente usada para muitas ferramentas comerciais, que ajudam a ver a margem necessária do cliente e a calcular o lote corretamente.

O que fazer? Talvez possamos de alguma forma obter tal fórmula que não dependerá do fator pessoas? Algum corretor ajustará tudo corretamente, e muitos outros não. E sempre obteremos este erro com margem errada.

 
Aleksei Beliakov #:

Existe alguma maneira de superar o clique sobre o objeto através do objeto.

Eu crio uma TrendLine e logo acima dela há um BitmapLabel que a cobre completamente e se você clicar bem onde a TrendLine está sob o BitmapLabel ela começa a se mover

Estou anexando um vídeo do mesmo.

É possível fazer algo com OBJPROP_SELECTABLE... Digamos que ao pressionar uma certa tecla (ou botão no gráfico) para bloquear ou desbloquear a seleção de um objeto

 

Suponho que seria conveniente se o compilador mostrasse um aviso se o anexo, que está após OrderSelect(), contiver mais chamadas OrderSelect(), incluindo chamadas de função.

Ontem toda a noite procurando o bug, e esta é a 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 chamadas de função.

Ontem eu estava procurando o bug a noite toda e esta é a segunda vez por este motivo.

Mais alguns dias como este e você não precisará de avisos.

 
Alexey Viktorov #:

Mais alguns dias como este e você não precisará de um aviso.

Isto não invalida o fato de que seria mais conveniente com um aviso

 
Como usar esta aplicação é como ganhar
 
Hanene1304 #:
Como usar esta aplicação é como ganhar

Por favor, verifique o posto/informações/links abaixo -

Fórum sobre comércio, sistemas comerciais automatizados e estratégias comerciais de teste

como eu posso ganhar 1 milhão de dólares?

Sergey Golubev, 2022.02.17 15:20

Encontre o corretor Metatrader (há muitos corretores Metatrader, use o google para encontrar), e abra a conta de acordo com suas condições em seus sites.
Tente primeiro com a demonstração.

1. O artigo - MQL5.community - User Memo

2. Ajuda MetaTrader 5 -Abra uma conta

3. Por onde eu começo?
https://www.mql5.com/en/forum/212020

4. MetaTrader 5 Ajuda - Plataforma de negociação - Manual do usuário

5. Como fazer uma pesquisa no fórum
https://www.mql5.com/en/forum/193510

6. Encontre um Servidor pelo Nome do Corretor:

7. Minha lista de corretores: https://www.mql5.com/en/forum/353226/page3