end_timestamp=check_date, limit=1, level=self.level) if df_is_not_null(current_df): old = current_df.iloc[0, :]['qfq_close'] new = check_df['close'][0] # 相同时间的close不同,表明前复权需要重新计算 if old != new: self.factor = new / old self.last_timestamp = pd.Timestamp(check_date) return df.to_dict(orient='records') if __name__ == '__main__': parser = argparse.ArgumentParser() parser.add_argument('--level', help='trading level', default='1wk', choices=[item.value for item in IntervalLevel]) parser.add_argument('--codes', help='codes', default=['000338'], nargs='+') args = parser.parse_args() level = IntervalLevel(args.level) codes = args.codes init_process_log('jq_china_stock_{}_kdata.log'.format(args.level)) JQChinaStockBarRecorder(level=level, sleeping_time=0, codes=codes).run()
parser.add_argument('--exchanges', help='exchanges', default='binance', nargs='+', choices=[item for item in COIN_EXCHANGES]) parser.add_argument('--codes', help='codes', default='EOS/USDT', nargs='+', choices=[item for item in COIN_PAIRS]) args = parser.parse_args() level = IntervalLevel(args.level) exchanges = args.exchanges if type(exchanges) != list: exchanges = [exchanges] codes = args.codes if type(codes) != list: codes = [codes] init_process_log('coin_{}_{}_{}_kdata.log'.format( '-'.join(exchanges), '-'.join(codes).replace('/', ''), args.level)) CoinKdataRecorder(exchanges=exchanges, codes=codes, level=level, real_time=True).run()
return { 'security_item': entity, 'level': self.level.value, 'size': size } security_item = param['security_item'] size = param['size'] url = url.format(security_item.exchange, security_item.code, size) response = requests.get(url) response_json = demjson.decode(response.text) if response_json is None or len(response_json) == 0: return [] df = pd.DataFrame(response_json) df.rename(columns={'day': 'timestamp'}, inplace=True) df['timestamp'] = pd.to_datetime(df['timestamp']) df['name'] = security_item.name df['provider'] = 'sina' df['level'] = param['level'] return df.to_dict(orient='records') if __name__ == '__main__': init_process_log('sina_china_etf_day_kdata.log') ChinaETFDayKdataRecorder(level=IntervalLevel.LEVEL_1DAY).run()
from zvt.recorders.eastmoney.meta.china_stock_meta_recorder import ChinaStockMetaRecorder logger = logging.getLogger(__name__) sched = BackgroundScheduler() @sched.scheduled_job('cron', hour=1, minute=00) def run(): while True: try: ChinaStockListSpider(provider='eastmoney').run() ChinaStockCategoryRecorder().run() ChinaStockMetaRecorder().run() break except Exception as e: logger.exception('meta runner error:{}'.format(e)) time.sleep(60) if __name__ == '__main__': init_process_log('eastmoney_china_stock_meta.log') run() sched.start() sched._thread.join()
from zvt.recorders.eastmoney.trading.manager_trading_recorder import ManagerTradingRecorder from zvdata.utils.utils import init_process_log logger = logging.getLogger(__name__) sched = BackgroundScheduler() @sched.scheduled_job('cron', hour=1, minute=00) def run(): while True: try: HolderTradingRecorder().run() ManagerTradingRecorder().run() break except Exception as e: logger.exception('trading runner error:{}'.format(e)) time.sleep(60) if __name__ == '__main__': init_process_log('trading.log') run() sched.start() sched._thread.join()
logger = logging.getLogger(__name__) sched = BackgroundScheduler() @sched.scheduled_job('cron', hour=16, minute=00) def run(): while True: try: week_kdata = ChinaStockKdataRecorder( level=IntervalLevel.LEVEL_1WEEK) week_kdata.run() mon_kdata = ChinaStockKdataRecorder(level=IntervalLevel.LEVEL_1MON) mon_kdata.run() break except Exception as e: logger.exception('quote runner error:{}'.format(e)) time.sleep(60) if __name__ == '__main__': init_process_log('eastmoney_quote.log') run() sched.start() sched._thread.join()
from zvdata.utils.utils import init_process_log from zvt.recorders.joinquant.quotes.jq_stock_bar_recorder import JQChinaStockBarRecorder logger = logging.getLogger(__name__) sched = BackgroundScheduler() # 每周6抓取周线和月线数据 @sched.scheduled_job('cron', day_of_week=5, hour=3, minute=0) def run(): while True: try: JQChinaStockBarRecorder(level=IntervalLevel.LEVEL_1WEEK).run() JQChinaStockBarRecorder(level=IntervalLevel.LEVEL_1MON).run() break except Exception as e: logger.exception('joinquant bar runner error:{}'.format(e)) time.sleep(60) if __name__ == '__main__': init_process_log('joinquant_bar_runner.log') run() sched.start() sched._thread.join()
from zvt.recorders.eastmoney.finance.china_stock_balance_sheet_recorder import ChinaStockBalanceSheetRecorder from zvt.recorders.eastmoney.finance.china_stock_income_statement_recorder import ChinaStockIncomeStatementRecorder from zvdata.utils.utils import init_process_log logger = logging.getLogger(__name__) sched = BackgroundScheduler() @sched.scheduled_job('cron', hour=2, minute=00) def run(): while True: try: ChinaStockBalanceSheetRecorder().run() ChinaStockIncomeStatementRecorder().run() break except Exception as e: logger.exception('finance runner 1 error:{}'.format(e)) time.sleep(60) if __name__ == '__main__': init_process_log('eastmoney_balance_sheet_income_statement.log') run() sched.start() sched._thread.join()
from zvt.recorders.eastmoney.finance.china_stock_cash_flow_recorder import ChinaStockCashFlowRecorder from zvt.recorders.eastmoney.finance.china_stock_finance_factor_recorder import ChinaStockFinanceFactorRecorder from zvt.recorders.eastmoney.finance.china_stock_income_statement_recorder import ChinaStockIncomeStatementRecorder from zvdata.utils.utils import init_process_log logger = logging.getLogger(__name__) sched = BackgroundScheduler() @sched.scheduled_job('cron', hour=2, minute=00) def run(): while True: try: ChinaStockFinanceFactorRecorder().run() ChinaStockCashFlowRecorder().run() break except Exception as e: logger.exception('finance runner 0 error:{}'.format(e)) time.sleep(60) if __name__ == '__main__': init_process_log('eastmoney_finance_factor_cash_flow.log') run() sched.start() sched._thread.join()
end_timestamp = f'{year}-{mon}-{day}' users = get_data(provider='github', data_schema=GithubUser, start_timestamp=start_timestamp, end_timestamp=end_timestamp, return_type='domain', limit=1000) for seed in range(0, len(GithubAccount.tokens)): for user in users: resp = request_with_auth(url=url.format(user.code), method='put', token=GithubAccount.get_token(seed=seed), headers={'Content-Length': '0'}) if resp.status_code == 204: print('follow:{} ok'.format(user.code)) else: print(resp.status_code) if __name__ == '__main__': init_process_log('follow_someone.log') follow_someone() sched.start() sched._thread.join()
from zvt.recorders.sina.meta.sina_china_stock_category_recorder import SinaChinaStockCategoryRecorder from zvt.recorders.sina.money_flow.sina_index_money_flow_recorder import SinaIndexMoneyFlowRecorder from zvdata.utils.utils import init_process_log logger = logging.getLogger(__name__) sched = BackgroundScheduler() @sched.scheduled_job('cron', hour=17, minute=00) def run(): while True: try: SinaChinaStockCategoryRecorder().run() SinaIndexMoneyFlowRecorder().run() break except Exception as e: logger.exception('sina runner error:{}'.format(e)) time.sleep(60) if __name__ == '__main__': init_process_log('sina_runner.log') run() sched.start() sched._thread.join()
start_timestamp = f'{year}-{mon}-{day}' year = random.randint(2015, 2019) mon = random.randint(1, 12) day = random.randint(1, 28) end_timestamp = f'{year}-{mon}-{day}' repos = get_data(provider='github', data_schema=GithubRepo, start_timestamp=start_timestamp, end_timestamp=end_timestamp, return_type='domain', limit=5000) for seed in range(0, len(GithubAccount.tokens)): for repo in repos: resp = request_with_auth(url=url.format(repo.code, repo.name), method='put', token=GithubAccount.get_token(seed=seed), headers={'Content-Length': '0'}) if resp.status_code == 204: print('star:{} ok'.format(repo.full_name)) else: print(resp.status_code) if __name__ == '__main__': init_process_log('star_some_repo.log') star_some_repo() sched.start() sched._thread.join()
from zvdata import IntervalLevel from zvdata.utils.utils import init_process_log from zvt.recorders.joinquant.quotes.jq_stock_kdata_recorder import JQChinaStockKdataRecorder logger = logging.getLogger(__name__) sched = BackgroundScheduler() @sched.scheduled_job('cron', hour=16, minute=0) def run(): while True: try: JQChinaStockKdataRecorder(level=IntervalLevel.LEVEL_1DAY).run() break except Exception as e: logger.exception('joinquant kdata runner error:{}'.format(e)) time.sleep(60) if __name__ == '__main__': init_process_log('joinquant_kdata_runner.log') run() sched.start() sched._thread.join()
from zvt.recorders.eastmoney.holder.top_ten_holder_recorder import TopTenHolderRecorder from zvt.recorders.eastmoney.holder.top_ten_tradable_holder_recorder import TopTenTradableHolderRecorder from zvdata.utils.utils import init_process_log logger = logging.getLogger(__name__) sched = BackgroundScheduler() @sched.scheduled_job('cron', hour=1, minute=00) def run(): while True: try: TopTenHolderRecorder().run() TopTenTradableHolderRecorder().run() break except Exception as e: logger.exception('holder runner error:{}'.format(e)) time.sleep(60) if __name__ == '__main__': init_process_log('eastmoney_holder.log') run() sched.start() sched._thread.join()
from zvdata.utils.utils import init_process_log logger = logging.getLogger(__name__) sched = BackgroundScheduler() @sched.scheduled_job('cron', hour=2, minute=00) def run(): while True: try: DividendFinancingRecorder().run() RightsIssueDetailRecorder().run() SPODetailRecorder().run() DividendDetailRecorder().run() break except Exception as e: logger.exception('dividend_financing runner error:{}'.format(e)) time.sleep(60) if __name__ == '__main__': init_process_log('eastmoney_dividend_financing.log') run() sched.start() sched._thread.join()
from zvt.recorders.eastmoney.finance.china_stock_income_statement_recorder import ChinaStockIncomeStatementRecorder from zvdata.utils.utils import init_process_log logger = logging.getLogger(__name__) sched = BackgroundScheduler() @sched.scheduled_job('cron', hour=2, minute=00) def run(): while True: try: ChinaStockFinanceFactorRecorder().run() ChinaStockCashFlowRecorder().run() ChinaStockBalanceSheetRecorder().run() ChinaStockIncomeStatementRecorder().run() break except Exception as e: logger.exception('finance runner error:{}'.format(e)) time.sleep(60) if __name__ == '__main__': init_process_log('finance.log') run() sched.start() sched._thread.join()
'provider': 'ccxt', # 'id': trade['id'], 'level': 'tick', 'order': trade['order'], 'timestamp': to_pd_timestamp(trade['timestamp']), 'price': trade['price'], 'volume': trade['amount'], 'direction': trade['side'], 'order_type': trade['type'], 'turnover': trade['price'] * trade['amount'] } kdata_list.append(kdata_json) return kdata_list else: self.logger.warning("exchange:{} not support fetchOHLCV".format(entity.exchange)) if __name__ == '__main__': parser = argparse.ArgumentParser() parser.add_argument('--exchanges', help='exchanges', default='binance', nargs='+', choices=[item for item in COIN_EXCHANGES]) parser.add_argument('--codes', help='codes', default='EOS/USDT', nargs='+', choices=[item for item in COIN_PAIRS]) args = parser.parse_args() init_process_log('coin_tick_kdata.log') CoinKdataRecorder(codes=['EOS/USDT']).run()
from apscheduler.schedulers.background import BackgroundScheduler from zvdata.utils.utils import init_process_log from zvt.recorders.joinquant.quotes.jq_china_stock_kdata_recorder import JQChinaStockKdataRecorder logger = logging.getLogger(__name__) sched = BackgroundScheduler() @sched.scheduled_job('cron', hour=9, minute=25) def run(): while True: try: JQChinaStockKdataRecorder().run() break except Exception as e: logger.exception('joinquant quote runner error:{}'.format(e)) time.sleep(60) if __name__ == '__main__': init_process_log('joinquant_quote_runner.log') run() sched.start() sched._thread.join()