def send_mail(message, receipents=None):
    from email.mime.multipart import MIMEMultipart
    from email.mime.text import MIMEText

    if receipents is None:
        receipents = "[email protected],[email protected]"
    msg = MIMEMultipart('alternative')
    msg['Subject'] = "Link"
    msg['From'] = "*****@*****.**"
    msg['To'] = receipents
    text = config_service.getProperty(section_name=config_service.QUANTAXIS_RUNTIME_CONFIG_SECTION_NAME,
                                      property_name=config_service.TEXT_PART_OF_EMAIL)

    part1 = MIMEText("Crius Data Analysis Report", 'plain')
    part2 = MIMEText(message, 'html')

    msg.attach(part1)
    msg.attach(part2)

    acct = config_service.getProperty(section_name=config_service.GMAIL_SECTION_NAME,
                                      property_name=config_service.GM_ACCOUNT_NAME)
    password = config_service.getProperty(section_name=config_service.GMAIL_SECTION_NAME,
                                          property_name=config_service.GM_PASSWORD_NAME)
    server_name = config_service.getProperty(section_name=config_service.GMAIL_SECTION_NAME,
                                             property_name=config_service.GM_SERVER_DNS_NAME)
    server_port = config_service.getProperty(section_name=config_service.GMAIL_SECTION_NAME,
                                             property_name=config_service.GM_SERVER_SSL_SMTP_PORT_NAME)
    acct = '*****@*****.**'
    password = '******'
    server_name = 'smtp.gmail.com'
    server_port = 465
    context = ssl.create_default_context()
    server = smtplib.SMTP_SSL(host=server_name, port=server_port, context=context)
    server.login(acct, password)
    server.sendmail(from_addr=acct, to_addrs=receipents, msg=msg)
 def __new__(cls, token=None):
     if (cls._pro is None):
         if (token is None):
             token = config_service.getProperty(
                 section_name=config_service.TOKEN_SECTION_NAME,
                 property_name=config_service.TS_TOKEN_NAME)
         cls._pro = ts.pro_api(token)
         return cls._pro
     else:
         return cls._pro
Exemple #3
0
def set_token(token=None):
    try:
        if token is None:
            # 从~/.quantaxis/setting/config.ini中读取配置
            # token = QASETTING.get_config('TSPRO', 'token', None)
            token = config_service.getProperty(section_name=config_service.TOKEN_SECTION_NAME,
                                               property_name=config_service.TS_TOKEN_NAME)
        else:
            QASETTING.set_config('TSPRO', 'token', token)
        ts.set_token(token)
    except:
        if token is None:
            print('请设置tushare的token')
        else:
            print('请升级tushare 至最新版本 pip install tushare -U')
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np
import itertools

#Load Tushare
from rqalpha.apis.api_base import history_bars, get_position
from rqalpha.mod.rqalpha_mod_sys_accounts.api.api_stock import order_target_value, order_value

import AY.Crius.Utils.configuration_file_service as config_service
import tushare as ts

token = config_service.getProperty(section_name=config_service.TOKEN_SECTION_NAME,
                                   property_name=config_service.TS_TOKEN_NAME)
pro = ts.pro_api(token)

#df = pro.query('daily', ts_code='000001.SZ', start_date='20180701', end_date='20190718')


#---------------------------------------------------------------------------

def ma(df, n=10):
    """
    移动平均线 Moving Average
    MA(N)=(第1日收盘价+第2日收盘价—+……+第N日收盘价)/N
    """
    pv = pd.DataFrame()
    pv['date'] = df['trade_date']
    pv['v'] = df.close.rolling(n).mean()
    return pv