コード例 #1
0
ファイル: TSoperation.py プロジェクト: SidGor/GroupFactor
def TSreadSingleStock(Ticker,
                      Factor=["close"],
                      TsAccount=None,
                      TsPassword=None):

    if (TsAccount == None) or (TsPassword == None):

        try:
            acc_f = pd.read_csv("D:/TSaccount.csv")
        except Exception as e:
            return e

    try:

        ts.ConnectServer("tsl.tinysoft.com.cn", 443)

        dl = ts.LoginServer(acc_f.Account[0],
                            acc_f.Password[0])  #Tuple(ErrNo,ErrMsg) Login

        ts.Disconnect()  # Log out.

    except Exception as e:
        return e


# 2. GetData

# 3. Export(save data)
コード例 #2
0
def tsl_login():
    ts.ConnectServer("tsl.tinysoft.com.cn", 443)
    dl = ts.LoginServer("htccqh", "htfc2018")  # Tuple(ErrNo,ErrMsg) 登陆用户
    if dl[0] == 0:
        print("登陆成功")
        print("服务器设置:", ts.GetService())
        ts.SetComputeBitsOption(64)  # 设置计算单位
        print("计算位数设置:", ts.GetComputeBitsOption())
    else:
        print(dl[1])
コード例 #3
0
ファイル: hello.py プロジェクト: scirocc/test1
def get_sCode_sDate(sDate):
    while True:
        ts.ConnectServer('211.100.23.205', 443)
        # ts.LoginServer('chancehunt', 'chnchnt')
        ts.LoginServer('fuchunguang', 'Fcg=888888')
        if ts.Logined() == True:
            print('已登录')
            # sql = 'stocks:=GetBk(\'上证A股;深证A股;创业板;中小企业板\');return stocks;'
            # result = (ts.RemoteExecute(sql, {}))[1]
            sCode = []
            # for data in result:
            #     sCode.append(data.decode('utf8'))
            sCode.append('SH000300')
            sCode.append('SH000016')
            sCode.append('SH000905')
            ts.Disconnect()
            break
    return (sCode)
コード例 #4
0
def getData(sCode, sDate):
    while True:
        ts.ConnectServer('211.100.23.205', 443)
        ts.LoginServer('fuchunguang', 'Fcg=888888')
        if ts.Logined() == True:
            print('已登录')
            daycount = 0
            for code in sCode:
                #########deal min1
                hCodeInfo1min = {}
                with open('./{}_5s.csv'.format(code), 'w') as f:
                    f.write('code,mtime,open,high,low,close,vol,amount\n')
                    for date in sDate:
                        daycount += 1
                        # sql = 'setsysparam(pn_stock(),\'{}\');' \
                        #       'setsysparam(PN_Cycle(), cy_1m());setsysparam(pn_date(),inttodate({}));' \
                        #       'return nday({},"mdate",datetimetostr(sp_time()),"open",Open(),"high",High(),"low",Low(),"close",Close(),"vol",Vol(),"amount",Amount());' \
                        #     .format(code, date, 240)  # 240个正好是一天
                        sql = 'setsysparam(pn_stock(),\'{}\');' \
                              'setsysparam(PN_Cycle(), cy_5s());setsysparam(pn_date(),inttodate({}));' \
                              'return nday({},"mdate",datetimetostr(sp_time()),"open",Open(),"high",High(),"low",Low(),"close",Close(),"vol",Vol(),"amount",Amount());' \
                            .format(code, date, 2880)  # 240个正好是一天
                        result = (ts.RemoteExecute(sql, {}))[1]
                        if result:
                            for data in result:
                                temp = data[b'mdate'].decode('gbk').replace(
                                    ':', '').replace('-', '').replace(' ', '')
                                if temp[:4] == '2019' or temp[:4] == '2020':
                                    print(data[b'vol'])
                                    f.write('{},{},{},{},{},{},{},{}\n'.format(
                                        code, temp, data[b'open'],
                                        data[b'high'], data[b'low'],
                                        data[b'close'], data[b'vol'],
                                        data[b'amount']))
                                    print('{},{},{},{},{},{},{},{}\n'.format(
                                        code, temp, data[b'open'],
                                        data[b'high'], data[b'low'],
                                        data[b'close'], data[b'vol'],
                                        data[b'amount']))
            ts.Disconnect()
            break
        else:
            print('天软未登录')
    return 0
コード例 #5
0
 def __tsLogin(self):
     ts.ConnectServer("tsl.tinysoft.com.cn", 443)
     dl = ts.LoginServer("fzzqjyb", "fz123456")
     print('天软登陆成功')
コード例 #6
0
def getData(sDate, intervel, sContract):
    #intervel 表示数据间隔要5秒的,还是一分钟数据,还是日线数据   e.g "5s"
    #contract 合约名称                                      e.g "sc"
    try:
        os.makedirs('E:\CLionProjects\HedgeArbitrage/data')
    except:
        pass
    while True:
        ts.ConnectServer('211.100.23.205', 443)
        ts.LoginServer('fuchunguang', 'Fcg=888888')
        if ts.Logined() == True:
            print('already login')
            daycount = 0
            for code in sContract:
                hdateInfo = {}
                notNullcounter = 0
                for date in sDate:
                    daycount += 1
                    if intervel == '1m':
                        temp1 = 'cy_1m()'
                        temp2 = 240
                    elif intervel == '5s':
                        temp1 = 'cy_5s()'
                        temp2 = 2880
                    sql = 'setsysparam(pn_stock(),\'{}\');' \
                          'setsysparam(PN_Cycle(), {});setsysparam(pn_date(),inttodate({}));' \
                          'return nday({},"mdate",datetimetostr(sp_time()),"open",Open(),"high",High(),"low",Low(),"close",Close(),"vol",Vol(),"amount",Amount());' \
                        .format(code, temp1,date, temp2)
                    result = (ts.RemoteExecute(sql, {}))[1]
                    if result:
                        for data in result:
                            temp = data[b'mdate'].decode('gbk').replace(
                                ':', '').replace('-', '').replace(' ', '')
                            if len(temp) < 14:
                                temp += '0' * (14 - len(temp))
                            if int(sDate[0]) <= int(temp[:8]) <= int(
                                    sDate[-1]):
                                notNullcounter += 1
                                hdateInfo[temp] = [
                                    data[b'open'], data[b'high'], data[b'low'],
                                    data[b'close'], data[b'vol'],
                                    data[b'amount']
                                ]
                                print(temp)
                                # print('{},{},{},{},{},{},{},{}\n'.format(code,
                                #                                          temp,
                                #                                          data[b'open'],
                                #                                          data[b'high'],
                                #                                          data[b'low'],
                                #                                          data[b'close'],
                                #                                          data[b'vol'],
                                #                                          data[b'amount']))
                if notNullcounter:
                    with open(
                            'E:\CLionProjects\HedgeArbitrage/data/{}_{}.js'.
                            format(code, intervel), 'w') as f:
                        json.dump(hdateInfo, f)
            ts.Disconnect()
            break
        else:
            print('not login ')
    return 0
コード例 #7
0
# -*- coding: utf-8 -*-
# @Time    : 2018/12/20 16:07
# @Author  : Big Huang
# @Email   : [email protected]
# @File    : tslfun.py
# @Software: PyCharm
import pandas as pd
import sys
import datetime
sys.path.append(r"E:\software\Analyse.NET")
import TSLPy3 as ts
ts.ConnectServer("tsl.tinysoft.com.cn", 443)
dl = ts.LoginServer("indexsh","888888") #Tuple(ErrNo,ErrMsg) 登陆用户
assert dl[0] == 0
print("登陆成功")
print("服务器设置:", ts.GetService())
ts.SetComputeBitsOption(64)  # 设置计算单位
print("计算位数设置:", ts.GetComputeBitsOption())

def tsl_fun(start_date: datetime.datetime, end_date:datetime.datetime):
    start_date_str = start_date.strftime("%Y-%m-%d")
    end_date_str = end_date.strftime("%Y-%m-%d")
    # data = ts.RemoteExecute("return 'return a string';",{}) #执行一条语句
    data = ts.RemoteCallFunc("big", [start_date_str, end_date_str, "SH000050"], {})
    df = pd.DataFrame(data[1])
    df.columns = df.columns.map(lambda x: x.decode("gbk"))
    for col, dtype in df.dtypes.iteritems():
        if dtype.name == "object":
            df[col] = df[col].str.decode("gbk")