Example #1
0
# encoding=utf-8
import pymysql
from sqlalchemy import create_engine

from my_config.log import MyLog

logger = MyLog('database_api').logger


class DatabaseApi:
    def __init__(self):
        pass

    @staticmethod
    def gen_db_conn(db_info):
        """
        建立数据库连接
        :param db_info:
        包含 ip, port, user, passwd, db_name 这些字段
        :return:
        """
        return pymysql.connect(host=db_info['ip'],
                               port=db_info['port'],
                               user=db_info['user'],
                               passwd=db_info['passwd'],
                               db=db_info['db_name'],
                               charset='utf8')

    @staticmethod
    def gen_db_engine(db_info):
        """
# encoding=utf-8
import json
import joblib
import pandas as pd
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split

from data_source.Data_Sub import add_stk_index_to_df, Index
from data_source.auth_info import jq_login
from data_source.stk_data_class import StkData
from my_config.GlobalSetting import root_path
from my_config.log import MyLog
from sdk.pic_plot.plot_opt_sub import add_axis
from pylab import *

logger = MyLog('rf_class').logger

mpl.rcParams['font.sans-serif'] = ['SimHei']
matplotlib.rcParams['axes.unicode_minus'] = False
"""
使用随机森林对stk进行预测
本文件存储“数据预处理”相关的类
"""


class DataProForStudy(StkData):
    """
    为随机森林模型提供“数据预处理”的类
    """
    def __init__(self, stk_code, count=400, freq='1d', window=20):
        super().__init__(stk_code, freq=freq)
Example #3
0
# encoding=utf-8
"""
trade 时间判断
"""
import datetime

from data_source.futures_data import FuturesData
from my_config.global_setting import root_path
from sdk.pickle_save_sub import load_p
from my_config.log import MyLog
logger = MyLog('trade_timespan_judge').logger


class TradeTimeSpanJudge:
    def __init__(self):
        self.trade_timespan = load_p(load_location=root_path +
                                     '/data_source/LocalData/local_data_save/',
                                     file_name='futures_trade_timespan')

    def futures_trade_timespan_judege(self, stk_code):

        # 获取时间段
        kind = FuturesData.get_futures_kind(stk_code)
        t_s_f = list(filter(lambda x: x['kind'] == kind, self.trade_timespan))

        if len(t_s_f) == 0:
            logger.debug('%s品种未能查询到td时段,默认不在td中!' % str(stk_code))
            return False
        else:
            t_s = t_s_f[0]
Example #4
0
# encoding=utf-8
"""
bias相关的类
"""
import logging
import time

from data_source.Data_Sub import get_k_data_jq
from data_source.auth_info import jq_login
from data_source.stk_data_class import StkData
from my_config.log import MyLog
from pylab import plt
from sdk.MyTimeOPT import get_current_datetime_str
import jqdatasdk as jq
logger_eml = MyLog('bias_eml', console_level=logging.INFO).logger
logger = MyLog('bias', file_level=logging.WARNING,
               console_level=logging.INFO).logger
import json
import os
import numpy as np


class Bias(StkData):
    def __init__(self,
                 stk_code,
                 freq,
                 hist_count=2000,
                 span_q=3,
                 span_s=15,
                 local_data_dir='./'):
        super().__init__(stk_code, freq)
Example #5
0
# encoding=utf-8
import tensorflow as tf
import tushare as ts
import numpy as np
import pandas as pd
import os

from pylab import plt

from my_config.log import MyLog
from research.lstm_predict.demo1.lstm_data_process import GenLstmTrainData

logger_eml = MyLog('lstm_predict').logger
"""

"""


class NewTf:
    def __init__(self):
        self.tf_model = None

        self.x_train = None
        self.y_train = None

        self.x_test = None
        self.y_test = None

        self.model_name = None
        self.save_dir = None
        self.model_save_url = None
import talib
import tushare as ts
import jqdatasdk as jq
import numpy as np
import pandas as pd
import math
import my_config.future_global_value as fgv

from data_source.Data_Sub import get_k_data_jq, add_stk_index_to_df, Index
from data_source.local_data.update_local_data import LocalData
from sdk.DataPro import relative_rank
from sdk.MyTimeOPT import get_current_date_str, get_current_datetime_str
from data_source.auth_info import jq_login
from my_config.log import MyLog

logger = MyLog('stk_data').logger
logger_eml = MyLog('stk_data_eml').logger


class StkData:
    """
    stk数据基础类,用来准备一些基本的数据
    数据预处理所用函数皆在于此
    """
    def __init__(self, stk_code, freq='1d'):

        self.freq = freq

        # 用此参数请确保为分钟数据
        self.freq_d = int(self.freq.replace('m', '').replace('d', ''))
        self.stk_code = stk_code
Example #7
0
# encoding=utf-8
"""
仿真
"""
import time

from Server.futures.ctp.my_ctp_api.ctp_class_no_use import MyCtp
from Server.futures.futures_account_info.account_info import ctp_login_info_sim

from my_config.log import MyLog
ml = MyLog('ctp_sim')
logger = ml.logger

if __name__ == '__main__':
    mctp = MyCtp(ctp_login_info=ctp_login_info_sim)
    mctp.login()

    while True:
        if mctp.ctp_spi.login_success:
            # mctp.req_order_field_insert(
            #     instrument_id='m2009',
            #     price=2700,
            #     volume=1,
            #     offset='0',
            #     direction='b')
            # mctp.ctp_spi.login_success = False

            # 撤
            # mctp.req_order_action(mctp.ctp_spi.ccl.cmd_dict[list(mctp.ctp_spi.ccl.cmd_dict.keys())[0]].cmd_id)

            # 查
# encoding=utf-8

"""
本脚本实现检测日志功能

原理:
监控文件修改情况,检测到有修改,
便直接将该文件邮件发送给指定联系人
"""
import chardet

from my_config.GlobalSetting import root_path
from my_config.log import MyLog
from sdk.auto_email.email_class import MyEmail

logger = MyLog('file_monitor').logger
import os
import time


class GetFileContext:
    def __init__(self, amount=1000):
        """
        检测到日志改动时,将最后指定数量的数据取出,放在邮件正文,方便查看
        """
        self.amount = amount
    
    @staticmethod
    def judge_file_code_format(f_url):
        with open(f_url, 'rb') as f:
            data = f.read()
Example #9
0
# encoding=utf-8
"""
bias相关的类
"""
import time

from data_source.Data_Sub import get_k_data_jq, get_rt_price
from data_source.auth_info import jq_login
from data_source.stk_data_class import StkData
from my_config.log import MyLog
from pylab import plt
from sdk.MyTimeOPT import get_current_datetime_str

logger_eml = MyLog('bias_eml').logger
logger = MyLog('bias').logger
import json
import os
import numpy as np


class Bias(StkData):
    def __init__(self,
                 stk_code,
                 freq,
                 hist_count=2000,
                 span_q=3,
                 span_s=15,
                 local_data_dir='./'):
        super().__init__(stk_code, freq)
        self.hist_count = hist_count
        self.span_s = span_s
Example #10
0
from email.header import decode_header
from email.mime.multipart import MIMEMultipart
from email.mime.base import MIMEBase
from email.mime.text import MIMEText
from email.mime.image import MIMEImage
from email.encoders import encode_base64
from email.parser import Parser
from email.utils import parseaddr

import time

from my_config.GlobalSetting import root_path
from my_config.log import MyLog
from sdk.MyTimeOPT import get_current_datetime_str

logger = MyLog('email_class').logger
logger_eml = MyLog('email_class_eml').logger

class MyEmail:
    def __init__(self, sender_info_json_url, modeng=False):
        
        self.sender_info_json_url = sender_info_json_url
        self.modeng = modeng
        self.sender = ''
        self.passwd = ''
        self.smtp_domain = ''  # 'smtp.163.com'
        
        self.config_sender_info_by_json()
    
    def config_sender_info_by_json(self):
        """
import talib
import tushare as ts
import jqdatasdk as jq
import numpy as np
import pandas as pd
import math

from Server.futures.futures_sub import future_global_value as fgv
from Server.futures.futures_sub.future_global_value import debug_date
from data_source.Data_Sub import get_k_data_jq, add_stk_index_to_df, Index
from data_source.LocalData.update_local_data import LocalData
from sdk.DataPro import relative_rank
from sdk.MyTimeOPT import get_current_date_str, add_date_str, get_current_datetime_str
from data_source.auth_info import jq_login
from my_config.log import MyLog
logger = MyLog('stk_data', console_level=logging.INFO).logger
logger_eml = MyLog('stk_data_eml').logger


class StkData:
    """
    stk数据基础类,用来准备一些基本的数据
    数据预处理所用函数皆在于此
    """
    def __init__(self, stk_code, freq='1d'):

        self.freq = freq

        # 用此参数请确保为分钟数据
        self.freq_d = int(self.freq.replace('m', '').replace('d', ''))
        self.stk_code = stk_code
Example #12
0
# encoding=utf-8
"""
根据标准差来计算格子
"""
import numpy as np
import pandas as pd
import copy
from server.futures.futures_sub.future_global_value import debug_date
from data_source.Data_Sub import get_k_data_jq
from data_source.auth_info import jq_login
from sdk.MyTimeOPT import add_date_str, get_current_date_str
from data_source.stk_data_class import StkData
from my_config.log import MyLog
import logging
logger_debug = MyLog('reseau_cal').logger
logger_eml = MyLog('reseau_cal_eml', file_level=logging.DEBUG).logger
"""---------------------- 定义全局变量 ------------------------"""
today_df_update_date = ''
today_df = pd.DataFrame()

class Reseau(StkData):
    """
    动态网格策略底层实现类
    """
    def __init__(self, stk_code):
        # 将一天用的网格信息记录下来,
        # 避免每次重复计算,实现一天只计算一次
        super().__init__(stk_code)
        self.stk_code = stk_code
    def cal_rt_rsv(self):