Exemplo n.º 1
0
            'size': size,
            'level': self.level,
            'ccxt_level': self.ccxt_trading_level
        }


if __name__ == '__main__':
    parser = argparse.ArgumentParser()
    parser.add_argument('--level',
                        help='trading level',
                        default='15m',
                        choices=[item.value for item in TradingLevel])
    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 = TradingLevel(args.level)

    init_process_log('coin_{}_kdata.log'.format(args.level))

    CoinKdataRecorder(codes=['EOS/USDT'], level=level).run()
Exemplo n.º 2
0
                        help='trading level',
                        default='1m',
                        choices=[item.value for item in TradingLevel])
    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 = TradingLevel(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).run()
Exemplo n.º 3
0
                        stock_code = category['code']
                        stock_id = china_stock_code_to_id(stock_code)
                        index_id = index_item.id
                        the_list.append({
                            'id':
                            '{}_{}'.format(index_id, stock_id),
                            'index_id':
                            index_id,
                            'stock_id':
                            stock_id
                        })
                    if the_list:
                        df = pd.DataFrame.from_records(the_list)
                        df_to_db(data_schema=self.data_schema,
                                 df=df,
                                 provider=self.provider)

                    self.logger.info('finish recording index:{},{}'.format(
                        index_item.category, index_item.name))

                except Exception as e:
                    self.logger.error("error:,resp.text:", e, resp.text)
                self.sleep()


if __name__ == '__main__':
    init_process_log('sina_china_stock_category.log')

    recorder = SinaChinaStockCategoryRecorder()
    recorder.run()
Exemplo n.º 4
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 zvt.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()
Exemplo n.º 5
0
                    }
                    kdata_list.append(kdata_json)

                return kdata_list
            except Exception as e:
                logger.exception("record_kdata for security:{} failed".format(
                    entity.id))
        else:
            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()
Exemplo n.º 6
0
                                   to_time_str(start), to_time_str(end))

            response = requests.get(url,
                                    headers=EASTMONEY_ETF_NET_VALUE_HEADER)
            response_json = demjson.decode(response.text)
            response_df = pd.DataFrame(response_json['Data']['LSJZList'])

            # 最后一页
            if response_df.empty:
                break

            response_df['FSRQ'] = pd.to_datetime(response_df['FSRQ'])
            response_df['JZZZL'] = pd.to_numeric(response_df['JZZZL'],
                                                 errors='coerce')
            response_df['LJJZ'] = pd.to_numeric(response_df['LJJZ'],
                                                errors='coerce')
            response_df = response_df.fillna(0)
            response_df.set_index('FSRQ', inplace=True, drop=True)

            df = pd.concat([df, response_df])
            page += 1

            self.sleep()

        return df


if __name__ == '__main__':
    init_process_log('sina_china_etf_day_kdata.log')
    ChinaETFDayKdataRecorder(level=TradingLevel.LEVEL_1DAY).run()
Exemplo n.º 7
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 zvt.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()
Exemplo n.º 8
0
                        kdata.hfq_low = df.loc[kdata.timestamp, 'low']
                        kdata.factor = df.loc[kdata.timestamp, 'factor']
                self.session.commit()

                latest_factor = df.factor[-1]
                # factor not change yet, no need to reset the qfq past
                if latest_factor == self.current_factors.get(security_item.id):
                    sql = 'UPDATE stock_day_kdata SET qfq_close=hfq_close/{},qfq_high=hfq_high/{}, qfq_open= hfq_open/{}, qfq_low= hfq_low/{} where ' \
                          'security_id=\'{}\' and level=\'{}\' and (qfq_close isnull or qfq_high isnull or qfq_low isnull or qfq_open isnull)'.format(
                        latest_factor, latest_factor, latest_factor, latest_factor, security_item.id, self.level.value)
                else:
                    sql = 'UPDATE stock_day_kdata SET qfq_close=hfq_close/{},qfq_high=hfq_high/{}, qfq_open= hfq_open/{}, qfq_low= hfq_low/{} where ' \
                          'security_id=\'{}\' and level=\'{}\''.format(latest_factor,
                                                                       latest_factor,
                                                                       latest_factor,
                                                                       latest_factor,
                                                                       security_item.id,
                                                                       self.level.value)
                self.logger.info(sql)
                self.session.execute(sql)
                self.session.commit()

    def on_stop(self):
        super().on_stop()
        logout()


if __name__ == '__main__':
    init_process_log('china_stock_day_kdata.log')
    ChinaStockDayKdataRecorder(level=TradingLevel.LEVEL_1DAY).run()
Exemplo n.º 9
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 zvt.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()
Exemplo n.º 10
0
                self.logger.info(sql)
                self.session.execute(sql)
                self.session.commit()

        # TODO:use netease provider to get turnover_rate
        self.logger.info('use netease provider to get turnover_rate')

    def on_stop(self):
        super().on_stop()
        logout()


if __name__ == '__main__':
    parser = argparse.ArgumentParser()
    parser.add_argument('--level',
                        help='trading level',
                        default='1d',
                        choices=[item.value for item in TradingLevel])
    parser.add_argument('--codes',
                        help='codes',
                        default=SAMPLE_STOCK_CODES,
                        nargs='+')

    args = parser.parse_args()

    level = TradingLevel(args.level)
    codes = args.codes

    init_process_log('jq_china_stock_{}_kdata.log'.format(args.level))
    JQChinaStockKdataRecorder(level=level, sleeping_time=0, codes=codes).run()
Exemplo n.º 11
0
from zvt.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:
            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()
Exemplo n.º 12
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 zvt.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()
Exemplo n.º 13
0
from zvt.recorders.eastmoney.trading.manager_trading_recorder import ManagerTradingRecorder
from zvt.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()
Exemplo n.º 14
0
from zvt.recorders.eastmoney.finance.china_stock_income_statement_recorder import ChinaStockIncomeStatementRecorder
from zvt.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()