Indicador Setup 9.1

 

Boa tarde, tudo bem?

Fiz um indicador que cria um arquivo excel quando o setup é formado.

Porém, ele trás o histórico de 10 anos atrás, o que não me interessa.

e ele também só no ativo que eu executo ele.

Existe alguma forma de ele só criar o arquivo caso, por exemplo, hoje tenha formado o setup, ai ele gera o arquivo e também de fazer com vários ativos, e não um por um?

Obs: não sou programador, talvez seja algo simples de fazer, mas não to conseguindo de jeito nenhum...

Att,

 
Victor Hugo:

Boa tarde, tudo bem?

Fiz um indicador que cria um arquivo excel quando o setup é formado.

Porém, ele trás o histórico de 10 anos atrás, o que não me interessa.

e ele também só no ativo que eu executo ele.

Existe alguma forma de ele só criar o arquivo caso, por exemplo, hoje tenha formado o setup, ai ele gera o arquivo e também de fazer com vários ativos, e não um por um?

Obs: não sou programador, talvez seja algo simples de fazer, mas não to conseguindo de jeito nenhum...

Att,

Se tiver rodando isso no testador de estrategia, tem como tu colocar lah pra executar em todos ativos do observador de mercado e dai tu configura o tempo do teste pro ultimo mes por exemplo...
Como testar um robô de negociação antes da compra
Como testar um robô de negociação antes da compra
  • www.mql5.com
A compra de um robô de negociação no Mercado MQL5 apresenta uma vantagem distinta em relação a todas as outras opções similares - um sistema automatizado oferecido pode ser inteiramente testado diretamente no terminal MetaTrader 5. Antes da compra, um Expert Advisor pode e deve ser cuidadosamente executado em todos os modos não favoráveis no...
 
Ricardo Rodrigues Lucca:
Se tiver rodando isso no testador de estrategia, tem como tu colocar lah pra executar em todos ativos do observador de mercado e dai tu configura o tempo do teste pro ultimo mes por exemplo...

Não, é um indicador mesmo, quando eu coloco ele no gráfico ele gera um arquivo, vou mostrar o código:

Mas eu queria que conseguir fazer isso com vários ativos e pegar só se o setup tivesse ativado...


//--- plot MME9
#property indicator_label1  "MME9"
#property indicator_type1   DRAW_LINE
#property indicator_color1  clrBlue
#property indicator_style1  STYLE_SOLID
#property indicator_width1  1
//--- plot ENTRADA
#property indicator_label2  "ENTRADA"
#property indicator_type2   DRAW_ARROW
#property indicator_color2  clrWhite
#property indicator_style2  STYLE_SOLID
#property indicator_width2  1
//--- plot STOP
#property indicator_label3  "STOP"
#property indicator_type3   DRAW_ARROW
#property indicator_color3  clrWhite
#property indicator_style3  STYLE_SOLID
#property indicator_width3  1
//--- indicator buffers
double         MME9Buffer[];
double         ENTRADABuffer[];
double         STOPBuffer[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   SetIndexBuffer(0,MME9Buffer,INDICATOR_DATA);
   SetIndexBuffer(1,ENTRADABuffer,INDICATOR_DATA);
   SetIndexBuffer(2,STOPBuffer,INDICATOR_DATA);
//--- setting a code from the Wingdings charset as the property of PLOT_ARROW
   PlotIndexSetInteger(1,PLOT_ARROW,233);
   PlotIndexSetInteger(2,PLOT_ARROW,233);
   
//---
   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[])
  {
//---
    int      fileHandle    = INVALID_HANDLE;
   string   fileName      = Symbol()+".csv";
   
   //--- Pasta comum endereço dos arquivos
   string files_address  =  TerminalInfoString(TERMINAL_DATA_PATH)+"\\MQL5\\Files\\";

   fileHandle = FileOpen(fileName,FILE_WRITE|FILE_CSV);
   
    FileWrite (fileHandle, "DATAS DE SETUP 9.1 ARMADOS NO HISTORICO DE 10 ANOS");
    FileWrite (fileHandle,"");
    




   CopyBuffer(iMA(_Symbol,_Period,9,0,MODE_EMA,PRICE_CLOSE),0,0,rates_total,MME9Buffer);
   
    for(int i=4; i<rates_total; i++)
  {
      ENTRADABuffer[i]=MME9Buffer[i]>MME9Buffer[i-1] && MME9Buffer[i-1]<=MME9Buffer[i-2] && MME9Buffer[i-2]<=MME9Buffer[i-3]  && MME9Buffer[i-3]<=MME9Buffer[i-4]     ? high[i] : 0; 
      STOPBuffer[i]=MME9Buffer[i]>MME9Buffer[i-1] && MME9Buffer[i-1]<=MME9Buffer[i-2]  && MME9Buffer[i-2]<=MME9Buffer[i-3]   && MME9Buffer[i-3]<=MME9Buffer[i-4]   ? low[i] : 0;
      

  }
  
   for(int i=4 ; i<rates_total; i++)
 //  for(int a = 0; a<total_ativos;a++)
   
   
   {  

   if (MME9Buffer[i]>MME9Buffer[i-1] && MME9Buffer[i-1]<=MME9Buffer[i-2] && MME9Buffer[i-2]<=MME9Buffer[i-3]  && MME9Buffer[i-3]<=MME9Buffer[i-4]) 

   FileWrite (fileHandle,_Symbol,time[i],high[i],low[i]);
            
              
   }
   
   FileClose (fileHandle);

  
  
  
  
  
 //{
// Print (ENTRADABuffer)
 //}
//  
     
//--- return value of prev_calculated for next call
   return(rates_total);
Razão: