Errori, bug, domande - pagina 3175

 
A100 #:
Un errore di compilazione:
class A {};

void* t = new A;

I puntatori sono diventati indirizzi in MQL, o cosa significa adesso?

 
fxsaber #:

I puntatori sono diventati indirizzi in MQL o cosa significa questo adesso?

Sì, non sembra essere cambiato nulla (nella build 2949 allo stesso modo). Un puntatore a una classe potrebbe essere convertito in void * prima di

 

C'è un modo per superare il clic sull'oggetto attraverso l'oggetto.

Creo una TrendLine e poi proprio sopra di essa c'è una BitmapLabel che la copre completamente e se cliccate direttamente sul punto in cui la TrendLine è sotto la BitmapLabel inizia a muoversi

Sto allegando un video di esso.

 
William Roeder #:

Il tuo broker ha fatto un casino. Parla con loro.

Capisco che forse il broker ha dimenticato di regolare correttamente qualcosa nelle impostazioni di alcuni simboli, ma non è solo un problema del mio broker, anche il mio cliente ha questo problema con un altro borker.

E oggi non abbiamo alternative per OrderCalcMargin(). Se questa funzione restituisce un valore sbagliato del margine richiesto, allora anche tutte le altre funzioni personalizzate restituiscono un valore sbagliato.

OrderCalcMargin è spesso usato per molti strumenti di trading, che aiutano a vedere il margine richiesto dal cliente e a calcolare correttamente il lotto.

Cosa fare? Forse possiamo in qualche modo ottenere tale formula che non dipende dal fattore persone? Alcuni broker regolano tutto correttamente, e molti altri no. E otterremo sempre questo errore con un margine sbagliato.

 
Aleksei Beliakov #:

C'è un modo per superare il clic sull'oggetto attraverso l'oggetto.

Creo una TrendLine e poi proprio sopra di essa c'è una BitmapLabel che la copre completamente e se cliccate direttamente sul punto in cui la TrendLine è sotto la BitmapLabel inizia a muoversi

Sto allegando un video di esso.

È possibile fare qualcosa con OBJPROP_SELECTABLE... Diciamo che premendo un certo tasto (o pulsante sul grafico) per bloccare o sbloccare la selezione di un oggetto

 

Suppongo che sarebbe conveniente se il compilatore mostrasse un avvertimento se l'allegato, che è dopo OrderSelect(), contiene più chiamate OrderSelect(), incluse le chiamate di funzione.

Ieri tutta la notte alla ricerca del bug, e questa è la seconda volta per questo 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 chiamate di funzione.

Ieri ho cercato l'insetto tutta la notte e questa è la seconda volta per questo motivo.

Un altro paio di giorni come questo e non avrai bisogno di avvertimenti.

 
Alexey Viktorov #:

Un altro paio di giorni come questo e non avrai bisogno di un avvertimento.

Questo non inficia il fatto che sarebbe più conveniente con un avvertimento

 
Come usare questa applicazione è come vincere
 
Hanene1304 #:
Come usare questa applicazione è come vincere

Si prega di controllare i post/informazioni/link qui sotto -

Forum sul trading, sistemi di trading automatizzati e strategie di trading di prova

come posso guadagnare 1 milione di dollari?

Sergey Golubev, 2022.02.17 15:20

Trova il broker Metatrader (ci sono molti broker Metatrader, usa Google per trovare), e apri il conto secondo le loro condizioni sui loro siti web.
Prova prima con la demo.

1. L'articolo - MQL5.community - Memo utente

2. MetaTrader 5 Aiuto -Aprire un conto

3. Da dove comincio?
https://www.mql5.com/en/forum/212020

4. Aiuto MetaTrader 5 - Piattaforma di trading - Manuale utente

5. Come fare una ricerca sul forum
https://www.mql5.com/en/forum/193510

6. Trovare un server in base al nome del broker:
https://www.mql5.com/en/forum/214820

7. La mia lista di broker: https://www.mql5.com/en/forum/353226/page3


Motivazione: