コード例 #1
0
ファイル: orders_test.py プロジェクト: johnjdailey/tda-api-1
    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))
コード例 #2
0
 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)
コード例 #3
0
    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())
コード例 #4
0
    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()
コード例 #5
0
ファイル: orders_test.py プロジェクト: johnjdailey/tda-api-1
    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))
コード例 #6
0
ファイル: orders_test.py プロジェクト: johnjdailey/tda-api-1
    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))
コード例 #7
0
ファイル: orders_test.py プロジェクト: johnjdailey/tda-api-1
 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))
コード例 #8
0
ファイル: orders_test.py プロジェクト: johnjdailey/tda-api-1
 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))
コード例 #9
0
ファイル: orders_test.py プロジェクト: johnjdailey/tda-api-1
 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))
コード例 #10
0
    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')
コード例 #11
0
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()
コード例 #12
0
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()
コード例 #13
0
ファイル: orders_test.py プロジェクト: johnjdailey/tda-api-1
 def test_match_base(self):
     real_order = test_utils.real_order()
     self.assertTrue(EquityOrderBuilder('CVS', 1).matches(real_order))
コード例 #14
0
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()
コード例 #15
0
ファイル: orders_test.py プロジェクト: johnjdailey/tda-api-1
 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))
コード例 #16
0
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()
コード例 #17
0
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()
コード例 #18
0
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()
コード例 #19
0
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())