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
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
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>
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
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
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.
Olá, pessoal!
Parabéns pelo código, patinhas! (vc é o cara)
Rodei aqui na XP e apareceu certinho.
Abs
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
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso
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.