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

 
Top2n:


Obrigado! Se não se importa com outra pergunta, como é que isto divide uma matriz bidimensional em duas, a lógica quebra-se, não é verdade?

Se quiser dar uma matriz bidimensional a partir de um indicador, faça um amortecedor para cada dimensão da matriz.

Buffer 0 é a primeira dimensão, buffer 1 é a segunda dimensão.

E colocá-los na EA da forma habitual.

 
Artyom Trishkin:

Se quiser dar uma matriz bidimensional a partir de um indicador, faça um amortecedor para cada dimensão da matriz.

Buffer 0 é a primeira dimensão, buffer 1 é a segunda dimensão.

E levá-los para a EA da forma habitual.


Obrigado, mas se a dimensionalidade é 1000*1000, então não como.

Então, como se divide uma matriz bidimensional em duas?

Tenho um conjunto unidimensional de dados sobre cada barra

 
Top2n:


Obrigado, mas se a dimensionalidade for 1000*1000, então não há hipótese.

Então, como se divide uma matriz bidimensional em duas?

Tenho um conjunto unidimensional de dados sobre cada barra

Porque precisa de calcular tudo no indicador para o alimentar com o Expert Advisor? Basta calcular tudo no Expert Advisor - será mais fácil.
 
Artyom Trishkin:
Porque precisa de fazer cálculos num indicador e depois passá-los ao Consultor Especialista? Basta calcular tudo no Expert Advisor - será mais fácil.


Tenho uma classe que usa parâmetro&preço[]

OnCalculate(const int rates_total,
                const int prev_calculated,
                const int begin,
                const double &price[])
   sm.Solve(rates_total,prev_calculated,price);

Não consigo contornar isto na EA

 
Top2n:


Tenho uma classe que usa&preço[] como parâmetro

Não consigo contornar isto na EA

Leia atentamente a secção "Acesso a séries cronológicas e indicadores" da documentação e tudo se tornará claro.

Também pode usar"SymbolInfoTick" para obter preços em EAs.

Документация по MQL5: Доступ к таймсериям и индикаторам
Документация по MQL5: Доступ к таймсериям и индикаторам
  • www.mql5.com
Доступ к таймсериям и индикаторам - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 

Colegas, bom dia.

Li cerca de 20 tópicos MQL5 mas não encontrei uma resposta à seguinte pergunta: onde posso obter uma amostra de código de um simples Expert Advisor MQL5 para negociação automatizada FORTS?

Quanto mais simples for a EA, melhor. Quanto mais simples for a EA, melhor.

Já tenho um código de trabalho em MT5.


Trabalhei anteriormente com a Tranzac, a AmiBroker e alguns terminais informáticos. Nunca trabalhou com o MetaTrader 4 ou 5,

Mas agora a Jus2Trade (aparentemente é uma subsidiária da Finam) tem a MT5 com acesso a fortes e futuros americanos.

Quero experimentar no MT5, mas não consigo encontrar um exemplo adequado que funcione correctamente. Todos os exemplos são para forex.

Caros colegas, façam a ligação, por favor.

 
Alexey Viktorov:

Leia atentamente a secção "Acesso a séries cronológicas e indicadores" da documentação e verá tudo.

Também pode usar"SymbolInfoTick" para obter preços em EAs.


Não percebo.
 

Boas pessoas, aconselham como contornar estes parâmetros numa EA, não consigo descobrir como usar uma classe personalizada para um indicador numa EA

sm.Solve(rates_total,prev_calculated,price);

Informação: ao iniciar o indicador que utilizo SMA, aplicar ao HL/2

 
Top2n:

Boas pessoas, aconselham como contornar estes parâmetros numa EA, não consigo descobrir como usar uma classe personalizada para um indicador numa EA

Informação: Utilizo SMA no início do indicador, aplico a HL/2

Não preciso de taxas_totais ou pré_calculadas na minha EA. Pise nestas expressões incompreensíveis e prima F1, leia o que significam, talvez então se torne mais claro. Afinal, todas as acções têm de ser significativas. Como se pode fazer algo sem pensar no que se pensa que pode ou não funcionar? Como se pode usar algo sem compreender o que é?

Bem, imagine que, se quiser martelar um prego, tentará fazê-lo com um ancinho ou um microscópio sem compreender com o que está a lidar...

Se precisar dos valores do indicador iMA nas últimas 2-3 barras, pode obtê-los através de CopyBuffer por um cabo do indicador criado anteriormente. Aí mesmo, quando se cria um indicador e se obtém a sua pega

PREÇO_MEDIAN

O preço mediano, (alto+baixo)/2


E há um exemplo absolutamente claro na documentação.

Документация по MQL5: Технические индикаторы / iMA
Документация по MQL5: Технические индикаторы / iMA
  • www.mql5.com
Технические индикаторы / iMA - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Alexey Viktorov:

Não são necessárias taxas_totais nem pré_calculadas na EA. Pise nestas expressões incompreensíveis e prima F1, leia o que significam, talvez então se torne mais claro. Afinal de contas, todas as acções devem ser significativas. Como se pode fazer algo sem pensar no que se pensa que pode ou não funcionar? Como se pode usar algo sem compreender o que é?

Bem, imagine que, se quiser martelar um prego, tentará fazê-lo com um ancinho ou um microscópio sem compreender com o que está a lidar.

Se precisar dos valores do indicador iMA nas últimas 2-3 barras, pode obtê-los através de CopyBuffer por um cabo do indicador criado anteriormente. Aí mesmo, quando se cria um indicador e se obtém a sua pega

PREÇO_MEDIAN

O preço mediano, (alto+baixo)/2


E há um exemplo absolutamente claro na documentação.


Ok, eu exagerei com as duas primeiras taxas_total e a outra, mas em vez de prece ->&aData[]. deve integrar a classe, não os indicadores através de copybuff

a classe é

//+------------------------------------------------------------------+
void  CSMA_Greed::Solve(const int aRatesTotal,const int aPrevCalc,const double  &aData[])
  {
   rt=aRatesTotal; prv=aPrevCalc;
   for(int i=0;i<m_max_period;i++)ArrayResize(d[i].m,rt);
   chsma.Solve(rt,prv,aData,d[m_max_period-1].m);

   for(int i=prv>m_max_period?prv:m_max_period;i<rt;i++)
     {
      temp=d[m_max_period-1].m[i]*m_max_period;
      for(int j=m_max_period-2;j>=0;j--)
        {
         temp-=aData[i-(j+1)];
         d[j].m[i]=temp/(j+1);
        }
     }
  };