Erros, bugs, perguntas - página 1695

 
Rashid Umarov:
O que significa ORDER_TYPE_BUY? Basta imprimir e certificar-se de que é 0. Por isso, não há aí nenhuma encomenda.

Isto é, depois de abrir uma posição na estrutura Order_type MqlTradeTransaction não está disponível? Ou é apenas 0 independentemente?

Rashid, se não se importa, poderia dar-me uma resposta mais fácil? Bem, vou imprimir e será 0, mas como devo entendê-lo?


Aqui vamos nós... Enquanto estava a escrever, Vladimir deu-me uma resposta abrangente. Obrigado, consegui-o. Como sempre, eu não li a documentação...

 
Karputov Vladimir:

Para diferentes tipos de transacções, são preenchidos diferentes campos da estrutura da MqlTradeTransaction:

como pode ver, para TRADE_TRANSACTION_DEAL_ADD o .tipo_de_ordem não é preenchido.

A propósito, é por vezes enganador. porque é que, se o valor não é preenchido, não pode ser especificado como VALOR_VALOR ESCRITO, por exemplo?
 
Alexey Viktorov:


Rashid, se não for muito incómodo, pode dar-me uma resposta mais simples? Então vou imprimi-lo, será 0, mas como é que o entendo?

Neste caso não precisa de olhar para o tipo de encomenda - simplesmente não está lá
 
Alexey Kozitsyn:
A propósito, isto é por vezes enganador... Porque não pode ser especificado como WRONG_VALUE, por exemplo, se o valor não for preenchido?
Eu próprio pisei este ancinho. Não sei dizer )
 
Rashid Umarov:
Eu próprio pisei este ancinho. Não se pode dizer )
É que o WRONG_VALUE é implicitamente moldado para o tipo de qualquer enumeração, certo? Assim o faria))
 
Rashid Umarov:
Não há necessidade de olhar para o tipo de encomenda neste caso - simplesmente não está lá

Como sou lento a digitar... Enquanto editava o meu post...

Alexey Viktorov:

Adicionado.

Bem... Enquanto datilografava, Vladimir deu-me uma resposta abrangente. Muito obrigado. Como sempre não li a documentação...

Obrigado.

 

Como é que conheço o meu cabo num gráfico num indicador?ChartIndicatorName não é adequado, porque devolve um nome curto. E com o mesmo nome pode já estar a correr o mesmo indicador com parâmetros de entrada diferentes.

Preciso que seja capaz de remover o indicador do gráfico e dos seus cálculos.

 
fxsaber:

Como é que conheço o meu cabo num gráfico num indicador?ChartIndicatorName não é adequado, porque devolve um nome curto. E com o mesmo nome pode já estar a correr o mesmo indicador com parâmetros de entrada diferentes.

Preciso que seja capaz de remover o indicador do gráfico e dos seus cálculos.

E se mudar o nome curto quando o cria?
 

O meu exemplo não deveria herdar / tirar um método de uma turma de pais??? Como conseguir que um método de pai em classes derivadas o utilize mais tarde.

Assim, a classe mãe tem métodos "um, dois, três" Quero usar apenas o método "dois e três" em descendente e não ver o método "um" e também que "dois e três" estará disponível mais tarde

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
class test
  {
public:

   int rezult(void)
     {
      static int t=0;
      t++;
      return t;
     }
  };
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
class test_end : public test
  {
public:
   virtual int       rezult(void);
  };

test_end go;
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   go.rezult();
// 'rezult' - function must have a body TEst.mq4        42      7
  }
//+------------------------------------------------------------------+
 
Vladimir Pastushak:

O meu exemplo não deveria herdar / tirar um método de uma turma de pais??? Como conseguir que um método de pai em classes derivadas o utilize mais tarde.

Assim, a classe mãe tem métodos "um, dois, três" Quero usar apenas o método "dois e três" em descendente e não ver o método "um" e também que "dois e três" estará disponível mais

Em primeiro lugar, não é claro se foi feita uma tentativa de declarar um método como virtual ou não. Se tiver de ser virtual, então escreva virtual numa classe base, não numa derivada (porque senão os apontadores de base serão revendidos ao método base mesmo que se coloque nele uma instância de classe derivada).

Se não quiser anular um método numa classe derivada, não o mencione de todo, e se o fizer, deve ser anulado com um corpo.

Finalmente, para esconder o método da classe derivada, é necessário introduzir uma classe intermédia, onde este método deve ser deslocado para a área priivada ou tornado privado na classe base (mas porque é então virtual?).

Razão: