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

 
sandex:

Declarar a matriz como estática, de tamanho 1:

Uma linha aparece após a compilação, que é a mesma que nesta e na última versão. Aqui está o código completo:

#property copyright ""
#property link      ""
#property version   "1.00"
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_plots   2
#property  indicator_type1   DRAW_LINE
#property  indicator_color1  clrMediumVioletRed
#property  indicator_style1  STYLE_SOLID
#property  indicator_label1  ""
#property  indicator_type2   DRAW_LINE
#property  indicator_color2  clrRed
#property  indicator_style2  STYLE_SOLID
#property  indicator_label2  "Sell TP"
input int Period_ = 34;         //Период
int ma1Handle;
double ma1Val[1];
double ExtMapBuffer1[];
double ExtMapBuffer2[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {   
SetIndexBuffer(0,ExtMapBuffer1,INDICATOR_DATA);
SetIndexBuffer(1,ExtMapBuffer2,INDICATOR_DATA);
ma1Handle=iMA(_Symbol,_Period,Period_,0,MODE_EMA,PRICE_CLOSE); 
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
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[])
  {
ArraySetAsSeries(ma1Val,true);
int bars=Bars(_Symbol,_Period);
for(int i=0;i<bars;i++)
    {
    CopyBuffer(ma1Handle,0,i,1,ma1Val);
    ExtMapBuffer2[i]=ma1Val[0] - ((ma1Val[0]/100)*0.3);//ЗДЕСЬ НЕ ПОЛУЧАЕТСЯ ПОЛУЧИТЬ ЛИНИЮ
    }
   return(rates_total);
  }
//+------------------------------------------------------------------+
 
Código de trabalho.
Arquivos anexados:
Ind.mq5  3 kb
 

Olá.

Decidi aprender MQL5, li artigos sobre como gerar EAs no MetaEditor, tudo é claro, mas como fazer indicadores que fazem parte de EAs para negociar pelas vossas regras, por exemplo o indicador CCI faz coisas de que não preciso, como fazer uma ordem de compra abrir no cruzamento 100 e fechá-la no cruzamento 100 do fundo para o fundo, o mesmo para vender. Já há algum tempo que também trabalho nisto e não sei como o fazer.

 
vitan06:

Olá.

Decidi aprender MQL5, li artigos sobre como gerar EAs no MetaEditor, tudo é claro, mas como fazer indicadores que fazem parte de EAs para negociar segundo as vossas regras, por exemplo o indicador CCI faz coisas de que não preciso, como fazer uma ordem de compra abrir no cruzamento 100 e fechá-la no cruzamento 100 do fundo para o fundo, o mesmo para vender. Já há algum tempo que também trabalho nisto e não sei como o fazer.

Tenho uma pergunta distraída. Como se utiliza a MQL4?
 
de maneira nenhuma
 
sandex:
Código de trabalho.
Obrigado! Funciona!!!
 
vitan06:
de maneira nenhuma

depois esquecer em segurança o gerador de códigos.

Abrir um exemplo padrão a partir da entrega de MA ou MACD

Alterar o indicador para CCI

e vá

 

Olá!

Desculpem a pergunta estúpida, na minha opinião:

Escrevi uma EA no mql5, carreguei-a correctamente, testei-a, experimentei-a numa demonstração no meu portátil doméstico e agora a demonstração está a correr no VPS.

Desinstalei-o do meu portátil. Afinou algo na fonte no VPS.

Tentou carregar do VPS para o portátil - não o vê MQL5!!! W7 Explorer tem-no onde deveria estar, mas a MQL5 não o tem.

Metaeditor através de Open file finds, edits e saves.

Quando tento compilá-lo, o erro não pode criar interface do compilador MQL na primeira linha. O que é este erro?

O que é que eu faço?

 

Poderia aconselhar como obter o preço actual no código indicador e compará-lo com outro indicador para traçar uma linha?

Recebo o preço actual no Expert Advisor:

MqlTick latest_price;       
double iclose=latest_price.bid;
Mas como é que o obtenho no indicador?
 
forexman77:

Poderia aconselhar como obter o preço actual no código indicador e compará-lo com outro indicador para traçar uma linha?

Na EA, recebo o preço actual da seguinte forma:

Mas como é que o obtenho no indicador?
Veja no código do indicador, função OnCalculate().
Razão: