Erros, bugs, perguntas - página 1541

 
Karputov Vladimir:
Precisa de um análogo do clique direito sobre o gráfico e "Actualizar" para o indicador?
Um... Não preciso de nada. Tudo o que eu disse foi que ChartRedraw() não é análogo ao clique de "refresh".
 
como abrir uma conta de demonstração no servidor de metaquotas ??? Para obter novas versões do mt5 ...
 
Vladimir Pastushak:
como abrir uma conta de demonstração no servidor de metaquotas ??? Para obter novas versões do mt5 ...
escolha o servidor MetaQuotes-Demo quando abrir uma conta demo
 
Karputov Vladimir:
Precisa de um análogo do clique direito sobre o gráfico e "Actualizar" para o indicador?

Sim, é isso mesmo. Para que o indicador possa calcular, mas não abordar o init. ChartRedraw() não o faz.

Chamado no OnChartEvent

 
Владимир:

Sim, é isso mesmo. Para que o indicador possa calcular, mas não abordar o init. ChartRedraw() não o faz.

Chamado no OnChartEvent

Faça do loop inteiro uma função e chame-a com os parâmetros necessários de onde quiser.
 
Владимир:

Sim, é isso mesmo. Para que o indicador possa calcular, mas não abordar o init. ChartRedraw() não o faz.

Chamado no OnChartEvent

Para quatro

  static int FullOnCalculate( void )
  {
    long volume[];
    int spread[];

    ArraySetAsSeries(volume, TRUE);
    ArraySetAsSeries(spread, TRUE);

    const int Size = MathMin(CopyTickVolume(Symbol(), Period(), 0, Bars, volume),
                             CopySpread(Symbol(), Period(), 0, Bars, spread));

    return(OnCalculate(Size, 0, Time, Open, High, Low, Close, Volume, volume, spread));
  }

O mesmo para o quinto.

 

Porque é que esta classe se compila sob MT4 mas não sob MT5?

class CHARTOBJECT
{
public:
  template <typename T>
#ifdef __MQL4__
  void SetProperty( const int id, const T Value, const int Modifier = 0 ) const
#else #endif
#ifdef __MQL5__
  void SetProperty( const ENUM_OBJECT_PROPERTY_STRING id, const T Value, const int Modifier = 0 ) const
#endif      
  {
    const string sType = typename(T);

    if (sType == "double")
      ::ObjectSetDouble(0, "", id, Modifier, (double)Value);
    else if (sType == "string")
      ::ObjectSetString(0, "", id, Modifier, (string)Value);
    else
      ::ObjectSetInteger(0, "", id, Modifier, (long)Value);

    return;
  } 
  
  virtual void operator =( const string Value ) const
  {
    this.SetProperty(OBJPROP_TEXT, Value);

    return;
  }
};
 
Há por acaso um #else ou #endif lá dentro?
 
Комбинатор:
Será #else ou #endif não é desnecessário lá?

Na linha#else #endif, se eu remover #endif, ela não compila. Também não sei porque é que não compila.

Mas mesmo que eu remova toda a compilação condicional, ela não compilará sob MT5, mas compilará sob MT4.

 
Alexey Kozitsyn:
O que é um multiterminal?)
É uma versão do terminal MT4, um exemplo do qual pode alegadamente funcionar com várias contas ao mesmo tempo. Descarreguei o ficheiro de instalação fcmt4multisetup_en.exe do website FXCluba. É o seu desenvolvimento em geral e eu estou a dirigir-me para o endereço errado?