Como listar todas as opções em negociação de um ativo(symbol)?

Para adicionar comentários, por favor Faça o login ou registrar
ThadeuMelo
29
ThadeuMelo  

Olá.

Gostaria de saber se é possivel pegar uma lista de todas as opções (simbolos) disponiveis para negociação de uma ação.

Eu gostaria de usar essa lista na programação de um robô em mql5.

Estou usando a plataforma de testes da XP para a Bovespa.

Trader_Patinhas
335
Trader_Patinhas  

Olá Thadeu,

Segue um script que eu construí para listar todas as opções de um ativo escolhido e suas principais propriedades:

#define UNDERLYING_STOCK "PETR"   // ativo para a qual se deseja a lista de opcoes negociadas 

int OnStart(void)
{
   // Para cada ativo negociado no mercado ...
   
   for ( int i = 0 ; i < SymbolsTotal(false) ; i++ )
   {
      // Obtem o ticker do ativo
       
      string  symbolName = SymbolName(i,false);
      
      // Se os 4 primeiros caracteres do ticker corresponderem ao ativo subjacente desejado
      // e o ativo for uma opcao (valor do strike diferente de zero),
      // imprime informacoes da opcao
      
      if ( StringSubstr(symbolName,0,4) == UNDERLYING_STOCK && SymbolInfoDouble(symbolName,SYMBOL_OPTION_STRIKE) > 0 ) 
      {
         PrintFormat
         (
            "%10s - %4s  Vencimento: %s  Strike: %5.2f  Tipo: %s  Descricao: <%s>" , 
            symbolName ,
            StringSubstr ( EnumToString ( (ENUM_SYMBOL_OPTION_RIGHT) SymbolInfoInteger ( symbolName , SYMBOL_OPTION_RIGHT ) ) , 20 ),
            TimeToString ( SymbolInfoInteger ( symbolName , SYMBOL_EXPIRATION_TIME ), TIME_DATE ), 
            SymbolInfoDouble  ( symbolName , SYMBOL_OPTION_STRIKE ),
            StringSubstr ( EnumToString ( (ENUM_SYMBOL_OPTION_MODE) SymbolInfoInteger ( symbolName , SYMBOL_OPTION_MODE ) ) , 19 ),
            SymbolInfoString  ( symbolName , SYMBOL_DESCRIPTION )
         );
      }
   }
   
   return(0);
}

Na corretora Modalmais, que costuma preencher corretamente todas as propriedades das opções, o script imprime o resultado no terminal assim (abaixo apenas um trecho da resposta, pois para a PETR4 são centenas de opções):

 PETRV17 -  PUT  Vencimento: 2018.10.16  Strike: 16.96  Tipo: EUROPEAN  Descricao: <PETRE FM    PN   16,96>
PETRC267 - CALL  Vencimento: 2019.03.19  Strike: 26.71  Tipo: EUROPEAN  Descricao: <PETRE       PN   26,71>
PETRC277 - CALL  Vencimento: 2018.03.20  Strike: 27.75  Tipo: EUROPEAN  Descricao: <PETRE       PN   27,75>
PETRC262 - CALL  Vencimento: 2018.03.20  Strike: 26.25  Tipo: EUROPEAN  Descricao: <PETRE       PN   26,25>
 PETRD26 - CALL  Vencimento: 2018.04.17  Strike: 26.00  Tipo: AMERICAN  Descricao: <PETR        PN   26,00>
 PETRE27 - CALL  Vencimento: 2018.05.22  Strike: 27.00  Tipo: AMERICAN  Descricao: <PETR        PN   27,00>
PETRC265 - CALL  Vencimento: 2018.03.20  Strike: 26.50  Tipo: AMERICAN  Descricao: <PETR        PN   26,50>
PETRE195 - CALL  Vencimento: 2018.05.22  Strike: 19.50  Tipo: AMERICAN  Descricao: <PETR        PN   19,50>
 PETRE26 - CALL  Vencimento: 2018.05.22  Strike: 26.00  Tipo: AMERICAN  Descricao: <PETR        PN   26,00>
etc...

O problema é que nem todas as corretoras preenchem corretamente as propriedades das opções. Se for este o caso da sua corretora, vc vai ter que ter algum "jogo de cintura" (obter o strike analisando a descrição, obter o vencimento com base na quinta letra do ticker, etc.).

obs: se a sua corretora não preencher nem o strike, vc vai ter que mexer no código para eliminar o filtro que seleciona somente ativos com strike maior que zero, senão não vai aparecer nada. Nesse caso, podem aparecer na lista outros tipos derivativos da ação que não sejam opções e vc vai ter que ter mais "jogo de cintura" ainda pra filtrar (por exemplo: descartar os tickers cujo ultimo caracter não for numérico.

Espero ter ajudado.

Abraços 

ThadeuMelo
29
ThadeuMelo  

Patinhas, eu fiz uma "gambiarra" quase igual à sua.

Infelizmente a XP não coloca o Strike Price. Então eu tenho que ler pela descrição.


Obrigado de qualquer forma.

Trader_Patinhas
335
Trader_Patinhas  

Pra conseguir o strike na XP tem que pegar a string da descrição e procurar a vírgula. Daí pega uma substring de 5 caracteres começando 2 caracteres antes da vírgula e transforma pra numérico.

Abraços 

Drmqlbrazil5
52
Drmqlbrazil5  

Boa noite pessoal,

Na Clear, conta de negociação, testei agora à noite e também não coloca o strike. Já consegui obter através da descrição, mas ao parecer, o código acima só retorna as opções de Compra e só as de tipo Europeias (alguém saberia por que?).

Com PETR e VALE a Caixa de Ferramentas (a impresão) "enche" de opções daqueles tipos. Com ITSA imprimiu 326 linhas, também daquelas. Estou colocando as primeiras 100, para alguém comparar e identificar se há algo errado no código:

   ITSAA40 - CALL  Vencimento: 2019.01.21  Strike:  7.34  Tipo: EUROPEAN  Descricao: <ITSA        PN    7,34>
   ITSAB74 - CALL  Vencimento: 2019.02.18  Strike: 12.71  Tipo: EUROPEAN  Descricao: <ITSAE       PN   12,71>
   ITSAE87 - CALL  Vencimento: 2019.05.20  Strike:  7.90  Tipo: EUROPEAN  Descricao: <ITSAE       PN    7,90>
   ITSAM40 - CALL  Vencimento: 2019.01.21  Strike:  7.34  Tipo: EUROPEAN  Descricao: <ITSAE       PN    7,34>
   ITSAN74 - CALL  Vencimento: 2019.02.18  Strike: 12.71  Tipo: EUROPEAN  Descricao: <ITSAE       PN   12,71>
   ITSAQ87 - CALL  Vencimento: 2019.05.20  Strike:  7.90  Tipo: EUROPEAN  Descricao: <ITSAE       PN    7,90>
    ITSAH2 - CALL  Vencimento: 2018.08.20  Strike:  8.41  Tipo: EUROPEAN  Descricao: <ITSAE       PN    8,41>
    ITSAH3 - CALL  Vencimento: 2018.08.20  Strike:  8.86  Tipo: EUROPEAN  Descricao: <ITSAE       PN    8,86>
    ITSAH4 - CALL  Vencimento: 2018.08.20  Strike:  6.64  Tipo: EUROPEAN  Descricao: <ITSAE       PN    6,64>
    ITSAT2 - CALL  Vencimento: 2018.08.20  Strike:  8.41  Tipo: EUROPEAN  Descricao: <ITSAE       PN    8,41>
    ITSAT3 - CALL  Vencimento: 2018.08.20  Strike:  8.86  Tipo: EUROPEAN  Descricao: <ITSAE       PN    8,86>
    ITSAT4 - CALL  Vencimento: 2018.08.20  Strike:  6.64  Tipo: EUROPEAN  Descricao: <ITSAE       PN    6,64>
   ITSAH96 - CALL  Vencimento: 2018.08.20  Strike:  8.77  Tipo: EUROPEAN  Descricao: <ITSA        PN    8,77>
   ITSAT96 - CALL  Vencimento: 2018.08.20  Strike:  8.77  Tipo: EUROPEAN  Descricao: <ITSAE       PN    8,77>
   ITSAH94 - CALL  Vencimento: 2018.08.20  Strike:  8.59  Tipo: EUROPEAN  Descricao: <ITSA        PN    8,59>
   ITSAT94 - CALL  Vencimento: 2018.08.20  Strike:  8.59  Tipo: EUROPEAN  Descricao: <ITSAE       PN    8,59>
   ITSAH81 - CALL  Vencimento: 2018.08.20  Strike:  6.45  Tipo: EUROPEAN  Descricao: <ITSAE       PN    6,45>
   ITSAH87 - CALL  Vencimento: 2018.08.20  Strike:  7.00  Tipo: EUROPEAN  Descricao: <ITSAE       PN    7,00>
   ITSAH99 - CALL  Vencimento: 2018.08.20  Strike:  8.09  Tipo: EUROPEAN  Descricao: <ITSAE       PN    8,09>
   ITSAT81 - CALL  Vencimento: 2018.08.20  Strike:  6.45  Tipo: EUROPEAN  Descricao: <ITSAE       PN    6,45>
   ITSAT87 - CALL  Vencimento: 2018.08.20  Strike:  7.00  Tipo: EUROPEAN  Descricao: <ITSAE       PN    7,00>
   ITSAT99 - CALL  Vencimento: 2018.08.20  Strike:  8.09  Tipo: EUROPEAN  Descricao: <ITSAE       PN    8,09>
   ITSAH49 - CALL  Vencimento: 2018.08.20  Strike:  7.18  Tipo: EUROPEAN  Descricao: <ITSAE       PN    7,18>
   ITSAH97 - CALL  Vencimento: 2018.08.20  Strike:  7.91  Tipo: EUROPEAN  Descricao: <ITSAE       PN    7,91>
   ITSAT49 - CALL  Vencimento: 2018.08.20  Strike:  7.18  Tipo: EUROPEAN  Descricao: <ITSAE       PN    7,18>
   ITSAT97 - CALL  Vencimento: 2018.08.20  Strike:  7.91  Tipo: EUROPEAN  Descricao: <ITSAE       PN    7,91>
   ITSAH21 - CALL  Vencimento: 2018.08.20  Strike:  9.32  Tipo: EUROPEAN  Descricao: <ITSAE       PN    9,32>
   ITSAH31 - CALL  Vencimento: 2018.08.20  Strike:  9.77  Tipo: EUROPEAN  Descricao: <ITSAE       PN    9,77>
   ITSAH35 - CALL  Vencimento: 2018.08.20  Strike:  6.82  Tipo: EUROPEAN  Descricao: <ITSAE       PN    6,82>
   ITSAH39 - CALL  Vencimento: 2018.08.20  Strike:  7.27  Tipo: EUROPEAN  Descricao: <ITSA        PN    7,27>
   ITSAT21 - CALL  Vencimento: 2018.08.20  Strike:  9.32  Tipo: EUROPEAN  Descricao: <ITSAE       PN    9,32>
   ITSAT31 - CALL  Vencimento: 2018.08.20  Strike:  9.77  Tipo: EUROPEAN  Descricao: <ITSAE FM    PN    9,77>
   ITSAT35 - CALL  Vencimento: 2018.08.20  Strike:  6.82  Tipo: EUROPEAN  Descricao: <ITSAE       PN    6,82>
   ITSAT39 - CALL  Vencimento: 2018.08.20  Strike:  7.27  Tipo: EUROPEAN  Descricao: <ITSAE       PN    7,27>
   ITSAH38 - CALL  Vencimento: 2018.08.20  Strike:  7.09  Tipo: EUROPEAN  Descricao: <ITSA        PN    7,09>
   ITSAT38 - CALL  Vencimento: 2018.08.20  Strike:  7.09  Tipo: EUROPEAN  Descricao: <ITSAE       PN    7,09>
   ITSAI19 - CALL  Vencimento: 2018.09.17  Strike:  7.64  Tipo: EUROPEAN  Descricao: <ITSA        PN    7,64>
   ITSAI21 - CALL  Vencimento: 2018.09.17  Strike:  9.32  Tipo: EUROPEAN  Descricao: <ITSAE       PN    9,32>
   ITSAU19 - CALL  Vencimento: 2018.09.17  Strike:  7.64  Tipo: EUROPEAN  Descricao: <ITSAE       PN    7,64>
   ITSAU21 - CALL  Vencimento: 2018.09.17  Strike:  9.32  Tipo: EUROPEAN  Descricao: <ITSAE       PN    9,32>
   ITSAH11 - CALL  Vencimento: 2018.08.20  Strike:  9.09  Tipo: EUROPEAN  Descricao: <ITSA        PN    9,09>
   ITSAH37 - CALL  Vencimento: 2018.08.20  Strike:  6.18  Tipo: EUROPEAN  Descricao: <ITSA        PN    6,18>
   ITSAH42 - CALL  Vencimento: 2018.08.20  Strike:  7.45  Tipo: EUROPEAN  Descricao: <ITSA        PN    7,45>
   ITSAT11 - CALL  Vencimento: 2018.08.20  Strike:  9.09  Tipo: EUROPEAN  Descricao: <ITSAE       PN    9,09>
   ITSAT37 - CALL  Vencimento: 2018.08.20  Strike:  6.18  Tipo: EUROPEAN  Descricao: <ITSAE       PN    6,18>
   ITSAT42 - CALL  Vencimento: 2018.08.20  Strike:  7.45  Tipo: EUROPEAN  Descricao: <ITSAE       PN    7,45>
   ITSAI28 - CALL  Vencimento: 2018.09.17  Strike:  7.18  Tipo: EUROPEAN  Descricao: <ITSAE       PN    7,18>
   ITSAI38 - CALL  Vencimento: 2018.09.17  Strike:  8.09  Tipo: EUROPEAN  Descricao: <ITSAE       PN    8,09>
   ITSAI51 - CALL  Vencimento: 2018.09.17  Strike:  9.77  Tipo: EUROPEAN  Descricao: <ITSAE       PN    9,77>
   ITSAU28 - CALL  Vencimento: 2018.09.17  Strike:  7.18  Tipo: EUROPEAN  Descricao: <ITSAE       PN    7,18>
   ITSAU38 - CALL  Vencimento: 2018.09.17  Strike:  8.09  Tipo: EUROPEAN  Descricao: <ITSAE       PN    8,09>
   ITSAU51 - CALL  Vencimento: 2018.09.17  Strike:  9.77  Tipo: EUROPEAN  Descricao: <ITSAE FM    PN    9,77>
   ITSAI45 - CALL  Vencimento: 2018.09.17  Strike:  7.82  Tipo: EUROPEAN  Descricao: <ITSA        PN    7,82>
   ITSAU45 - CALL  Vencimento: 2018.09.17  Strike:  7.82  Tipo: EUROPEAN  Descricao: <ITSAE       PN    7,82>
   ITSAJ37 - CALL  Vencimento: 2018.10.15  Strike:  7.06  Tipo: EUROPEAN  Descricao: <ITSAE       PN    7,06>
   ITSAV37 - CALL  Vencimento: 2018.10.15  Strike:  7.06  Tipo: EUROPEAN  Descricao: <ITSAE       PN    7,06>
   ITSAI10 - CALL  Vencimento: 2018.09.17  Strike:  8.50  Tipo: EUROPEAN  Descricao: <ITSA        PN    8,50>
   ITSAI17 - CALL  Vencimento: 2018.09.17  Strike:  8.00  Tipo: EUROPEAN  Descricao: <ITSA        PN    8,00>
   ITSAI52 - CALL  Vencimento: 2018.09.17  Strike: 10.23  Tipo: EUROPEAN  Descricao: <ITSAE       PN   10,23>
   ITSAU10 - CALL  Vencimento: 2018.09.17  Strike:  8.50  Tipo: EUROPEAN  Descricao: <ITSAE       PN    8,50>
   ITSAU17 - CALL  Vencimento: 2018.09.17  Strike:  8.00  Tipo: EUROPEAN  Descricao: <ITSAE       PN    8,00>
   ITSAU52 - CALL  Vencimento: 2018.09.17  Strike: 10.23  Tipo: EUROPEAN  Descricao: <ITSAE       PN   10,23>
   ITSAI29 - CALL  Vencimento: 2018.09.17  Strike:  8.18  Tipo: EUROPEAN  Descricao: <ITSA        PN    8,18>
   ITSAI89 - CALL  Vencimento: 2018.09.17  Strike:  7.27  Tipo: EUROPEAN  Descricao: <ITSA        PN    7,27>
   ITSAU29 - CALL  Vencimento: 2018.09.17  Strike:  8.18  Tipo: EUROPEAN  Descricao: <ITSAE       PN    8,18>
   ITSAU89 - CALL  Vencimento: 2018.09.17  Strike:  7.27  Tipo: EUROPEAN  Descricao: <ITSAE       PN    7,27>
   ITSAI11 - CALL  Vencimento: 2018.09.17  Strike: 10.91  Tipo: EUROPEAN  Descricao: <ITSA  FM    PN   10,91>
    ITSAI3 - CALL  Vencimento: 2018.09.17  Strike:  7.36  Tipo: EUROPEAN  Descricao: <ITSAE       PN    7,36>
    ITSAI6 - CALL  Vencimento: 2018.09.17  Strike:  8.27  Tipo: EUROPEAN  Descricao: <ITSAE       PN    8,27>
   ITSAU11 - CALL  Vencimento: 2018.09.17  Strike: 10.91  Tipo: EUROPEAN  Descricao: <ITSAE       PN   10,91>
    ITSAU3 - CALL  Vencimento: 2018.09.17  Strike:  7.36  Tipo: EUROPEAN  Descricao: <ITSAE       PN    7,36>
    ITSAU6 - CALL  Vencimento: 2018.09.17  Strike:  8.27  Tipo: EUROPEAN  Descricao: <ITSAE       PN    8,27>
   ITSAJ82 - CALL  Vencimento: 2018.10.15  Strike:  6.70  Tipo: EUROPEAN  Descricao: <ITSAE       PN    6,70>
   ITSAV82 - CALL  Vencimento: 2018.10.15  Strike:  6.70  Tipo: EUROPEAN  Descricao: <ITSAE       PN    6,70>
   ITSAI63 - CALL  Vencimento: 2018.09.17  Strike:  4.91  Tipo: EUROPEAN  Descricao: <ITSA        PN    4,91>
   ITSAI78 - CALL  Vencimento: 2018.09.17  Strike:  6.27  Tipo: EUROPEAN  Descricao: <ITSAE       PN    6,27>
   ITSAU63 - CALL  Vencimento: 2018.09.17  Strike:  4.91  Tipo: EUROPEAN  Descricao: <ITSAE       PN    4,91>
   ITSAU78 - CALL  Vencimento: 2018.09.17  Strike:  6.27  Tipo: EUROPEAN  Descricao: <ITSAE       PN    6,27>
   ITSAI12 - CALL  Vencimento: 2018.09.17  Strike:  7.73  Tipo: EUROPEAN  Descricao: <ITSAE       PN    7,73>
   ITSAI13 - CALL  Vencimento: 2018.09.17  Strike:  8.95  Tipo: EUROPEAN  Descricao: <ITSA        PN    8,95>
   ITSAI15 - CALL  Vencimento: 2018.09.17  Strike: 10.45  Tipo: EUROPEAN  Descricao: <ITSA  FM    PN   10,45>
   ITSAU12 - CALL  Vencimento: 2018.09.17  Strike:  7.73  Tipo: EUROPEAN  Descricao: <ITSAE       PN    7,73>
   ITSAU13 - CALL  Vencimento: 2018.09.17  Strike:  8.95  Tipo: EUROPEAN  Descricao: <ITSAE       PN    8,95>
   ITSAU15 - CALL  Vencimento: 2018.09.17  Strike: 10.45  Tipo: EUROPEAN  Descricao: <ITSAE FM    PN   10,45>
   ITSAH41 - CALL  Vencimento: 2018.08.20  Strike: 10.00  Tipo: EUROPEAN  Descricao: <ITSA  FM    PN   10,00>
   ITSAT41 - CALL  Vencimento: 2018.08.20  Strike: 10.00  Tipo: EUROPEAN  Descricao: <ITSAE FM    PN   10,00>
   ITSAK11 - CALL  Vencimento: 2018.11.19  Strike:  9.16  Tipo: EUROPEAN  Descricao: <ITSA        PN    9,16>
   ITSAK43 - CALL  Vencimento: 2018.11.19  Strike: 11.21  Tipo: EUROPEAN  Descricao: <ITSAE       PN   11,21>
   ITSAK98 - CALL  Vencimento: 2018.11.19  Strike:  8.07  Tipo: EUROPEAN  Descricao: <ITSA        PN    8,07>
    ITSAL1 - CALL  Vencimento: 2018.12.17  Strike:  8.48  Tipo: EUROPEAN  Descricao: <ITSAE       PN    8,48>
    ITSAL2 - CALL  Vencimento: 2018.12.17  Strike: 10.75  Tipo: EUROPEAN  Descricao: <ITSAE       PN   10,75>
   ITSAW11 - CALL  Vencimento: 2018.11.19  Strike:  9.16  Tipo: EUROPEAN  Descricao: <ITSAE       PN    9,16>
   ITSAW43 - CALL  Vencimento: 2018.11.19  Strike: 11.21  Tipo: EUROPEAN  Descricao: <ITSAE       PN   11,21>
   ITSAW98 - CALL  Vencimento: 2018.11.19  Strike:  8.07  Tipo: EUROPEAN  Descricao: <ITSAE       PN    8,07>
    ITSAX1 - CALL  Vencimento: 2018.12.17  Strike:  8.48  Tipo: EUROPEAN  Descricao: <ITSAE       PN    8,48>
    ITSAX2 - CALL  Vencimento: 2018.12.17  Strike: 10.75  Tipo: EUROPEAN  Descricao: <ITSAE       PN   10,75>
    ITSAJ1 - CALL  Vencimento: 2018.10.15  Strike:  8.06  Tipo: EUROPEAN  Descricao: <ITSA        PN    8,06>
    ITSAJ4 - CALL  Vencimento: 2018.10.15  Strike:  9.15  Tipo: EUROPEAN  Descricao: <ITSA        PN    9,15>
    ITSAJ5 - CALL  Vencimento: 2018.10.15  Strike: 10.74  Tipo: EUROPEAN  Descricao: <ITSAE       PN   10,74>
    ITSAV1 - CALL  Vencimento: 2018.10.15  Strike:  8.06  Tipo: EUROPEAN  Descricao: <ITSAE       PN    8,06>
Trader_Patinhas
335
Trader_Patinhas  
Drmqlbrazil5:

Boa noite pessoal,

Na Clear, conta de negociação, testei agora à noite e também não coloca o strike. Já consegui obter através da descrição, mas ao parecer, o código acima só retorna as opções de Compra e só as de tipo Europeias (alguém saberia por que?).

Com PETR e VALE a Caixa de Ferramentas (a impresão) "enche" de opções daqueles tipos. Com ITSA imprimiu 326 linhas, também daquelas. Estou colocando as primeiras 100, para alguém comparar e identificar se há algo errado no código:

Olá @Drmqlbrazil5

O problema aí é que a Clear não está preenchendo o atributo ENUM_SYMBOL_OPTION_RIGHT, que informa se é call ou put, e nem o atributo ENUM_SYMBOL_OPTION_MODE, que informa se é americana ou europeia. Por isso todas as opções estão sendo listadas como call europeia, que corresponde ao valor 0 desses dois atributos.

Executei o script na corretora Modalmais e colei abaixo o que aparece para as 4 primeiras opções da sua listagem:

ITSAA40 - CALL  Vencimento: 2019.01.22  Strike:  7.34  Tipo: AMERICAN  Descricao: <ITSA        PN    7,34>
ITSAB74 - CALL  Vencimento: 2019.02.19  Strike: 12.71  Tipo: EUROPEAN  Descricao: <ITSAE       PN   12,71>
ITSAE87 - CALL  Vencimento: 2019.05.21  Strike:  7.90  Tipo: EUROPEAN  Descricao: <ITSAE       PN    7,90>
ITSAM40 -  PUT  Vencimento: 2019.01.22  Strike:  7.34  Tipo: EUROPEAN  Descricao: <ITSAE       PN    7,34>

Repare que, na corretora Modalmais, o script informa corretamente que ITSA40 é do tipo americana e que ITSAM40 é uma put.

Felizmente, há uma forma simples de contornar esse problema:

  • Para saber se é call ou put, basta verificar a quinta letra do ticker da opção. Se for de "A" a "L" trata-se de uma call, se for de "M" a "X", trata-se de uma put (e as letras indicam os meses de vencimento, de janeiro a dezembro).

  • Para saber se é americana ou europeia, me parece, pelo que vejo na sua listagem, que a Clear insere uma letra "E" após o ticker do ativo-base no campo de descrição das opções europeias. Até onde pude conferir visualmente, em todas as opções europeias a descrição começa com "ITSAE", enquanto que nas americanas a descrição começa com "ITSA ". Então acredito que você pode verificar o quinto caracter da descrição: se for "E" é europeia e se for " " (espaço branco) é americana.  

Em tempo: na Clear os EAs só funcionam em conta demo, a Clear não roteia ordens de robôs do MT5 em conta real. Vc precisará mudar de corretora para operar em conta real.

Abraços

 
forgottenn
231
forgottenn  
Trader_Patinhas:

Olá @Drmqlbrazil5

O problema aí é que a Clear não está preenchendo o atributo ENUM_SYMBOL_OPTION_RIGHT, que informa se é call ou put, e nem o atributo ENUM_SYMBOL_OPTION_MODE, que informa se é americana ou europeia. Por isso todas as opções estão sendo listadas como call europeia, que corresponde ao valor 0 desses dois atributos.

Executei o script na corretora Modalmais e colei abaixo o que aparece para as 4 primeiras opções da sua listagem:

Repare que, na corretora Modalmais, o script informa corretamente que ITSA40 é do tipo americana e que ITSAM40 é uma put.

Felizmente, há uma forma simples de contornar esse problema:

  • Para saber se é call ou put, basta verificar a quinta letra do ticker da opção. Se for de "A" a "L" trata-se de uma call, se for de "M" a "X", trata-se de uma put (e as letras indicam os meses de vencimento, de janeiro a dezembro).

  • Para saber se é americana ou europeia, me parece, pelo que vejo na sua listagem, que a Clear insere uma letra "E" após o ticker do ativo-base no campo de descrição das opções europeias. Até onde pude conferir visualmente, em todas as opções europeias a descrição começa com "ITSAE", enquanto que nas americanas a descrição começa com "ITSA ". Então acredito que você pode verificar o quinto caracter da descrição: se for "E" é europeia e se for " " (espaço branco) é americana.  

Em tempo: na Clear os EAs só funcionam em conta demo, a Clear não roteia ordens de robôs do MT5 em conta real. Vc precisará mudar de corretora para operar em conta real.

Abraços

 
forgottenn
231
forgottenn  
Executei o script na Modal e o mesmo é removido imediatamente. O que eu fiz de errado? 
Trader_Patinhas
335
Trader_Patinhas  
forgottenn:
Executei o script na Modal e o mesmo é removido imediatamente. O que eu fiz de errado? 

É isso mesmo. Quando você executa o script ele aparece rapidamente no gráfico e some logo em seguida.

É que o script roda muito rápido e, ao contrário dos EAs, scripts são removidos automaticamente assim que terminam de rodar.

O resultado gerado pelo script (a listagem das opções) fica gravado na aba "Experts", na parte inferior da tela. 

souza.mlm
5
souza.mlm  

Olá, pessoal!


Parabéns pelo código, patinhas! (vc é o cara)

Rodei aqui na XP e apareceu certinho.


Abs

Para adicionar comentários, por favor Faça o login ou registrar