def setUp(self) -> None: """Set up the Session.""" # Grab configuration values. config = ConfigParser() file_path = pathlib.Path('config/config.ini').resolve() config.read(file_path) # Load the details. self.paper_account = config.get('main', 'PAPER_ACCOUNT') self.paper_username = config.get('main', 'PAPER_USERNAME') # Initalize the Client self.ibw_client = IBClient(username=self.paper_username, account=self.paper_account)
def _create_session(self) -> IBClient: """Start a new session. Go to initiate an IBClient object and the session will be passed onto trader object Creates a new session with the IB Client API and logs the user into the new session. Returns: ---- IBClient -- A IBClient object with an authenticated sessions. """ ib_client = IBClient(username=self.username, account=self.account, is_server_running=True) #Start a new session ib_client.create_session() return ib_client
class InteractiveBrokersSession(TestCase): """Will perform a unit test for the Interactive Brokers session.""" def setUp(self) -> None: """Set up the Session.""" # Grab configuration values. config = ConfigParser() file_path = pathlib.Path('config/config.ini').resolve() config.read(file_path) # Load the details. self.paper_account = config.get('main', 'PAPER_ACCOUNT') self.paper_username = config.get('main', 'PAPER_USERNAME') # Initalize the Client self.ibw_client = IBClient(username=self.paper_username, account=self.paper_account) def test_creates_instance_of_session(self): """Ensure the instance was created.""" self.assertIsInstance(self.ibw_client, IBClient) self.assertEqual(self.paper_account, self.ibw_client.account) self.assertEqual(self.paper_username, self.ibw_client.username) self.assertEqual(False, self.ibw_client.authenticated) def test_session_properties(self): """Checks different session properties.""" self.assertEqual(self.ibw_client._operating_system, sys.platform) def test_ibw_portal_path(self): """Ensures the Portal Path Matches.""" folder_path = pathlib.Path('clientportal.beta.gw').resolve() self.assertEqual(self.ibw_client.client_portal_folder, folder_path) def test_session_state_path(self): """Ensures the Session JSON path is valid.""" session_state_path = pathlib.Path("ibw/server_session.json").resolve() self.assertEqual(session_state_path, self.ibw_client.session_state_path) def test_create_session(self): """Test Creating the session.""" session_response = self.ibw_client.create_session() self.assertTrue(session_response) self.assertTrue(self.ibw_client.authenticated) def tearDown(self) -> None: """Teardown the Session.""" self.ibw_client = None
from ibw.client import IBClient from ibw.configAlex import REGULAR_ACCOUNT, REGULAR_PASSWORD, REGULAR_USERNAME, PAPER_ACCOUNT, PAPER_PASSWORD, PAPER_USERNAME # Create a new session of the IB Web API. ib_client = IBClient(username=PAPER_USERNAME, password=PAPER_PASSWORD, account=PAPER_ACCOUNT) ''' SESSIONS ''' # create a new session. ib_client.create_session() # close the current session. # ib_client.close_session() ''' ACCOUNT DETAILS ''' # grab the account data. account_data = ib_client.portfolio_accounts() print(account_data) print('') # grab account portfolios account_positions = ib_client.portfolio_account_positions( account_id=PAPER_ACCOUNT, page_id=0) print(account_positions) print('')
import pathlib from configparser import ConfigParser from ibw.client import IBClient # Grab configuration values. config = ConfigParser() file_path = pathlib.Path(__file__).parent.parent.joinpath( 'config', 'config.ini').resolve() config.read(file_path) # Load the details. PAPER_ACCOUNT = config.get('main', 'PAPER_ACCOUNT') PAPER_USERNAME = config.get('main', 'PAPER_USERNAME') # Create a new session of the IB Web API. ib_client = IBClient(username=PAPER_USERNAME, account=PAPER_ACCOUNT) ''' SESSIONS ''' # create a new session ib_client.create_session() # Logout of the client. logout_response = ib_client.logout() print(logout_response) # close the current session. ib_client.close_session() # '''
from ibw.client import IBClient from ibw.configAlex import REGULAR_ACCOUNT, REGULAR_PASSWORD, REGULAR_USERNAME, PAPER_ACCOUNT, PAPER_PASSWORD, PAPER_USERNAME # Create a new session of the IB Web API. ib_client = IBClient(username=PAPER_USERNAME, password=PAPER_PASSWORD, account=PAPER_ACCOUNT) # Create a new session. ib_client.create_session() # https://localhost:5000/sso/Login?forwardTo=22&RL=1&ip2loc=off # https://cdcdyn.interactivebrokers.com/portal/?action=22&RL=1&ip2loc=off # WIDGETS - NEWS BRIEFING # https://cdcdyn.interactivebrokers.com/portal.proxy/v1/portal/iserver/news/briefing # https://cdcdyn.interactivebrokers.com/portal.proxy/v1/portal/iserver/news/sources # https://cdcdyn.interactivebrokers.com/portal.proxy/v1/portal/iserver/news/top # https://cdcdyn.interactivebrokers.com/portal.proxy/v1/portal/iserver/news/portfolio # https://cdcdyn.interactivebrokers.com/portal.proxy/v1/portal/metrics/report # https://cdcdyn.interactivebrokers.com/portal.proxy/v1/mkt/hmds/scanner # NEWS DATA - WORKS # https://localhost:5000/v1/portal/fundamentals/landing/265598?widgets=news&lang=en # MARKET DATA 2 HOUR - 1 MINUTE BAR # https://localhost:5000/v1/portal/iserver/marketdata/history?conid=265598&period=2h&bar=1min # RATION DETAILS # https://localhost:5000/v1/portal/fundamentals/ratio_details/265598?search_id=C|PENORM,LAST_DAY,0 # https://localhost:5000/v1/portal/fundamentals/ratio_details/265598?search_id=C|PR2TANBK,LAST_DAY,0,((C|TANBVPS,LFI,0))
from pprint import pprint from ibw.client import IBClient # Create a new session of the IB Web API. ib_client = IBClient(username="******", account="PAPER_ACCOUNT_ACCOUNT_NUMBER", is_server_running=True) # create a new session ib_client.create_session() # grab the account data. account_data = ib_client.portfolio_accounts() pprint(account_data) pprint('') # grab account portfolios account_positions = ib_client.portfolio_account_positions( account_id="PAPER_ACCOUNT_ACCOUNT_NUMBER", page_id=0) pprint(account_positions) pprint('') # grab account PNL account_pnl = ib_client.server_account_pnl() pprint(account_pnl) pprint('') # grab server accounts server_accounts = ib_client.server_accounts() pprint(server_accounts) pprint('')
from pprint import pprint from ibw.client import IBClient # Create a new session of the IB Web API. ib_client = IBClient(username="******", account="PAPER_ACCOUNT_ACCOUNT_NUMBER") # create a new session ib_client.create_session() # grab the account data. account_data = ib_client.portfolio_accounts() pprint(account_data) pprint('') # grab account portfolios account_positions = ib_client.portfolio_account_positions( account_id="PAPER_ACCOUNT_ACCOUNT_NUMBER", page_id=0) pprint(account_positions) pprint('') # grab account PNL account_pnl = ib_client.server_account_pnl() pprint(account_pnl) pprint('') # grab server accounts server_accounts = ib_client.server_accounts() pprint(server_accounts) pprint('')
from pprint import pprint from ibw.client import IBClient from configparser import ConfigParser # Grab configuration values. config = ConfigParser() file_path = pathlib.Path('config/config.ini').resolve() config.read(file_path) # Load the details. paper_account = config.get('main', 'PAPER_ACCOUNT') paper_username = config.get('main', 'PAPER_USERNAME') # Create a new session of the IB Web API. ib_client = IBClient(username=paper_username, account=paper_account) # create a new session ib_client.create_session() # grab the account data. account_data = ib_client.portfolio_accounts() pprint(account_data) pprint('') # grab account portfolios account_positions = ib_client.portfolio_account_positions( account_id=paper_account, page_id=0) pprint(account_positions) pprint('')
from ibw.client import IBClient from ibw.configAlex import REGULAR_ACCOUNT, REGULAR_PASSWORD, REGULAR_USERNAME, PAPER_ACCOUNT, PAPER_PASSWORD, PAPER_USERNAME # Create a new session of the IB Web API. ib_client = IBClient(username=PAPER_USERNAME, password=PAPER_PASSWORD, account=PAPER_ACCOUNT) ''' SESSIONS ''' # create a new session ib_client.create_session() # close the current session. # ib_client.close_session() # ''' # ACCOUNT DETAILS # ''' # # grab the account data. # account_data = ib_client.portfolio_accounts() # print(account_data) # print('') # # grab account portfolios # account_positions = ib_client.portfolio_account_positions(account_id = PAPER_ACCOUNT, page_id = 0) # print(account_positions) # print('')