Lu-Yi-Hsun / iqoptionapi

IQ Option API
372 stars 289 forks source link

Function check_win_v2 does not work! #157

Closed ghost closed 4 years ago

ghost commented 4 years ago

Before it worked perfectly, this problem started a few days ago:

Code

from iqoptionapi.stable_api import IQ_Option

iq = IQ_Option("xxxxx@xxxxx", "xxxxx")

iq.change_balance("PRACTICE")

id = iq.buy(100, "USDCHF-OTC", "call", 1)

iq.check_win_v2(id)

Log

ERROR:root:**error** def get_betinfo self.api.get_betinfo reconnect DEBUG:iqoptionapi.ws.client:Websocket connection closed. DEBUG:iqoptionapi.api:https://auth.iqoption.com/api/v1.0/login DEBUG:iqoptionapi.api:<Response [200]> DEBUG:iqoptionapi.api:{"data":{"ssid":"ee0443917e1cac165ca46d7e1f90c766"}} DEBUG:iqoptionapi.api:{'Server': 'nginx', 'Date': 'Thu, 28 Nov 2019 21:43:39 GMT', 'Content-Type': 'application/json; charset=utf-8', 'Content-Length': '52', 'Connection': 'keep-alive', 'Set-Cookie': 'ssid=ee0443917e1cac165ca46d7e1f90c766; Path=/; Domain=iqoption.com; Max-Age=2592000; Secure', 'Vary': 'Origin', 'X-Tracing-Key': '8881bff2-fbd6-4cbe-aef6-038e56b5dcf3', 'Strict-Transport-Security': 'max-age=15555600', 'X-Content-Type-Options': 'nosniff'} DEBUG:iqoptionapi.api:<RequestsCookieJar[<Cookie ssid=ee0443917e1cac165ca46d7e1f90c766 for .iqoption.com/>]> DEBUG:iqoptionapi.ws.client:Websocket client connected. DEBUG:iqoptionapi.api:{"name": "ssid", "msg": "ee0443917e1cac165ca46d7e1f90c766", "request_id": ""} DEBUG:iqoptionapi.ws.client:{"name":"timeSync","msg":1574977429424} DEBUG:iqoptionapi.api:{"name": "setOptions", "request_id": "1", "msg": {"sendResults": true}} DEBUG:iqoptionapi.ws.client:{"name":"heartbeat","msg":1574977429424} DEBUG:iqoptionapi.api:{"name": "heartbeat", "msg": {"msg": {"heartbeatTime": 1574977429424, "userTime": 1574977429424}}, "request_id": ""} DEBUG:iqoptionapi.api:{"name": "subscribeMessage", "request_id": "2", "msg": {"name": "position-changed", "version": "1.0", "params": {"routingFilters": {"instrument_type": "multi-option"}}}} DEBUG:iqoptionapi.api:{"name": "subscribeMessage", "request_id": "3", "msg": {"name": "trading-fx-option.position-changed", "version": "1.0", "params": {"routingFilters": {"instrument_type": "fx-option"}}}} DEBUG:iqoptionapi.api:{"name": "subscribeMessage", "request_id": "4", "msg": {"name": "position-changed", "version": "1.0", "params": {"routingFilters": {"instrument_type": "crypto"}}}} DEBUG:iqoptionapi.api:{"name": "subscribeMessage", "request_id": "5", "msg": {"name": "position-changed", "version": "1.0", "params": {"routingFilters": {"instrument_type": "forex"}}}} DEBUG:iqoptionapi.api:{"name": "subscribeMessage", "request_id": "6", "msg": {"name": "digital-options.position-changed", "version": "1.0", "params": {"routingFilters": {"instrument_type": "digital-option"}}}} DEBUG:iqoptionapi.api:{"name": "subscribeMessage", "request_id": "7", "msg": {"name": "position-changed", "version": "1.0", "params": {"routingFilters": {"instrument_type": "cfd"}}}} ERROR:root:**error** get_betinfo time out need reconnect DEBUG:iqoptionapi.ws.client:Websocket connection closed. DEBUG:iqoptionapi.api:https://auth.iqoption.com/api/v1.0/login DEBUG:iqoptionapi.api:<Response [200]> DEBUG:iqoptionapi.api:{"data":{"ssid":"487a7dbec527208f05560362c6fd94fb"}} DEBUG:iqoptionapi.api:{'Server': 'nginx', 'Date': 'Thu, 28 Nov 2019 21:43:50 GMT', 'Content-Type': 'application/json; charset=utf-8', 'Content-Length': '52', 'Connection': 'keep-alive', 'Set-Cookie': 'ssid=487a7dbec527208f05560362c6fd94fb; Path=/; Domain=iqoption.com; Max-Age=2592000; Secure', 'Vary': 'Origin', 'X-Tracing-Key': 'a53b86fe-9bd7-4dcc-8cbe-0d7c98455d94', 'Strict-Transport-Security': 'max-age=15555600', 'X-Content-Type-Options': 'nosniff'} DEBUG:iqoptionapi.api:<RequestsCookieJar[<Cookie ssid=487a7dbec527208f05560362c6fd94fb for .iqoption.com/>]> DEBUG:iqoptionapi.ws.client:Websocket client connected. DEBUG:iqoptionapi.api:{"name": "ssid", "msg": "487a7dbec527208f05560362c6fd94fb", "request_id": ""} DEBUG:iqoptionapi.ws.client:{"name":"timeSync","msg":1574977432044} DEBUG:iqoptionapi.api:{"name": "setOptions", "request_id": "1", "msg": {"sendResults": true}} DEBUG:iqoptionapi.ws.client:{"name":"heartbeat","msg":1574977432044} DEBUG:iqoptionapi.api:{"name": "heartbeat", "msg": {"msg": {"heartbeatTime": 1574977432044, "userTime": 1574977432044}}, "request_id": ""} DEBUG:iqoptionapi.api:{"name": "subscribeMessage", "request_id": "2", "msg": {"name": "position-changed", "version": "1.0", "params": {"routingFilters": {"instrument_type": "multi-option"}}}} DEBUG:iqoptionapi.api:{"name": "subscribeMessage", "request_id": "3", "msg": {"name": "trading-fx-option.position-changed", "version": "1.0", "params": {"routingFilters": {"instrument_type": "fx-option"}}}} DEBUG:iqoptionapi.api:{"name": "subscribeMessage", "request_id": "4", "msg": {"name": "position-changed", "version": "1.0", "params": {"routingFilters": {"instrument_type": "crypto"}}}} DEBUG:iqoptionapi.api:{"name": "subscribeMessage", "request_id": "5", "msg": {"name": "position-changed", "version": "1.0", "params": {"routingFilters": {"instrument_type": "forex"}}}} DEBUG:iqoptionapi.api:{"name": "subscribeMessage", "request_id": "6", "msg": {"name": "digital-options.position-changed", "version": "1.0", "params": {"routingFilters": {"instrument_type": "digital-option"}}}} DEBUG:iqoptionapi.api:{"name": "subscribeMessage", "request_id": "7", "msg": {"name": "position-changed", "version": "1.0", "params": {"routingFilters": {"instrument_type": "cfd"}}}} Traceback (most recent call last): File "C:\Users\Fernando\Documents\irenium-schedule\test.py", line 9, in <module> iq.check_win_v2(id) File "C:\Program Files\Python37\lib\site-packages\iqoptionapi\stable_api.py", line 622, in check_win_v2 DEBUG:iqoptionapi.ws.client:{"name":"profile","msg":{"avatar":"","confirmation_required":0,"popup":[],"money":{"deposit":{"min":2,"max":1000000},"withdraw":{"min":2,"max":1000000}},"user_group":"Brazil","welcome_splash":0,"functions":{"popup_ids":["1"],"ext_fields":[],"is_vip_mode":0,"is_bonus_block":0,"is_no_currency_change":0,"is_trading_bonus_block":0},"finance_state":"","balance":9024.419921875,"bonus_wager":0,"bonus_total_wager":0,"balance_id":221201475,"balance_type":4,"messages":0,"id":46403128,"demo":0,"public":1,"group_id":184,"name":"Iago Santiago","nickname":"Robert Jackson","currency":"USD","currency_char":"$","mask":"$%s","city":"","user_id":46403128,"first_name":"Iago","last_name":"Santiago","phone":"55 *****407153","email":"iagosantiago@tutamail.com","created":1558432508,"last_visit":false,"site_id":1,"tz":"America/Argentina/Buenos_Aires","locale":"en_US","birthdate":false,"country_id":30,"currency_id":6,"gender":"male","address":"","postal_index":"","timediff":-21600,"tz_offset":-180,"balances":[{"id":221201474,"user_id":46403128,"type":1,"amount":0,"enrolled_amount":0,"enrolled_sum_amount":0,"hold_amount":0,"orders_amount":0,"auth_amount":0,"equivalent":0,"currency":"BRL","tournament_id":null,"tournament_name":null,"is_fiat":true,"is_marginal":false},{"id":221201475,"user_id":46403128,"type":4,"amount":9024.42,"enrolled_amount":9024.420237,"enrolled_sum_amount":9024.420237,"hold_amount":0,"orders_amount":0,"auth_amount":0,"equivalent":0,"currency":"USD","tournament_id":null,"tournament_name":null,"is_fiat":true,"is_marginal":false},{"id":221201476,"user_id":46403128,"type":5,"amount":0,"enrolled_amount":0,"enrolled_sum_amount":0,"hold_amount":0,"orders_amount":0,"auth_amount":0,"equivalent":0,"currency":"BTC","tournament_id":null,"tournament_name":null,"is_fiat":false,"is_marginal":false},{"id":221201477,"user_id":46403128,"type":5,"amount":0,"enrolled_amount":0,"enrolled_sum_amount":0,"hold_amount":0,"orders_amount":0,"auth_amount":0,"equivalent":0,"currency":"ETH","tournament_id":null,"tournament_name":null,"is_fiat":false,"is_marginal":false}],"infeed":1,"confirmed_phones":["55 *****407153"],"need_phone_confirmation":false,"rate_in_one_click":false,"deposit_in_one_click":false,"kyc_confirmed":false,"kyc":{"status":1,"isPhoneFilled":true,"isPhoneNeeded":false,"isProfileFilled":false,"isProfileNeeded":false,"isRegulatedUser":false,"daysLeftToVerify":-1,"isPhoneConfirmed":true,"isDocumentsNeeded":false,"isDocumentsApproved":false,"isDocumentsDeclined":false,"isDocumentsUploaded":false,"isDocumentPoaUploaded":false,"isDocumentPoiUploaded":false,"isDocumentsUploadSkipped":true,"isPhoneConfirmationSkipped":false},"trade_restricted":false,"auth_two_factor":null,"deposit_count":0,"is_activated":true,"new_email":"","tc":true,"trial":false,"is_islamic":false,"tin":"","personal_data_policy":{"is_call_accepted":{"status":true},"is_push_accepted":{"status":true},"is_email_accepted":{"status":true},"is_agreement_accepted":{"status":null},"is_thirdparty_accepted":{"status":true}},"client_category_id":1,"tournaments_ids":null,"socials":[],"flag":"BR","cashback_level_info":{"enabled":false},"user_circle":"No exp","skey":"660491d187b6d8ecae9fd12241a325ae","forget_status":{"status":"none","created":null,"expires":null},"account_status":"NONE","nationality":"","ssid":"1b96ec5488708dc19242f80c57164da1"},"request_id":""} DEBUG:iqoptionapi.ws.client:{"name":"front","msg":"ws20a"} check, data = self.get_betinfo(id_number) DEBUG:iqoptionapi.ws.client:{"name":"result","request_id":"1","msg":{"success":true}} File "C:\Program Files\Python37\lib\site-packages\iqoptionapi\stable_api.py", line 647, in get_betinfo DEBUG:iqoptionapi.ws.client:{"name":"result","request_id":"2","msg":{"success":true}} DEBUG:iqoptionapi.ws.client:{"name":"result","request_id":"3","msg":{"success":true}} self.api.get_betinfo(id_number) DEBUG:iqoptionapi.ws.client:{"name":"result","request_id":"4","msg":{"success":true}} File "C:\Program Files\Python37\lib\site-packages\iqoptionapi\ws\chanels\api_game_betinfo.py", line 15, in __call__ DEBUG:iqoptionapi.ws.client:{"name":"result","request_id":"5","msg":{"success":true}} DEBUG:iqoptionapi.ws.client:{"name":"result","request_id":"6","msg":{"success":true}} data["id[0]"]=int(id_number_list) TypeError: int() argument must be a string, a bytes-like object or a number, not 'tuple'

Lu-Yi-Hsun commented 4 years ago

TRY check_win first

Lu-Yi-Hsun commented 4 years ago

@iagosantiago

sorry that document problem i am fix document problem

https://github.com/Lu-Yi-Hsun/iqoptionapi#check_win_v2

you will get fail because "buy" return (True,1234567) and you put "(True,1234567) " to check_win_v2()

only can put check_win_v2(1234567)

import time
from iqoptionapi.stable_api import IQ_Option

iq=IQ_Option("email","password")

iq.change_balance("PRACTICE")

check,id = iq.buy(100, "EURUSD", "call", 1)

print(iq.check_win_v2(id))
ghost commented 4 years ago

It worked, thank you, your work on this API is awesome!

danielroca7 commented 2 years ago

import time from iqoptionapi.stable_api import IQ_Option

iq=IQ_Option("email","password")

iq.change_balance("PRACTICE")

check,id = iq.buy(100, "EURUSD", "call", 1)

print(iq.check_win_v2(id))

check, data = Iq.check_win_v2(id) TypeError: IQ_Option.check_win_v2() missing 1 required positional argument: 'polling_time'

print(iq.check_win_v2(id, anyNumber)) ERROR:root:error get_betinfo time out need reconnect

damianportillo commented 2 years ago

isSuccessful,dict=I_want_money.check_win_v2(9236988652) print(isSuccessful) I_want_money.get_optioninfo(10)

.check_win_v2() missing 1 required positional argument: 'polling_time'

macjeff1 commented 1 year ago

durante a inicialização do codigo ocorreu um erro que informou a ''Não foi possível conectar à API''

from iqoptionapi.stable_api import IQ_Option import pandas as pd import talib

Crie uma instância da classe IQ_Option com seu email e senha

iq_option = IQ_Option('seu_email', 'sua_senha')

Conecte-se à API

iq_option.connect()

Verifique se a conexão foi estabelecida

if iq_option.check_connect(): print('Conectado à API com sucesso!') else: print('Não foi possível conectar à API.')

Defina a conta de negociação

iq_option.change_balance('PRACTICE')

Obtenha o ID do par de moedas EURUSD na plataforma IQ Option

instrument_id = iq_option.get_instruments('forex')['forex']['EURUSD']['id']

Obtenha os dados históricos do par de moedas EURUSD na plataforma IQ Option

candles = iq_option.get_candles(instrument_id, 60, 1000)

Converter os dados para um DataFrame do Pandas

df = pd.DataFrame(candles, columns=['timestamp', 'open', 'close', 'min', 'max', 'volume'])

Converter o timestamp para um formato legível

df['timestamp'] = pd.to_datetime(df['timestamp'], unit='s')

Definir o timestamp como o índice do DataFrame

df.set_index('timestamp', inplace=True)

Renomear as colunas para corresponder aos nomes esperados pelo código de identificação de padrões

df.rename(columns={'open': 'Open', 'max': 'High', 'min': 'Low', 'close': 'Close'}, inplace=True)

Identificar o padrão de Bullish Engulfing

bullish_engulfing = talib.CDLENGULFING(df['Open'], df['High'], df['Low'], df['Close'])

Identificar o padrão de Bearish Engulfing

bearish_engulfing = talib.CDLENGULFING(df['Open'], df['High'], df['Low'], df['Close'], penetration=0)

last_signal = bullish_engulfing[-1]

if last_signal == 100: print('Bullish Engulfing identificado') elif last_signal == -100: print('Bearish Engulfing identificado') else: print('Nenhum padrão identificado')