Versão customizada por IQ Coding (YouTube)
- Adicionado função check_win_v3()
- Adicionado função check_win_v4()
Somente para opções!
- Adicionado get_option_open_by_other_pc()
- Adicionado get_digital_spot_profit_after_sale()
- Adicionado get_remaning()
- check_win_digital(Mensagem síncrona) e check_win_digital_v2(Mensagem assíncrona) concertados
Agora são implementados de maneira diferente
- Adicionado get_digital_position()
- Adicionado subscribe_top_assets_updated & popularity
- Adicionado reconnect() sample
- Adicionado get_async_order)
- fix get_positions()
- Adicionado get_optioninfo_v2()
--
Infelizmente a API não consegue trabalhar com contas que possuem verificação em duas etapas, será necessário você desativar a verificação em duas etapas para poder utilizar a APO
Caso ocorra erros com websocket, o mesmo deve ser desinstalado e reinstalado(0.56)!
pip uninstall websocket-client
pip install websocket-client==0.56
Este erro pode vir a acontecer caso você esteja usando Anaconda, por exemplo
pip uninstall websocket
pip install websocket-client==0.56.0
Desenvolvida em Python 3.7, você pode estar utilizando em "alto nivel" ou "baixo nivel", esta API pode trabalhar com Optções & Digital & Forex & Ações & Commodities & Crypto & ETFs;
# Alto Nivel
from iqoptionapi.stable_api import IQ_Option
# Baixo Nivel
from iqoptionapi.api import IQOptionAPI
.
├── docs
├── iqoptionapi(Código da API)
├── http(Realiza requisições HTTP GET/POST)
└── ws
├── chanels(Utiliza o WebSocket)
└── objects(Retorna as informações do WebSocket)
Para Python 3
pip3 install -U git+git://github.com/Lu-Yi-Hsun/iqoptionapi.git
Para Python 2
pip2 install -U git+git://github.com/Lu-Yi-Hsun/iqoptionapi.git
from iqoptionapi.stable_api import IQ_Option
Ligado
import logging
logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s')
Desligado
import logging
logging.disable(level=(logging.DEBUG))
from iqoptionapi.stable_api import IQ_Option
API = IQ_Option("email", "senha")
O valor padrão é 5, para evitar que sua conta e IP sejam banidos pela IQ por exceder o limite máximo de tentativas de conexão.
API.set_max_reconnect(number)
Caso ocorra algum erro e a conexão com a IQ seja perdida, você pode estar implementando isto
from iqoptionapi.stable_api import IQ_Option
import time
API = IQ_Option("email", "password")
API.set_max_reconnect(-1) # Valor negativo irá deixar o numero máximo de reconexões infinito(cuidado)!
while True:
if API.check_connect() == False: # Detecta se o WebSocket está conectado ou não
print("Conexao perdida, tentando reconectar..")
API.connect() # Realizando a conexão novamente
print("Reconectado com sucesso!")
time.sleep(1)
Função retorna True ou False
print(API.check_connect())
API.connect()
API.get_balance()
Função para resetar a conta de treinamento(depositar os 10k de testes)
from iqoptionapi.stable_api import IQ_Option
API = IQ_Option("email","password")
print(API.reset_practice_balance())
API.change_balance(TIPO)
#TIPO: "PRACTICE" ou "REAL"
ATENÇÃO: Tome cuidado, get_all_open_time() é pesado para a internet
- Função get_all_open_time() retorna um DICT
- "cfd" inclue ações,Commodities e ativos de ETFs
Verificar se esta aberto DICT["forex"/"cfd"/"crypto"/"digital"/"turbo"/"binary"][NOME DO ATIVO]["open"]
O retorno é em True ou False
from iqoptionapi.stable_api import IQ_Option
API = IQ_Option("email", "password")
ATIVOS = API.get_all_open_time()
#Checando se está aberto ou não
print(ATIVOS["forex"]["EURUSD"]["open"])
print(ATIVOS["cfd"]["FACEBOOK"]["open"]) #Ações,Commodities e ETFs
print(ATIVOS["crypto"]["BTCUSD-L"]["open"])
print(ATIVOS["digital"]["EURUSD-OTC"]["open"])
#Binarias tem dois modos diferentes: "turbo" e "binary"
print(ALL_Asset["turbo"]["EURUSD-OTC"]["open"])
print(ALL_Asset["binary"]["EURUSD-OTC"]["open"])
Caso você indicar um ativo inexistente, irá ser retornado apenas "{}" ou None
Para exibir todas os ativos
from iqoptionapi.stable_api import IQ_Option
API = IQ_Option("email", "password")
ATIVOS=API.get_all_open_time()
for tipo, data in ATIVOS.items():
for ativo_nome,value in data.items():
print(tipo,ativo_nome,value["open"])
print(API.get_all_ACTIVES_OPCODE())
Pegar informações sobre ordem/operação pelo ID
from iqoptionapi.stable_api import IQ_Option
import time
API = IQ_Option("email", "password")
PARIDADE = "EURUSD"
duracao = 1 #Tempo em minutos: 1 ou 5
entrada = 1
direcao = "call" #call ou put
print("__Para_Opções_Binarias__")
_,id = API.buy(entrada, PARIDADE, direcao, duracao)
while API.get_async_order(id)==None:
pass
print(API.get_async_order(id))
print("\n\n")
print("__Para_Opcoes_Digitais__")
id = API.buy_digital_spot(PARIDADE, entrada, direcao, duracao)
while API.get_async_order(id)==None:
pass
order_data = API.get_async_order(id)
print(API.get_async_order(id))
print("\n\n")
Por enquanto, só está disponivel para binario
Exemplo
from iqoptionapi.stable_api import IQ_Option
API = IQ_Option("email", "password")
Paridade = "EURUSD"
API.start_mood_stream(Paridade)
print(API.get_traders_mood(Paridade))
API.stop_mood_stream(Paridade)
Exibir/pegar a porcentagem de call, se você quiser saber a porcentagem de put, basta fazer 100-humor_call
API.get_traders_mood(Paridade)
# Retorno: Sera do tipo float que representa em porcentagem os 'calls'
# Se você quiser saber a porcentagem de put, tente 100-API.get_traders_mood(Paridade)
Pega tudo
API.get_all_traders_mood(Paridade)
# Retorno: (dict) com todos os 'humores'
Exemplo
from iqoptionapi.stable_api import IQ_Option
import time
API = IQ_Option("email", "pass")
Entrada = 1
Paridade = "EURUSD"
Direcao = "call" # Ou "put"
Duracao = 1
id = API.buy(Entrada, Paridade, direcao, Duracao)
Explicação
API.buy(Entrada, Paridade, direcao, duracao)
# Entrada: Quanto em reais/dolares você quer usar na entrada (Minimo 1 dolar ou 2 reais), a informação tem que ser do tipo int ou float
# Paridade: Qual paridade você deseja operar
# Direcao: "call"/"put", informação deve ser do tipo str
# Duracao: Qual o tempo da operação em minutos, cuidado com operações muito longas para não dar erro(mercado fechado)!
# dados retornados: (None ou id_number):if sucess return (id_number) esle return(None) 2.1.5 change this
Exemplo
from iqoptionapi.stable_api import IQ_Option
API = IQ_Option("email", "password")
Entrada = []
Paridade = []
Direcao = []
Duracao = []
Entrada.append(1)
Paridade.append("EURUSD")
Direcao.append("call") # ou put
Duracao.append(1)
Entrada.append(1)
Paridade.append("EURAUD")
Direcao.append("call")#put
Duracao.append(1)
print("buy_multi()")
ids = API.buy_multi(Entrada, Paridade, Direcao, Duracao)
print("Checar resultado em apenas 1 paridade (ids[0])")
print(API.check_win_v3(ids[0]))
Formula: tempo de compra = tempo restante - 30
from iqoptionapi.stable_api import IQ_Option
API=IQ_Option("email", "password")
Entrada = 1
Paridade = "EURUSD"
Direcao = "call"#or "put"
Duracao = 1
while True:
tempo_restante = API.get_remaning(Duracao)
tempo_de_compra = tempo_restante-30
if tempo_de_compra < 4: #Compre Binaria em tempo_de_compra < 4
API.buy(Entrada, Paridade, Direcao, Duracao)
break
O ID('s) passados para o sell_option() devem ser int ou um list contendo os id's
API.sell_option(sell_ids)
Exemplo
from iqoptionapi.stable_api import IQ_Option
import time
API = IQ_Option("email", "password")
Entrada = 1
Paridade = "EURUSD"
Direcao = "call"
Duracao = 1
id = API.buy(Entrada, Paridade, Direcao, Duracao)
id2 = API.buy(Entrada, Paridade, Direcao, Duracao)
time.sleep(5)
sell_all=[]
sell_all.append(id)
sell_all.append(id2)
print(API.sell_option(sell_all))
As funções check_win() e check_win_v2() pararam de funcionar
Para pegarmos o resultado de uma operação feito na binarias, podemos estar utilizando o check_win_v3() ou o check_win_v4()
from iqoptionapi.stable_api import IQ_Option
import time
API = IQ_Option("email", "password")
Entrada = 1
Paridade = "EURUSD"
Direcao = "call"
Duracao = 1
id = API.buy(Entrada, Paridade, Direcao, Duracao)
time.sleep(5)
print(API.check_win_v3(id))
# Você precisa ter o id da operação para poder fazer a verificação
# check_win_v3() não é aconselhado para pegar resultado de operação realizada a muitos trades atras, use o check_win_v4() nesta ocasião
# Esta função irá rodar em looping até retornar o resultado tipo 'tuple'
# Resultado retornado no padrão 'True/False',lucro
from iqoptionapi.stable_api import IQ_Option
import time
API = IQ_Option("email", "password")
Entrada = 1
Paridade = "EURUSD"
Direcao = "call"
Duracao = 1
id = API.buy(Entrada, Paridade, Direcao, Duracao)
time.sleep(5)
print(API.check_win_v4(id))
# Você precisa ter o id da operação para poder fazer a verificação
# Esta função irá rodar em looping até retornar o resultado tipo 'tuple'
# Resultado retornado no padrão 'True/False',lucro
"get_binary_option_detail()" e "get_all_profit()" são baseados no "get_all_init()", para retornar os dados "brutos", você pode utilizar:
Exemplo
from iqoptionapi.stable_api import IQ_Option
API = IQ_Option("email", "password")
print(API.get_all_init())
Exemplo
from iqoptionapi.stable_api import IQ_Option
API = IQ_Option("email", "password")
d = API.get_binary_option_detail()
print(d["CADCHF"]["turbo"])
print(d["CADCHF"]["binary"])
Exemplo
from iqoptionapi.stable_api import IQ_Option
API = IQ_Option("email", "password")
d = API.get_all_profit()
print(d["CADCHF"]["turbo"])
print(d["CADCHF"]["binary"])
Temos dois modos para fazer isto, para ambos precisamos indicar quantos 'trades' você quer retornar do histórico de trading ( apenas das binárias )
from iqoptionapi.stable_api import IQ_Option
API = IQ_Option("email", "password")
print(API.get_optioninfo(10))
from iqoptionapi.stable_api import IQ_Option
API = IQ_Option("email", "password")
print(API.get_optioninfo_v2(10))
Se sua conta está logada em outro celular/PC e está realizando operações, você pode "pegar" a operação do modo abaixo
import time
from iqoptionapi.stable_api import IQ_Option
API = IQ_Option("email", "password")
while True:
# Abra o Website da IQ Option e faça alguma operação por lá
if API.get_option_open_by_other_pc()!={}:
break
time.sleep(1)
print("Pegar operação feita nesta conta por outro dispositivo")
print(API.get_option_open_by_other_pc())
id=list(API.get_option_open_by_other_pc().keys())[0]
API.del_option_open_by_other_pc(id)
print("Depois de deleter com del_option_open_by_other_pc(), executamos get_option_open_by_other_pc() novamente ")
print(API.get_option_open_by_other_pc())
Formato da informação retornada
{'1.127100': { 'call': {'profit': None, 'id': 'doEURUSD201811120649PT1MC11271'}, 'put': {'profit': 566.6666666666666, 'id': 'doEURUSD201811120649PT1MP11271'} }.......}
Exemplo de uso
from iqoptionapi.stable_api import IQ_Option
import time
API = IQ_Option("email", "password")
Paridade = "EURUSD"
Duracao = 1 # 1 ou 5 minutos
API.subscribe_strike_list(Paridade, Duracao)
while True:
data = API.get_realtime_strike_list(Paridade, Duracao)
for preco in data:
print("Preco",preco,data[preco])
time.sleep(5)
API.unsubscribe_strike_list(Paridade, Duracao)
Abrir operação na digital com preço atual
from iqoptionapi.stable_api import IQ_Option
API=IQ_Option("email","password")
Paridade = "EURUSD"
Duracao = 1#minute 1 or 5
Entrada = 1
Direcao = "call"
print(API.buy_digital_spot(Paridade, Entrada, Direcao, Duracao))
Para poder utilizar esta função, você devera pegar o instument_id pelo API.get_realtime_strike_list()
buy_check,id=API.buy_digital(Entrada, instrument_id)
Exemplo
from iqoptionapi.stable_api import IQ_Option
API = IQ_Option("email", "passord")
Paridade = "EURUSD"
Duracao = 1 #1 ou 5 minutos
Entrada = 100
Direcao = "put"
API.subscribe_strike_list(Paridade,Duracao)
id=API.buy_digital_spot(Paridade,Entrada,Direcao,Duracao)
while True:
PL=API.get_digital_spot_profit_after_sale(id)
if PL!=None:
print(PL)
Esta função funciona somente para digitais!
Exemplo
from iqoptionapi.stable_api import IQ_Option
import time
API = IQ_Option("email", "password")
Paridade = "EURUSD"
Duracao = 1#minute 1 or 5
API.subscribe_strike_list(Paridade, Duracao)
while True:
data=API.get_digital_current_profit(Paridade, Duracao)
print(data) # Nos primeiros retornos pode vir "False", aguarde alguns segundos que começara a retornar os valores do tipo float
time.sleep(1)
API.unsubscribe_strike_list(Paridade, Duracao)
Para pegarmos o resultado de uma operação feito nas digitais, podemos estar utilizando o check_win_digital() ou o check_win_digital_v2()
Esta função foi implementada com get_digital_position()
API.check_win_digital(id) # get the id from API.buy_digital
# Retorno tipo tuple: status_operacao,lucro
# if you loose:Ture,o
# if you win:True,1232.3
# if trade not clode yet:False,None
Função utilizada para retornar se o resultado de uma operação nas digitais
API.check_win_digital_v2(id)#get the id from API.buy_digital
# Retorno tipo tuple: status_operacao,lucro
# Se você perder: True,0
# Se você ganhar: True,1232.3
# Se a operação não encerrou ainda: False,None
Exemplo
from iqoptionapi.stable_api import IQ_Option
API = IQ_Option("email", "password")
Paridade = "EURUSD"
Duracao = 1 #1 ou 5 minutos
Entrada = 1
Direcao = "call"
id= API.buy_digital_spot(Paridade, Duracao, Direcao, Entrada)
print(id)
if id != "error":
while True:
status,lucro = API.check_win_digital_v2(id)
if status == True:
break
if lucro < 0:
print("Voce perdeu "+str(win)+"$")
else:
print("Voce ganhou "+str(win)+"$")
else:
print("Por favor, tente novamente")
API.close_digital_option(id)
Utilizando get_digital_position()
from iqoptionapi.stable_api import IQ_Option
API = IQ_Option("email","password")
Paridade = "EURUSD-OTC"
Duracao = 1#minute 1 or 5
Entrada = 1
Direcao = "call"#put
id = API.buy_digital_spot(Paridade, Entrada, Direcao, Duracao)
while True:
check,_= API.check_win_digital(id)
if check:
break
print(API.get_digital_position(id))
print(API.check_win_digital(id))
Utilizando funções get_positions(), get_digital_position() e get_position_history()
#print(API.get_order(id)) # Não funciona com digitais
print(API.get_positions("digital-option"))
print(API.get_digital_position(2323433))#Deve ser colocado o ID
print(API.get_position_history("digital-option"))
try this api get_all_open_time
you can search instrument_type and instrument_id from this file
search instrument_type and instrument_id
from iqoptionapi.stable_api import IQ_Option
API=IQ_Option("email","password")
instrument_type="crypto"
instrument_id="BTCUSD"
side="buy"#input:"buy"/"sell"
amount=1.23#input how many Amount you want to play
#"leverage"="Multiplier"
leverage=3#you can get more information in get_available_leverages()
type="market"#input:"market"/"limit"/"stop"
#for type="limit"/"stop"
# only working by set type="limit"
limit_price=None#input:None/value(float/int)
# only working by set type="stop"
stop_price=None#input:None/value(float/int)
#"percent"=Profit Percentage
#"price"=Asset Price
#"diff"=Profit in Money
stop_lose_kind="percent"#input:None/"price"/"diff"/"percent"
stop_lose_value=95#input:None/value(float/int)
take_profit_kind=None#input:None/"price"/"diff"/"percent"
take_profit_value=None#input:None/value(float/int)
#"use_trail_stop"="Trailing Stop"
use_trail_stop=True#True/False
#"auto_margin_call"="Use Balance to Keep Position Open"
auto_margin_call=False#True/False
#if you want "take_profit_kind"&
# "take_profit_value"&
# "stop_lose_kind"&
# "stop_lose_value" all being "Not Set","auto_margin_call" need to set:True
use_token_for_commission=False#True/False
check,order_id=API.buy_order(instrument_type=instrument_type, instrument_id=instrument_id,
side=side, amount=amount,leverage=leverage,
type=type,limit_price=limit_price, stop_price=stop_price,
stop_lose_value=stop_lose_value, stop_lose_kind=stop_lose_kind,
take_profit_value=take_profit_value, take_profit_kind=take_profit_kind,
use_trail_stop=use_trail_stop, auto_margin_call=auto_margin_call,
use_token_for_commission=use_token_for_commission)
print(API.get_order(order_id))
print(API.get_positions("crypto"))
print(API.get_position_history("crypto"))
print(API.get_available_leverages("crypto","BTCUSD"))
print(API.close_position(order_id))
print(API.get_overnight_fee("crypto","BTCUSD"))
return (True/False,buy_order_id/False)
if Buy sucess return (True,buy_order_id)
"percent"=Profit Percentage
"price"=Asset Price
"diff"=Profit in Money
parameter | ||||
---|---|---|---|---|
instrument_type | instrument_type | |||
instrument_id | instrument_id | |||
side | "buy" | "sell" | ||
amount | value(float/int) | |||
leverage | value(int) | |||
type | "market" | "limit" | "stop" | |
limit_price | None | value(float/int):Only working by set type="limit" | ||
stop_price | None | value(float/int):Only working by set type="stop" | ||
stop_lose_kind | None | "price" | "diff" | "percent" |
stop_lose_value | None | value(float/int) | ||
take_profit_kind | None | "price" | "diff" | "percent" |
take_profit_value | None | value(float/int) | ||
use_trail_stop | True | False | ||
auto_margin_call | True | False | ||
use_token_for_commission | True | False |
check,order_id=API.buy_order(
instrument_type=instrument_type, instrument_id=instrument_id,
side=side, amount=amount,leverage=leverage,
type=type,limit_price=limit_price, stop_price=stop_price,
stop_lose_kind=stop_lose_kind,
stop_lose_value=stop_lose_value,
take_profit_kind=take_profit_kind,
take_profit_value=take_profit_value,
use_trail_stop=use_trail_stop, auto_margin_call=auto_margin_call,
use_token_for_commission=use_token_for_commission)
parameter | ||||
---|---|---|---|---|
ID_Name | "position_id" | "order_id" | ||
order_id | "you need to get order_id from buy_order()" | |||
stop_lose_kind | None | "price" | "diff" | "percent" |
stop_lose_value | None | value(float/int) | ||
take_profit_kind | None | "price" | "diff" | "percent" |
take_profit_value | None | value(float/int) | ||
use_trail_stop | True | False | ||
auto_margin_call | True | False |
ID_Name="order_id"#"position_id"/"order_id"
stop_lose_kind=None
stop_lose_value=None
take_profit_kind="percent"
take_profit_value=200
use_trail_stop=False
auto_margin_call=True
API.change_order(ID_Name=ID_Name,order_id=order_id,
stop_lose_kind=stop_lose_kind,stop_lose_value=stop_lose_value,
take_profit_kind=take_profit_kind,take_profit_value=take_profit_value,
use_trail_stop=use_trail_stop,auto_margin_call=auto_margin_call)
get infomation about buy_order_id
return (True/False,get_order,None)
API.get_order(buy_order_id)
you will get there data
API.get_pending(instrument_type)
you will get there data
return (True/False,get_positions,None)
❗ not support ""turbo-option""
instrument_type="crypto","forex","fx-option","multi-option","cfd","digital-option"
API.get_positions(instrument_type)
you will get there data
you will get one position by buy_order_id
return (True/False,position data,None)
API.get_positions(buy_order_id)
you will get there data
return (True/False,position_history,None)
API.get_position_history(instrument_type)
instrument_type="crypto","forex","fx-option","turbo-option","multi-option","cfd","digital-option"
get_position_history_v2(instrument_type,limit,offset,start,end)
from iqoptionapi.stable_api import IQ_Option
import logging
import random
import time
import datetime
logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s')
API=IQ_Option("email","password")
#instrument_type="crypto","forex","fx-option","turbo-option","multi-option","cfd","digital-option"
instrument_type="digital-option"
limit=2#How many you want to get
offset=0#offset from end time,if end time is 0,it mean get the data from now
start=0#start time Timestamp
end=0#Timestamp
data=API.get_position_history_v2(instrument_type,limit,offset,start,end)
print(data)
#--------- this will get data start from 2019/7/1(end) to 2019/1/1(start) and only get 2(limit) data and offset is 0
instrument_type="digital-option"
limit=2#How many you want to get
offset=0#offset from end time,if end time is 0,it mean get the data from now
start=int(time.mktime(datetime.datetime.strptime("2019/1/1", "%Y/%m/%d").timetuple()))
end=int(time.mktime(datetime.datetime.strptime("2019/7/1", "%Y/%m/%d").timetuple()))
data=API.get_position_history_v2(instrument_type,limit,offset,start,end)
print(data)
get available leverages
return (True/False,available_leverages,None)
API.get_available_leverages(instrument_type,actives)
you will do this
return (True/False)
API.cancel_order(buy_order_id)
you will do this
return (True/False)
API.close_position(buy_order_id)
return (True/False,overnight_fee,None)
API.get_overnight_fee(instrument_type,active)
❗
get_candles can not get "real time data" ,it will late about 30sec
if you very care about real time you need use
"get realtime candles" OR "collect realtime candles"
sample
""now"" time 1:30:45sec
-
you want to get candles 1:30:45sec now
you may get 1:30:15sec data have been late approximately 30sec
-
you want to get candles 1:00:33sec
you will get the right data
API.get_candles(ACTIVES,interval,count,endtime)
#ACTIVES:sample input "EURUSD" OR "EURGBP".... youcan
#interval:duration of candles
#count:how many candles you want to get from now to past
#endtime:get candles from past to "endtime"
❗ try this code to get more than 1000 candle
from iqoptionapi.stable_api import IQ_Option
import time
API=IQ_Option("email","password")
end_from_time=time.time()
ANS=[]
for i in range(70):
data=API.get_candles("EURUSD", 60, 1000, end_from_time)
ANS =data+ANS
end_from_time=int(data[0]["from"])-1
print(ANS)
from iqoptionapi.stable_api import IQ_Option
import logging
import time
#logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s')
print("login...")
API=IQ_Option("email","password")
goal="EURUSD"
size="all"#size=[1,5,10,15,30,60,120,300,600,900,1800,3600,7200,14400,28800,43200,86400,604800,2592000,"all"]
maxdict=10
print("start stream...")
API.start_candles_stream(goal,size,maxdict)
#DO something
print("Do something...")
time.sleep(10)
print("print candles")
cc=API.get_realtime_candles(goal,size)
for k in cc:
print(goal,"size",k,cc[k])
print("stop candle")
API.stop_candles_stream(goal,size)
- input:
- goal:"EURUSD"...
- size:[1,5,10,15,30,60,120,300,600,900,1800,3600,7200,14400,28800,43200,86400,604800,2592000,"all"]
- maxdict:set max buffer you want to save
size
- input:
- goal:"EURUSD"...
- size:[1,5,10,15,30,60,120,300,600,900,1800,3600,7200,14400,28800,43200,86400,604800,2592000,"all"]
- output:
- dict
- input:
- goal:"EURUSD"...
- size:[1,5,10,15,30,60,120,300,600,900,1800,3600,7200,14400,28800,43200,86400,604800,2592000,"all"]
the get_server_timestamp time is sync with iqoption
API.get_server_timestamp()
this sample get the Purchase time clock
import time
#get the end of the timestamp by expiration time
def get_expiration_time(t):
exp=time.time()#or API.get_server_timestamp() to get more Precision
if (exp % 60) > 30:
end = exp - (exp % 60) + 60*(t+1)
else:
end = exp - (exp % 60)+60*(t)
return end
expiration_time=2
end_time=0
while True:
if end_time-time.time()-30<=0:
end_time = get_expiration_time(expiration_time)
print(end_time-time.time()-30)
time.sleep(1)
instrument_type="binary-option"/"digital-option"/"forex"/"cfd"/"crypto"
from iqoptionapi.stable_api import IQ_Option
import logging
import time
#logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s')
API=IQ_Option("email","password")
instrument_type="digital-option"#"binary-option"/"digital-option"/"forex"/"cfd"/"crypto"
API.subscribe_top_assets_updated(instrument_type)
print("__Please_wait_for_sec__")
while True:
if API.get_top_assets_updated(instrument_type)!=None:
print(API.get_top_assets_updated(instrument_type))
print("\n\n")
time.sleep(1)
API.unsubscribe_top_assets_updated(instrument_type)
from iqoptionapi.stable_api import IQ_Option
import logging
import time
import operator
#logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s')
def opcode_to_name(opcode_data,opcode):
return list(opcode_data.keys())[list(opcode_data.values()).index(opcode)]
API=IQ_Option("email","password")
API.update_ACTIVES_OPCODE()
opcode_data=API.get_all_ACTIVES_OPCODE()
instrument_type="digital-option"#"binary-option"/"digital-option"/"forex"/"cfd"/"crypto"
API.subscribe_top_assets_updated(instrument_type)
print("__Please_wait_for_sec__")
while True:
if API.get_top_assets_updated(instrument_type)!=None:
break
top_assets=API.get_top_assets_updated(instrument_type)
popularity={}
for asset in top_assets:
opcode=asset["active_id"]
popularity_value=asset["popularity"]["value"]
try:
name=opcode_to_name(opcode_data,opcode)
popularity[name]=popularity_value
except:
pass
sorted_popularity = sorted(popularity.items(), key=operator.itemgetter(1))
print("__Popularity_min_to_max__")
for lis in sorted_popularity:
print(lis)
API.unsubscribe_top_assets_updated(instrument_type)