コード例 #1
0
    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)
コード例 #2
0
    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
コード例 #3
0
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
コード例 #4
0
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('')
コード例 #5
0
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()

# '''
コード例 #6
0
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))
コード例 #7
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('')
コード例 #8
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")

# 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('')
コード例 #9
0
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('')
コード例 #10
0
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('')