Perguntas de Iniciantes MQL5 MT5 MetaTrader 5 - página 922

 
Artyom Trishkin:

Basta adicionar outro conjunto CArrayObj ao CArrayObj: Adicionar() conjunto

Não funciona dessa forma. a conversão de parâmetros não é permitida

A propósito, se é que isso importa. O meu objecto a ser adicionado à matriz é uma classe herdada do CArrayObj.

class CCustomClass : public CArrayObj
{
}




CCustomClass obj1;
CCustomClass obj2;
...

CArrayObj objects_array;
objects_array.Add(obj1); 
Bem, jura na última linha - a conversão de parâmetros não é permitida.
 
objects_array.Add(GetPointer(obj1)); 
Está a funcionar, não vi que não tinha um ponteiro.
 
TaywinLannister:

Caros membros do fórum, por favor, ajudem!!!

Quero atribuir uma etapa de preço a uma variável:

int V=SymbolInfoInteger(Symb,SYMBOL_POINT);

erro: 'SymbolInfoInteger' - nenhuma das sobrecargas pode ser aplicada à chamada de função

Qual é novamente o meu erro?


int V=(int)SymbolInfoInteger(Symb,SYMBOL_POINT);

Por isso, experimente.

 
foreXteller:

Caros Membros do Fórum!

Por favor aconselhem!!!!

A janela do MetaTrader 5 mostra os valores Bid& Ask, que (tanto quanto sei) determinam o ganho/perda.

Contudo, quando tento usar citações minúsculas da história para testar a minha estratégia, estas citações não contêm os valores Bid e Ask, mas dão os valores " OPEN", "HIGH" "LOW", "CLOSE", "TICKVOL","VOL","SPREAD". Não é muito claro como fazer Bid e Ask a partir destes valores, bem como como calcular o spread.

Tudo é absolutamente claro. Descrever com mais detalhe o que se entende exactamente por "quando tento usar citações de história minuciosas"? O que está a fazer ou quer fazer exactamente?

 
TaywinLannister:

Caros membros do fórum, por favor, ajudem!!!

Quero atribuir uma variável à etapa de preço:

int V=SymbolInfoInteger(Symb,SYMBOL_POINT);

erro: 'SymbolInfoInteger' - nenhuma das sobrecargas pode ser aplicada à chamada de função

Qual é o meu erro outra vez?


SymbolInfoInteger ajuda:

1. Devolve directamente o valor do imóvel.

long  SymbolInfoInteger( 
   string                    name,      // символ 
   ENUM_SYMBOL_INFO_INTEGER  prop_id    // идентификатор свойства 
   );

2. Devolve verdadeiro ou falso, dependendo do sucesso da função. Se for bem sucedido, o valor do bem é colocado na variável de destino passada por referência pelo último parâmetro.

bool  SymbolInfoInteger( 
   string                    name,      // символ 
   ENUM_SYMBOL_INFO_INTEGER  prop_id,   // идентификатор свойства 
   long&                     long_var   // сюда примем значение свойства 
   );


Isto é OR longo OR bool.

 
TaywinLannister:

Caros membros do fórum, por favor, ajudem!!!

Quero atribuir uma etapa de preço a uma variável:

int V=SymbolInfoInteger(Symb,SYMBOL_POINT);

erro: 'SymbolInfoInteger' - nenhuma das sobrecargas pode ser aplicada à chamada de função

Qual é novamente o meu erro?


double V=SymbolInfoDouble(Symb,SYMBOL_POINT);

O ponto é um valor do tipo duplo. Quando recebido como int, terá um valor zero.

 
Vladimir Karputov:

SymbolInfoInteger Ajuda:

1. Devolve directamente o valor do imóvel.

2. Devolve verdadeiro ou falso, dependendo do sucesso da função. Se for bem sucedido, o valor do bem é colocado na variável de destino passada por referência pelo último parâmetro.


Isto é OR longo OR bool.

Já está, obrigado)

 
#property copyright "Copyright 2018, Sergey S Morozov"
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict

//#property indicator_separate_window    // Индик. рисуется в новом окне
#property indicator_chart_window    // Индик. рисуется в основном окне

#property indicator_buffers 1       // Количество буферов
#property indicator_color1 Red     // Цвет первой линии

extern int History  =50;            // Колич.баров в расчётной истории
extern int Aver_Bars=5;             // Количество баров для расчёта

double ArrayBuff[];

//----------------------------------------------------------------------------------------------------

int OnInit()
{
   SetIndexBuffer(0,ArrayBuff);
   SetIndexStyle (0,DRAW_LINE,STYLE_SOLID,1);
   return(INIT_SUCCEEDED);
}

int OnCalculate(

                const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])

  {

      int i,                           // Индекс бара
      n,                               // Формальный параметр
      Counted_bars;                    // Количество просчитанных баров 
      double
      Sum_H,                           // Сумма значений High за переиод
      Sum_L;                           // Сумма значений Low  за переиод
   //--------------------------------------------------------------------
      Counted_bars=IndicatorCounted(); // Количество просчитанных баров
      i=Bars-Counted_bars-1;           // Индекс первого непосчитанного
      if (i>History-1)                 // Если много баров то ..
         i=History-1;                  // ..рассчитывать заданное колич.
      while(i>=0)                      // Цикл по непосчитанным барам
        {
         Sum_H=0;                      // Обнуление в начале цикла
         Sum_L=0;                      // Обнуление в начале цикла
         for(n=i;n<=i+Aver_Bars-1;n++) // Цикл суммирования значений
           {
            Sum_H=Sum_H + High[n];     // Накопление суммы макс.значений
            Sum_L=Sum_L + Low[n];      // Накопление суммы мин. значений
           }
         ArrayBuff[i]=(Sum_H-Sum_L)/Aver_Bars;  // Знач. 0 буфера на i-ом баре
         i--;                                   // Расчёт индекса следующего бара
        }

   return(rates_total);

  }
//+------------------------------------------------------------------+

Comecei agora, ainda não sei como escrever nesta língua. Mas o problema é - se numa nova janela, o gráfico aparece. Mas não o posso exibir no actual... Qual é o meu erro? Considerando que eu próprio não consegui escrevê-lo e não consigo encontrar exemplos aqui. Mais ainda, não é claramente através de uma função como SetChartData(ponto1,ponto2); apenas acontece por si só...

E a variável parece estar definida(janela_cartão_de_indicador), mas mesmo assim não funciona....

Открой новые возможности в MetaTrader 5 с сообществом и сервисами MQL5
Открой новые возможности в MetaTrader 5 с сообществом и сервисами MQL5
  • www.mql5.com
Задавайте вопросы по техническому анализу, обсуждайте торговые системы и улучшайте свои навыки программирования торговых стратегий на языке MQL5. Общайтесь и обменивайтесь опытом на форуме с трейдерами всего мира и помогайте ответами новичкам — наше сообщество развивается вместе с вами. Как прописать расписание торговли робота? Здравствуйте...
 
Vladimir Karputov:

Absolutamente tudo está disponível. Descrever com mais detalhe o que se entende exactamente por "quando tento usar citações de história minuciosas"? O que está a fazer ou quer fazer exactamente?

Para descarregar as citações do histórico carregar MetaTrader 5, clique no ícone com o símbolo dólar: "Symbol List Display" (ou pode pressionar Ctrl U). A janela "Símbolos" irá aparecer. No separador "ESPECIFICAÇÃO" encontrar o par de moedas desejado, por exemplo GBPCHF. No separador "BARs" definir as cotações de minutos (M1) e as datas do início e do fim do período requerido. Após clicar no botão "REQUEST", será descarregado um ficheiro csv, que pode ser utilizado para testar estratégias com o Metatrader ou com os seus próprios programas.

Utilizando o EXCEL pode ver o conteúdo deste ficheiro, onde a primeira linha revela a informação no ficheiro, ou seja "data, hora" e depois" OPEN", "HIGH" "LOW", "CLOSE", "TICKVOL", "VOL", "SPREAD"

Sei exactamente o que estes dados significam, mas como fazer BIT e ASK a partir destes dados, que MetaTrader 5 utiliza?

 
Por favor informe-me onde em mt5 pode verificar informações sobre um símbolo? Lembro-me que no mt 4 se podia verificar no testador de estratégia, mas no testador mt5 ainda não encontrei esta função.