def test_match_asset_type(self): real_order = test_utils.real_order() order = EquityOrderBuilder('CVS', 1) self.assertTrue(order.matches(real_order)) real_order['orderLegCollection'][0]['instrument']['assetType'] = \ 'OPTION' self.assertFalse(order.matches(real_order))
def valid_order(self): 'Returns a valid MARKET order' return EquityOrderBuilder('AAPL', 10) \ .set_instruction(EquityOrderBuilder.Instruction.BUY) \ .set_order_type(EquityOrderBuilder.OrderType.MARKET) \ .set_duration(Duration.DAY) \ .set_session(Session.NORMAL)
def test_successful_construction_market(self): order = EquityOrderBuilder('AAPL', 10) \ .set_instruction(EquityOrderBuilder.Instruction.BUY) \ .set_order_type(EquityOrderBuilder.OrderType.MARKET) \ .set_duration(Duration.DAY) \ .set_session(Session.NORMAL) \ .build() self.assertTrue(('orderType', 'MARKET') in order.items()) self.assertTrue(('session', 'NORMAL') in order.items()) self.assertTrue(('duration', 'DAY') in order.items()) self.assertTrue(('instruction', 'BUY') in order['orderLegCollection'][0].items()) self.assertTrue(('quantity', 10) in order['orderLegCollection'][0].items()) self.assertTrue( ('symbol', 'AAPL') in order['orderLegCollection'][0]['instrument'].items())
def test_limit_requires_price(self): order = EquityOrderBuilder('AAPL', 10) \ .set_instruction(EquityOrderBuilder.Instruction.BUY) \ .set_order_type(EquityOrderBuilder.OrderType.LIMIT) \ .set_duration(Duration.DAY) \ .set_session(Session.NORMAL) with self.assertRaises(InvalidOrderException, msg='price must be set'): order.build() order.set_price(100) order.build()
def test_match_quantity(self): real_order = test_utils.real_order() order = EquityOrderBuilder('CVS', 1) self.assertTrue(order.matches(real_order)) order = EquityOrderBuilder('CVS', 10) self.assertFalse(order.matches(real_order))
def test_match_symbol(self): real_order = test_utils.real_order() order = EquityOrderBuilder('CVS', 1) self.assertTrue(order.matches(real_order)) order = EquityOrderBuilder('AAPL', 1) self.assertFalse(order.matches(real_order))
def test_match_instruction(self): real_order = test_utils.real_order() order = EquityOrderBuilder('CVS', 1) \ .set_instruction(EquityOrderBuilder.Instruction.BUY) self.assertTrue(order.matches(real_order)) order.set_instruction(EquityOrderBuilder.Instruction.SELL) self.assertFalse(order.matches(real_order))
def test_match_duration(self): real_order = test_utils.real_order() order = EquityOrderBuilder('CVS', 1) \ .set_duration(Duration.DAY) self.assertTrue(order.matches(real_order)) order.set_duration(Duration.FILL_OR_KILL) self.assertFalse(order.matches(real_order))
def test_match_order_type(self): real_order = test_utils.real_order() order = EquityOrderBuilder('CVS', 1) \ .set_order_type(EquityOrderBuilder.OrderType.MARKET) self.assertTrue(order.matches(real_order)) order.set_order_type(EquityOrderBuilder.OrderType.LIMIT) self.assertFalse(order.matches(real_order))
def test_import_EquityOrderBuilder_pre_3_7(self): import sys assert sys.version_info[0] == 3 if sys.version_info[1] < 7: from tda import orders imp.reload(orders) from tda.orders import EquityOrderBuilder with self.assertRaisesRegex(NotImplementedError, 'EquityOrderBuilder has been deleted'): EquityOrderBuilder('args')
parentdir = os.path.dirname(currentdir) sys.path.append(parentdir) import config # stored in parent directory for security token_path = 'token' redirect_uri = "https://localhost" DRIVER_PATH = "/home/hopper/chromedriver" driver = webdriver.Chrome(DRIVER_PATH) try: c = auth.client_from_token_file(token_path, config.api_key) except FileNotFoundError: c = auth.client_from_login_flow(driver, config.api_key, redirect_uri, token_path) time.sleep(2) # print(c.place_order(config.tda_acct_num, equity_buy_market('SNDL', 1).set_duration(Duration.GOOD_TILL_CANCEL).set_session(Session.SEAMLESS).build())) builder = EquityOrderBuilder('SNDL', 1) builder.set_instruction(EquityOrderBuilder.instruction.BUY) builder.set_order_type(EquityOrderBuilder.OrderType.MARKET) builder.set_duration(duration.DAY) builder.set_session(Session.NORMAL) response = c.place_order(config.tda_acct_num, builder.build()) print(response) time.sleep(2) driver.quit()
import os, sys import time from selenium import webdriver import json currentdir = os.path.dirname(os.path.realpath(__file__)) parentdir = os.path.dirname(currentdir) sys.path.append(parentdir) import config # stored in parent directory for security token_path = 'token' redirect_uri = "https://localhost" DRIVER_PATH = "/home/hopper/chromedriver" driver = webdriver.Chrome(DRIVER_PATH) try: c = auth.client_from_token_file(token_path, config.api_key) except FileNotFoundError: c = auth.client_from_login_flow(driver, config.api_key, redirect_uri, token_path) time.sleep(2) # print(c.place_order(config.tda_acct_num, equity_buy_market('SNDL', 1).set_duration(Duration.GOOD_TILL_CANCEL).set_session(Session.SEAMLESS).build())) builder = EquityOrderBuilder() builder.set_instruction(EquityOrderBuilder.instruction.SELL) builder.s time.sleep(2) driver.quit()
def test_match_base(self): real_order = test_utils.real_order() self.assertTrue(EquityOrderBuilder('CVS', 1).matches(real_order))
currentdir = os.path.dirname(os.path.realpath(__file__)) parentdir = os.path.dirname(currentdir) sys.path.append(parentdir) import config # stored in parent directory for security token_path = 'token' redirect_uri = "https://localhost" DRIVER_PATH = "/home/hopper/chromedriver" driver = webdriver.Chrome(DRIVER_PATH) try: c = auth.client_from_token_file(token_path, config.api_key) except FileNotFoundError: c = auth.client_from_login_flow( driver, config.api_key, redirect_uri, token_path ) time.sleep(2) # print(c.place_order(config.tda_acct_num, equity_buy_market('SNDL', 1).set_duration(Duration.GOOD_TILL_CANCEL).set_session(Session.SEAMLESS).build())) builder = EquityOrderBuilder() builder.set_instruction(EquityOrderBuilder.instruction.SELL) builder.set_order_type(EquityOrderBuilder.OrderType.MARKET) builder.set_duration(duration.DAY) time.sleep(2) driver.quit()
def test_match_session(self): real_order = test_utils.real_order() order = EquityOrderBuilder('CVS', 1).set_session(Session.NORMAL) self.assertTrue(order.matches(real_order)) order.set_session(Session.AM) self.assertFalse(order.matches(real_order))
import time from selenium import webdriver import json currentdir = os.path.dirname(os.path.realpath(__file__)) parentdir = os.path.dirname(currentdir) sys.path.append(parentdir) import config # stored in parent directory for security token_path = 'token' redirect_uri = "https://localhost" DRIVER_PATH = "/home/hopper/chromedriver" driver = webdriver.Chrome(DRIVER_PATH) try: c = auth.client_from_token_file(token_path, config.api_key) except FileNotFoundError: c = auth.client_from_login_flow( driver, config.api_key, redirect_uri, token_path ) time.sleep(2) # print(c.place_order(config.tda_acct_num, equity_buy_market('SNDL', 1).set_duration(Duration.GOOD_TILL_CANCEL).set_session(Session.SEAMLESS).build())) builder = EquityOrderBuilder() builder.set_instruction() time.sleep(2) driver.quit()
from selenium import webdriver import json currentdir = os.path.dirname(os.path.realpath(__file__)) parentdir = os.path.dirname(currentdir) sys.path.append(parentdir) import config # stored in parent directory for security token_path = 'token' redirect_uri = "https://localhost" DRIVER_PATH = "/home/hopper/chromedriver" driver = webdriver.Chrome(DRIVER_PATH) try: c = auth.client_from_token_file(token_path, config.api_key) except FileNotFoundError: c = auth.client_from_login_flow( driver, config.api_key, redirect_uri, token_path ) time.sleep(2) # print(c.place_order(config.tda_acct_num, equity_buy_market('SNDL', 1).set_duration(Duration.GOOD_TILL_CANCEL).set_session(Session.SEAMLESS).build())) builder = EquityOrderBuilder() builder.set_instruction(EquityOrderBuilder.instruction.SELL) builder.set_order_type(EquityOrderBuilder.OrderType.MATRK) time.sleep(2) driver.quit()
import time from selenium import webdriver import json currentdir = os.path.dirname(os.path.realpath(__file__)) parentdir = os.path.dirname(currentdir) sys.path.append(parentdir) import config # stored in parent directory for security token_path = 'token' redirect_uri = "https://localhost" DRIVER_PATH = "/home/hopper/chromedriver" driver = webdriver.Chrome(DRIVER_PATH) try: c = auth.client_from_token_file(token_path, config.api_key) except FileNotFoundError: c = auth.client_from_login_flow( driver, config.api_key, redirect_uri, token_path ) time.sleep(2) # print(c.place_order(config.tda_acct_num, equity_buy_market('SNDL', 1).set_duration(Duration.GOOD_TILL_CANCEL).set_session(Session.SEAMLESS).build())) builder = EquityOrderBuilder() builder.set_instruction(EquityOrderBuilder.) time.sleep(2) driver.quit()
from tda import auth, client from tda.orders import EquityOrderBuilder, Duration, Session import json import config import datetime # limit order of 5 shares of netflix stock at 18 dollars a share builder = EquityOrderBuilder('NFLX', 5) builder.set_instruction(EquityOrderBuilder.Instruction.BUY) builder.set_order_type(EquityOrderBuilder.OrderType.LIMIT) builder.set_price(18) builder.set_duration(Duration.GOOD_TILL_CANCEL) builder.set_session(Session.NORMAL) response = c.place_order(config.account_id, builder.build())