Filtrando Ativos

0 Views
0 Downloads
0 Favorites
Filtrando Ativos
ÿþ

void OnStart()

  {

   

   int totalAtivoMercado = SymbolsTotal(true);

   Print("quantidade de ativo na observação do mercado = ",totalAtivoMercado);

   

   

   int totalAtivosCorretora = SymbolsTotal(false);

   Print("total de ativos na corretora= ",totalAtivosCorretora);

   

   // varrer opções

   string ativoBase = "BBDC"; // 

   

   // array com nomes das opções

   string symbols[];

   

   // loop nos ativos

   for(int i=0;i<totalAtivosCorretora;i++)

     {

     

      string symbolName = SymbolName(i,false);

      

      // filtra pelo nome

      if( StringSubstr(symbolName,0,4)==ativoBase )

        {

         //

         int size = ArraySize(symbols);

         ArrayResize(symbols,size+1);

         symbols[size] = symbolName;

         

         // adicionar o ativo na Observação de Mercado

         SymbolSelect(symbolName,true);

        }      

     }

   

   //

   Print("Capturando informações...");

   Sleep(5000);

   

   //

   int size2 = ArraySize(symbols);

   for(int i=0;i<size2;i++)

     {

      ENUM_SYMBOL_OPTION_MODE optionMode = (ENUM_SYMBOL_OPTION_MODE)SymbolInfoInteger(symbols[i],SYMBOL_OPTION_MODE);

      ENUM_SYMBOL_OPTION_RIGHT optionRight = (ENUM_SYMBOL_OPTION_RIGHT)SymbolInfoInteger(symbols[i],SYMBOL_OPTION_RIGHT);

      

      // informações do tipo DOUBLE

      double bid = SymbolInfoDouble(symbols[i],SYMBOL_BID);

      double ask = SymbolInfoDouble(symbols[i],SYMBOL_ASK);

      

      // filtro básico de liquidez

      if(bid>0 || ask>0)

        {

         Print("Nome: ",symbols[i]," / Mode: ",EnumToString(optionMode)," / Right: ",EnumToString(optionRight)," / Bid: ",bid," / Ask: ",ask);

        }

      

      // remover o ativo da Observação de mercado

      SymbolSelect(symbols[i],false);

     }



  }

//+------------------------------------------------------------------+

Comments