Ejemplo n.º 1
0
def use_ma(dss):
    dates = get_trading_dates(dss)
    preday = dates[-2]
    today = dates[-1]
    print(today)
    #pfFile = dss + 'csv/hold.csv'
    b1 = Book(dss)

    codes = []
    for tactic in b1.tactic_List:
        if tactic.tacticName == 'boll':
            for hold in tactic.hold_Array:
                code = hold[0]
                codes.append(code)

    codes += hit_ma(dss, today)

    r = []
    symbols = set(codes)
    print(symbols)
    for vtSymbol in symbols:
        df = ts.get_realtime_quotes(vtSymbol)
        name = df.at[0, 'name']
        r.append([vtSymbol, 1, 0.01, '0.00003', 0, 0.01, name])
    df = pd.DataFrame(r,
                      columns=[
                          'vtSymbol', 'size', 'priceTick',
                          'variableCommission', 'fixedCommission', 'slippage',
                          'name'
                      ])
    filename = dss + 'csv/setting_stk_boll' + '.csv'
    df.to_csv(filename, index=False)

    return r
Ejemplo n.º 2
0
    def loadHold(self):
        """每日重新加载持仓"""

        b1 = Book(self.engine.dss)
        for tactic in b1.tactic_List:
            if tactic.tacticName == self.name:
                for hold in tactic.hold_Array:
                    code = hold[0]
                    num = hold[2]
                    self.posDict[code] = num
Ejemplo n.º 3
0
def stare_hold():
    print('stare_hold begin... ')
    loaded = False
    codes = ()
    mailed = []

    while True:
        time.sleep(30)
        if is_price_time():
            # 读入codes
            if not loaded:
                b1 = Book(dss)
                codes = b1.get_codes()
                loaded = True

            for code in codes:
                try:
                    time.sleep(1)
                    df = ts.get_realtime_quotes(code)
                    name = df.at[0, 'name']
                    price = float(df.at[0, 'price'])
                    pre_close = float(df.at[0, 'pre_close'])
                    #print(code, price, pre_close)
                    if code not in mailed:
                        if price / pre_close - 1 > 0.05:
                            send_email(dss, 'up_warn', str(code + ' ' + name))
                            #print('up_warn', str(code+' '+name))
                            mailed.append(code)
                        if price / pre_close - 1 < -0.05:
                            send_email(dss, 'down_warn',
                                       str(code + ' ' + name))
                            #print('down_warn', str(code+' '+name))
                            mailed.append(code)
                except Exception as e:
                    print('error')
                    print(e)
        else:
            loaded = False
            codes = ()
            mailed = []
            time.sleep(300)
Ejemplo n.º 4
0
def on_order_done(order_dict):
    #to_log( 'in on_order_done ' + str(order_dict.keys()) )
    for key in order_dict.keys():
        ins_dict = order_dict[key]
        if ins_dict['done'] == False:
            try:
                #to_log( 'in on_order_done ' + str(ins_dict) )
                df_q = ts.get_realtime_quotes(ins_dict['code'])
                name = df_q.at[0, 'name']
                price_now = float(df_q.at[0, 'price'])
                #to_log(name + price_now)
                if ins_dict['ins'] == 'buy_order' and ins_dict[
                        'price'] > price_now:
                    b1 = Book(dss)
                    b1.deal_ins(ins_dict.copy())
                    ins_dict['done'] = True
                if ins_dict['ins'] == 'sell_order' and ins_dict[
                        'price'] < price_now:
                    b1 = Book(dss)
                    b1.deal_ins(ins_dict.copy())
                    ins_dict['done'] = True
            except Exception as e:
                to_log('error in on_order_done')
                to_log(e)
Ejemplo n.º 5
0
import time
import os
import pandas as pd
import tushare as ts

from nature import Book

dss = 'ini\\'
b1 = Book(dss, 'hold_security.csv')

ins_dict = {
    'ins': 'open_portfolio',
    'portfolio': 'overlap',
    'code': 'profit',
    'agent': 'pingan'
}
#ins_dict = {'ins':'close_portfolio', 'portfolio':'overlap','agent':'pingan'}

b1.deal_ins(ins_dict)
Ejemplo n.º 6
0
import time
import os
import pandas as pd
import tushare as ts

from nature import Book



dss = 'ini\\'
b1 = Book(dss,'hold_security.csv')

b1.pandian()