コード例 #1
0
    def test_realtime_get_bad_id(self):
        stock = realtime.get('9999')

        self.assertFalse(stock['success'])
        self.assertIn('rtmessage', stock)
        self.assertIn('rtcode', stock)

        stock = realtime.get(['9999', '8888'])

        self.assertFalse(stock['success'])
        self.assertIn('rtmessage', stock)
        self.assertIn('rtcode', stock)
コード例 #2
0
ファイル: test_realtime.py プロジェクト: TCCinTaiwan/twstock
    def test_realtime_get_blank(self):
        realtime.proxies_list = []
        stock = realtime.get('')

        self.assertFalse(stock['success'])
        self.assertIn('rtmessage', stock)
        self.assertIn('rtcode', stock)
コード例 #3
0
def accu_capacity_multi(stock_nums):
    real_time_stocks = realtime.get(stock_nums)
    accu_capacitys = [
        real_time_stocks[stock_num]['realtime']['accumulate_trade_volume']
        for stock_num in stock_nums
    ]
    return accu_capacitys
コード例 #4
0
ファイル: MyStock.py プロジェクト: jonascheng/twstock-monitor
 def __init__(self, sid: str, ndays: int):
     Stock.__init__(self, sid)
     # Init data
     self.ndays = ndays
     self.realtime = realtime.get(self.sid)
     self.fetch_210()
     self.bias_ratio()
コード例 #5
0
    def test_mock_one_stock_id(self):
        s = realtime.get('2330')

        self.assertTrue(s['success'])
        self.assertEqual(s['info']['code'], '2330')
        self.assertEqual(s['realtime']['latest_trade_price'], '214.50')
        self.assertEqual(s['realtime']['best_bid_price'],
                         ['214.00', '213.50', '213.00', '212.50', '212.00'])
コード例 #6
0
    def test_mock_multiple_stock_id(self):
        s = realtime.get(['2330', '2337'])

        self.assertTrue(s['success'])
        self.assertCountEqual(s.keys(), ['2330', '2337', 'success'])
        self.assertTrue(s['2330']['success'])
        self.assertEqual(s['2330']['info']['code'], '2330')
        self.assertEqual(s['2330']['realtime']['latest_trade_price'], '214.50')
        self.assertTrue(s['2337']['success'])
コード例 #7
0
ファイル: stocktools.py プロジェクト: cycle13/twstock
    def _stock_anal(self, sid: str, real: bool = False):
        # read in data
        self.read_stock(sid)

        if real:
            data = realtime.get(sid)
            real_data = data['realtime']
            real_info = data['info']
            latest_trade_price = real_data['latest_trade_price']
            accumulate_trade_volume = real_data['accumulate_trade_volume']
            datalist = [
                [
                    datetime.now(),
                    int(accumulate_trade_volume) * 1000, None, None, None,
                    None, latest_trade_price, None, None
                ],
            ]
            labelist = [
                'date', 'capacity', 'turnover', 'open', 'high', 'low', 'close',
                'change', 'transaction'
            ]
            real_pd = pd.DataFrame(datalist, columns=labelist)
            self.stock_pd = self.stock_pd.append(real_pd, ignore_index=True)
            timestamp = real_info['time']
        else:
            timestamp = ''

        self.stock_pd = self.stock_pd.set_index('date')
        if self.stock_pd.shape[0] == 0:
            raise DataEmptyError

        ma03 = self.stock_pd.rolling(3).mean()
        ma05 = self.stock_pd.rolling(5).mean()
        ma08 = self.stock_pd.rolling(8).mean()
        ma20 = self.stock_pd.rolling(20).mean()
        ma60 = self.stock_pd.rolling(60).mean()

        self.ma_pd = pd.concat([
            ma03['close'], ma05['close'], ma08['close'], ma20['close'],
            ma60['close']
        ],
                               axis=1)
        self.ma_pd.columns = ['ma03', 'ma05', 'ma08', 'ma20', 'ma60']
        self.ma_std = self.ma_pd.loc[:, ['ma03', 'ma05', 'ma08']].std(axis=1)
        self.ma_mean = self.ma_pd.loc[:, ['ma03', 'ma05', 'ma08']].mean(axis=1)
        self.norstd = self.ma_std.div(self.ma_mean)
        self.name = self.twse[sid].name
        self.id = int(sid)
        self.timestamp = timestamp
        self.stock_pd[['capacity']] = self.stock_pd[['capacity']] / 1000

        #data['slop'] = 0.5*(stock_pd['close'].iloc[-1] - stock_pd['close'].iloc[-3])
        #data['slop'] = 0.5*(stock_ma03['close'].iloc[-1] - stock_ma03['close'].iloc[-2])
        #data['slop'] = 0.5*(stock_ma03['close'].iloc[-1] - stock_ma03['close'].iloc[-3])
        self.slop = 0.5 * (self.ma_pd.ma05.iloc[-1] - self.ma_pd.ma05.iloc[-2])
        self.nstdslop = 0.5 * (self.norstd.iloc[-1] - self.norstd.iloc[-2])
コード例 #8
0
ファイル: test_realtime.py プロジェクト: TCCinTaiwan/twstock
 def test_raises_json_decode_error(self):
     realtime.proxies_list = []
     responses.add(responses.GET,
                   'http://mis.twse.com.tw/stock/index.jsp',
                   status=200)
     responses.add(responses.GET,
                   self.FETCH_URL['2330'],
                   body='{json:wrong',
                   status=200)
     stock = realtime.get('2330')
コード例 #9
0
ファイル: test_realtime.py プロジェクト: TCCinTaiwan/twstock
 def test_raises_timeout_error(self):
     realtime.proxies_list = []
     responses.add(responses.GET,
                   'http://mis.twse.com.tw/stock/index.jsp',
                   status=200)
     responses.add(responses.GET,
                   self.FETCH_URL['2330'],
                   body=TimeoutError('Unittest Mock TimeoutError!!'),
                   status=200)
     stock = realtime.get('2330')
コード例 #10
0
ファイル: stocktools.py プロジェクト: cycle13/twstock
 def get_data(self):
     self.real_data = realtime.get(self.sid)
     self.real = self.real_data['realtime']
     self.info = self.real_data['info']
     self.latest_trade_price = self.real['latest_trade_price']
     self.accumulate_trade_volume = self.real['accumulate_trade_volume']
     self.best_bid_price = self.real['best_bid_price']
     self.best_ask_price = self.real['best_ask_price']
     self.best_bid_volume = self.real['best_bid_volume']
     self.best_ask_volume = self.real['best_ask_volume']
     self.start = self.real['open']
     self.high = self.real['high']
     self.low = self.real['low']
コード例 #11
0
ファイル: test_realtime.py プロジェクト: TCCinTaiwan/twstock
    def test_realtime_get_tpex_id(self):
        realtime.proxies_list = []
        responses.add(responses.GET,
                      'http://mis.twse.com.tw/stock/index.jsp',
                      status=200)
        responses.add(responses.GET,
                      self.FETCH_URL['6223'],
                      json=twstock.mock.get_stock_info('6223'),
                      status=200)
        stock = realtime.get('6223')

        self.assertTrue(stock['success'])
        self.assertEqual(stock['info']['code'], '6223')
コード例 #12
0
ファイル: test_realtime.py プロジェクト: TCCinTaiwan/twstock
 def test_proxy_raises_proxy_error(self):
     realtime.proxies_list = [
         'http://0.0.0.0:1234',
         'http://0.0.0.0:3128',
     ]
     responses.add(responses.GET,
                   'http://mis.twse.com.tw/stock/index.jsp',
                   status=200)
     responses.add(responses.GET,
                   self.FETCH_URL['2330'],
                   body=ProxyError('Unittest Mock ProxyError!!'),
                   status=200)
     stock = realtime.get('2330')
コード例 #13
0
ファイル: test_realtime.py プロジェクト: TCCinTaiwan/twstock
 def test_realtime_get_response_without_msg_array(self):
     realtime.proxies_list = []
     responses.add(responses.GET,
                   'http://mis.twse.com.tw/stock/index.jsp',
                   status=200)
     responses.add(responses.GET,
                   self.FETCH_URL['2330'],
                   json=twstock.mock.get_stock_info('without_msg_array'),
                   status=200)
     stock = realtime.get('2330')
     self.assertFalse(stock['success'])
     self.assertIn('rtmessage', stock)
     self.assertIn('rtcode', stock)
コード例 #14
0
ファイル: test_realtime.py プロジェクト: TCCinTaiwan/twstock
 def test_proxy(self):
     realtime.proxies_list = [
         'http://128.199.165.29:8888',
         'http://128.199.195.200:8080',
         'socks5://207.180.233.152:50775',
     ]
     responses.add(responses.GET,
                   'http://mis.twse.com.tw/stock/index.jsp',
                   status=200)
     responses.add(responses.GET,
                   self.FETCH_URL['2330'],
                   json=twstock.mock.get_stock_info('2330'),
                   status=200)
     stock = realtime.get('2330')
コード例 #15
0
def stock(item: Item):
    return _format_stock_info(realtime.get(item.id_list))
コード例 #16
0
    def test_realtime_get_tpex_id(self):
        stock = realtime.get('6223')

        self.assertTrue(stock['success'])
        self.assertEqual(stock['info']['code'], '6223')
コード例 #17
0
def real_time(stock_num):
    stock = realtime.get(stock_num)
    return stock
コード例 #18
0
from twstock import realtime

print('hello stock')
print(
    realtime.get([
        '2330', '2337', '2409', '2337', '2409', '2801', '2812', '2836', '2834',
        '2832', '2823', '2838', '2887', '6005', '5880'
    ]))
print('hello stock2')