Erros, bugs, perguntas - página 1921

 

Erro de compilação

template<typename T1, typename T2>
void f( T2 t )
{
        Print( typename( T1 ), ":", typename( T2 ), ":", t );
}
void OnStart()
{
        char ch = 5;
        f<int>( ch ); //(1) //error: 'f' - wrong template parameters count
}

É compilado um registo

         f<int,char>( ch ); //(2)
que contém informação redundante e, além disso, ambiguidade se ch não for char. Além disso, nas macros a informação sobre o tipo ch não está geralmente disponível (depende do contexto)
 
A100:

Erro durante a compilação

É possível fazer isto nos profissionais?

 
Комбинатор:

É permitido nos prós?

C++ compila as duas variantes, mas (1) parece mais correcto e intuitivo. Em (2), temos de ter em mente também os tipos, o que é inconveniente e, em vez de simplificar, obtemos complicações excessivas, o que se vê claramente se <> tem vários nomes tipográficos
 

nenhum alerta desaparece, experimentou tudo, leu tudo, não há alertas no site μl apenas no terminal...


 
Vladimir Pastushak:

Os alertas não desaparecem, tentei tudo, li tudo, não há alertas no site μl, apenas no terminal...

Este tem sido o caso desde o início.

Havia aqui um tópico que descobriu qual o ficheiro a apagar para os fazer marcar como lidos. Mas depois os "fantasmas" continuam a aparecer.

 
Olá. Pode dizer-me porque é que as citações de ouro na demonstração estão cada vez mais ausentes?
 

Os ficheiros .log %AppData%\MetaQuotes\Terminal\...MQL5\Logs\YYYYYYMMDD.log não são actualizados prontamente

A actualização só acontece: depois de reiniciar o terminal ou depois de seleccionar View menu. Se não reiniciar ou clicar em Pré-visualizar, o ficheiro correspondente estará vazio.

Tudo o que era usado para funcionar antes (mesmo o ficheiro YYYYYMMDD.log aberto no MetaEditor seria actualizado em poucos segundos após a exibição das linhas no separador Especialistas) e não era necessário realizar acções extra não óbvias

 

Boa noite! O meu Expert Advisor tem RSI e STO, mas não posso fazer um sinal de compra ou venda aberto numa vela nova, e não na actual!

o código é assim:

nulo OnTick(){

para (int i=0; i<OrdersTotal(); i++)

se (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
se (OrderSymbol()==Symbol() && Magic===OrderMagicNumber())
regressar;

duplo RSI0 = iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, 0);
duplo RSI1 = iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, 1);

duplo STO0=iStochastic(NULL, 0, KPeriod, DPeriod, Slowing, MODE_SMA, STO_LOWHIGH, MODE_MAIN, 0);
duplo STO1=iStochastic(NULL, 0, KPeriod, DPeriod, Slowing, MODE_SMA, STO_LOWHIGH, MODE_MAIN, 1);

duplo STO2 = iStochastic(NULL, 0, KPeriod, DPeriod, Slowing, MODE_SMA, STO_LOWHIGH, MODE_SIGNAL, 0);
duplo STO3 = iStochastic(NULL, 0, KPeriod, DPeriod, Slowing, MODE_SMA, STO_LOWHIGH, MODE_SIGNAL, 1);

duplo SL=0,TP=0;

if (RSI1 < RSIDownLevel && RSIDownLevel < RSI0 && STO2 < STO0){

se (takeprofit!=0) TP = NormalizeDouble(Ask + takeprofit*Point,Digitos);
if (stoploss!=0) SL = NormalizeDouble(Ask - stoploss* Point,Digits);
if (OrderSend(Symbol(),OP_BUY, Lot,NormalizeDouble(Ask,Digits),slippage,SL,TP,NUL L,Magic)==-1) Print(GetLastError())
}

if (RSI1 > RSIUpLevel && RSIUpLevel > RSI0 && STO3 > STO1){

if (takeprofit!=0) TP = NormalizeDouble(Bid - takeprofit*Point,Digitos);
if (stoploss!=0) SL = NormalizeDouble(Bid + stoploss* Point,Digits);
if (OrderSend(Symbol(),OP_SELL,Lot,NormalizeDouble(Bi d,Digits),slippage,SL,TP,NULL,Magic)===-1) Print(GetLastError())
}

return(0);
}


Mais uma vez, tenho de repetir que a minha ordem é accionada pela abertura na vela actual, e preciso da ordem para abrir na próxima! Por favor, ajudem-me!!!

 
sviter-pro:

Boa noite! O meu Expert Advisor tem RSI e STO, mas não posso fazê-lo abrir numa vela nova quando um sinal de compra ou venda se apaga, e não na actual!

Mais uma vez, a minha ordem é accionada na vela actual, mas preciso da ordem para abrir na próxima!!! Ajudem, por favor!!!


//+------------------------------------------------------------------+
void OnTick()
  {

   for(int i=0; i<OrdersTotal(); i++)
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
         if(OrderSymbol()==Symbol() && Magic==OrderMagicNumber())
            return;

   double RSI0 = iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, 0);
   double RSI1 = iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, 1);

   double STO0=iStochastic(NULL, 0, KPeriod, DPeriod, Slowing, MODE_SMA, STO_LOWHIGH, MODE_MAIN, 0);
   double STO1=iStochastic(NULL, 0, KPeriod, DPeriod, Slowing, MODE_SMA, STO_LOWHIGH, MODE_MAIN, 1);

   double STO2 = iStochastic(NULL, 0, KPeriod, DPeriod, Slowing, MODE_SMA, STO_LOWHIGH, MODE_SIGNAL, 0);
   double STO3 = iStochastic(NULL, 0, KPeriod, DPeriod, Slowing, MODE_SMA, STO_LOWHIGH, MODE_SIGNAL, 1);

   double SL=0,TP=0;
   
   if(NewBar())
     {
      if(RSI1<RSIDownLevel && RSIDownLevel<RSI0 && STO2<STO0)
        {

         if(takeprofit!=0) TP=NormalizeDouble(Ask+takeprofit*Point,Digits);
         if(stoploss!=0) SL=NormalizeDouble(Ask-stoploss *Point,Digits);
         if(OrderSend(Symbol(),OP_BUY,Lot,NormalizeDouble(Ask,Digits),slippage,SL,TP,NUL L,Magic)==-1) Print(GetLastError());
        }

      if(RSI1>RSIUpLevel && RSIUpLevel>RSI0 && STO3>STO1)
        {

         if(takeprofit!=0) TP=NormalizeDouble(Bid-takeprofit*Point,Digits);
         if(stoploss!=0) SL=NormalizeDouble(Bid+stoploss *Point,Digits);
         if(OrderSend(Symbol(),OP_SELL,Lot,NormalizeDouble(Bi d,Digits),slippage,SL,TP,NULL,Magic)==-1) Print(GetLastError());
        }
     }

   return(0);
  }
//+------------------------------------------------------------------+
bool NewBar()
  {
   static datetime time=0;
   if(time==0)
     {
      time=Time[0];
      return false;
     }
   if(time!=Time[0])
     {
      time=Time[0];
      return true;
     }
   return false;
  }
//+------------------------------------------------------------------+
 
sviter-pro:

Boa noite! O meu Expert Advisor tem RSI e STO, mas não posso fazer com que, quando um sinal de compra ou venda é accionado, ele se abra numa vela nova, e não na actual!

o código é assim:

Mais uma vez, tenho de repetir que a minha ordem é accionada pela abertura na vela actual, e preciso da ordem para abrir na próxima! Por favor, ajudem-me!!!

Os valores indicadores são obtidos a partir das barras 0 e 1.

Em vez de 0 e 1, tomar os valores de 1 e 2 respectivamente.

Razão: