Exemple #1
0
                               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()
Exemple #2
0
    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()
Exemple #3
0
        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()
Exemple #4
0
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()
Exemple #5
0
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()
Exemple #6
0
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()
Exemple #7
0
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()
Exemple #8
0
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()
Exemple #9
0
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()
Exemple #10
0
    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()
Exemple #11
0
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()
Exemple #12
0
    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()
Exemple #13
0
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()
Exemple #14
0
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()
Exemple #15
0
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()
Exemple #16
0
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()
Exemple #17
0
                    '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()