Example #1
0
def trading_file(filename):
    start_trading_day = 20000104
    end_trading_day = 20081230
    _property = 0  #総資産
    money = 1000000  #所持金

    filepath = args.data_folder + '/' + filename
    #株価データの読み込み
    _time, _open, _max, _min, _close, _volume, _keisu, _shihon = make_dataset.readfile(
        filepath)
    try:
        iday = _time.index(start_trading_day)
        eday = _time.index(end_trading_day)
    except:
        return np.nan

    point_rsi = getStrategy_RSI(start_trading_day, end_trading_day, _time,
                                _close)
    #売買開始日からスライス
    _time = _time[iday:eday]
    _close = _close[iday:eday]

    profit_ratio = trading(money, point_rsi, _close)[0]

    return profit_ratio
Example #2
0
def trading_file(filename):
    start_trading_day = 20000104
    end_trading_day = 20081230
    _property = 0#総資産
    money = 1000000#所持金
    
    filepath = args.data_folder +'/'+ filename
    #株価データの読み込み
    _time,_open,_max,_min,_close,_volume,_keisu,_shihon = make_dataset.readfile(filepath)
    try:
        iday = _time.index(start_trading_day)
        eday = _time.index(end_trading_day)
    except:
        return np.nan
        
    point_rsi = getStrategy_RSI(start_trading_day,end_trading_day,_time,_close)
    #売買開始日からスライス
    _time = _time[iday:eday]
    _close = _close[iday:eday]
    
    profit_ratio = trading(money,point_rsi,_close)[0]
    
    return profit_ratio
Example #3
0
tf.write('bound_ratio:'+str(bound_ratio))

sum_profit_ratio = 0
profit_ratio_list = []
trading_count_list = []
files = os.listdir("./stockdata")
for f in files:
    print f
    
    predictlist = []
    outputlist = []
    
    money = 1000000#所持金
    filepath = "./stockdata/%s" % f
    #株価データの読み込み
    _time,_open,_max,_min,_close,_volume,_keisu,_shihon = md.readfile(filepath)
    
    try:
        iday = _time.index(START_TEST_DAY)
    except:
        print 'can not find START_TEST_DAY'
        continue
        
    train, test = md.getTeacherDataMultiTech(f,START_TEST_DAY,NEXT_DAY,input_num,stride=1,u_vol=u_vol,u_ema=u_ema,u_rsi=u_rsi,u_macd=u_macd,u_stoch=u_stoch,u_wil=u_wil)
    if (train == -1) or (test == -1):
        print 'skip',f
        continue
    
    
    
    for row in test:
Example #4
0
def main(files):
    start_trading_day = 20000104
    end_trading_day = 20081230

    #start_trading_day = 20090105
    #end_trading_day = 20101229


    meigara_count = 0


    sum_profit_ratio_rsi = 0
    sum_profit_ratio_macd = 0
    sum_profit_ratio_gd = 0
    sum_profit_ratio_stoch = 0
    sum_profit_ratio_rsi = 0
    sum_bh_profit_ratio = 0
        

    for f in tqdm(files):
        #print f
        
        _property = 0#総資産
        money = 1000000#所持金
        
        filepath = args.data_folder +'/'+ f
        #株価データの読み込み
        _time,_open,_max,_min,_close,_volume,_keisu,_shihon = make_dataset.readfile(filepath)
        try:
            iday = _time.index(start_trading_day)
            eday = _time.index(end_trading_day)
        except:
            #print "can't find start_test_day"
            continue#start_trading_dayが見つからなければ次のファイルへ   
            
        point_rsi = getStrategy_RSI(start_trading_day,end_trading_day,_time,_close)
        point_macd = getStrategy_MACD(start_trading_day,end_trading_day,_time,_close)
        point_gd = getStrategy_GD(start_trading_day,end_trading_day,_time,_close)
        point_stoch = getStrategy_STOCH(start_trading_day,end_trading_day,_time,_close,_max,_min)
        
        #売買開始日からスライス
        _time = _time[iday:eday]
        _close = _close[iday:eday]
            
        #buy&holdの利益率を計算
        bh_profit_ratio = float((_close[-1] - _close[0]) / _close[0]) * 100
        sum_bh_profit_ratio += bh_profit_ratio
        profit_ratio = trading(money,point_rsi,_close)
        #print "RSI profit of %s is %f " % (f, profit_ratio[0])
        sum_profit_ratio_rsi += profit_ratio[0]
        
        profit_ratio = trading(money,point_macd,_close)
        #print "MACD profit of %s is %f " % (f, profit_ratio[0])
        sum_profit_ratio_macd += profit_ratio[0]
        
        profit_ratio = trading(money,point_gd,_close)
        #print "GD profit of %s is %f " % (f, profit_ratio[0])
        sum_profit_ratio_gd += profit_ratio[0]
        
        profit_ratio = trading(money,point_stoch,_close)
        #print "STOCH profit of %s is %f " % (f, profit_ratio[0])
        sum_profit_ratio_stoch += profit_ratio[0]
        
        meigara_count += 1
        #print meigara_count
        
        
        
    print "RSI profit average is = %f" % (sum_profit_ratio_rsi / meigara_count)
    print "MACD profit average is = %f" % (sum_profit_ratio_macd / meigara_count)
    print "GD profit average is = %f" % (sum_profit_ratio_gd / meigara_count)
    print "STOCH profit average is = %f" % (sum_profit_ratio_stoch / meigara_count)
    print 'buy&hold profit = %f' % (sum_bh_profit_ratio / meigara_count)
    print "all meigara is %d" % meigara_count
Example #5
0
sum_profit_ratio_macd = 0
sum_profit_ratio_gd = 0
sum_profit_ratio_stoch = 0
sum_profit_ratio_rsi = 0
sum_bh_profit_ratio = 0
    
files = os.listdir("./stockdata")
for f in files:
    print f
    
    _property = 0#総資産
    money = 1000000#所持金
    
    filepath = "./stockdata/%s" % f
    #株価データの読み込み
    _time,_open,_max,_min,_close,_volume,_keisu,_shihon = make_dataset.readfile(filepath)
    try:
        iday = _time.index(start_trading_day)
        eday = _time.index(end_trading_day)
    except:
        print "can't find start_test_day"
        continue#start_trading_dayが見つからなければ次のファイルへ   
        
    point_rsi = getStrategy_RSI(start_trading_day,end_trading_day,_time,_close)
    point_macd = getStrategy_MACD(start_trading_day,end_trading_day,_time,_close)
    point_gd = getStrategy_GD(start_trading_day,end_trading_day,_time,_close)
    point_stoch = getStrategy_STOCH(start_trading_day,end_trading_day,_time,_close,_max,_min)
    
    #売買開始日からスライス
    _time = _time[iday:eday]
    _close = _close[iday:eday]
Example #6
0
def main(files):
    start_trading_day = 20000104
    end_trading_day = 20081230

    #start_trading_day = 20090105
    #end_trading_day = 20101229


    meigara_count = 0


    sum_profit_ratio_rsi = 0
    sum_profit_ratio_macd = 0
    sum_profit_ratio_gd = 0
    sum_profit_ratio_stoch = 0
    sum_profit_ratio_rsi = 0
    sum_bh_profit_ratio = 0
        

    for f in tqdm(files):
        #print f
        
        _property = 0#総資産
        money = 1000000#所持金
        
        filepath = args.data_folder +'/'+ f
        #株価データの読み込み
        _time,_open,_max,_min,_close,_volume,_keisu,_shihon = make_dataset.readfile(filepath)
        try:
            iday = _time.index(start_trading_day)
            eday = _time.index(end_trading_day)
        except:
            #print "can't find start_test_day"
            continue#start_trading_dayが見つからなければ次のファイルへ   
            
        point_rsi = getStrategy_RSI(start_trading_day,end_trading_day,_time,_close)
        point_macd = getStrategy_MACD(start_trading_day,end_trading_day,_time,_close)
        point_gd = getStrategy_GD(start_trading_day,end_trading_day,_time,_close)
        point_stoch = getStrategy_STOCH(start_trading_day,end_trading_day,_time,_close,_max,_min)
        
        #売買開始日からスライス
        _time = _time[iday:eday]
        _close = _close[iday:eday]
            
        #buy&holdの利益率を計算
        bh_profit_ratio = float((_close[-1] - _close[0]) / _close[0]) * 100
        sum_bh_profit_ratio += bh_profit_ratio
        profit_ratio = trading(money,point_rsi,_close)
        #print "RSI profit of %s is %f " % (f, profit_ratio[0])
        sum_profit_ratio_rsi += profit_ratio[0]
        
        profit_ratio = trading(money,point_macd,_close)
        #print "MACD profit of %s is %f " % (f, profit_ratio[0])
        sum_profit_ratio_macd += profit_ratio[0]
        
        profit_ratio = trading(money,point_gd,_close)
        #print "GD profit of %s is %f " % (f, profit_ratio[0])
        sum_profit_ratio_gd += profit_ratio[0]
        
        profit_ratio = trading(money,point_stoch,_close)
        #print "STOCH profit of %s is %f " % (f, profit_ratio[0])
        sum_profit_ratio_stoch += profit_ratio[0]
        
        meigara_count += 1
        #print meigara_count
        
        
        
    print "RSI profit average is = %f" % (sum_profit_ratio_rsi / meigara_count)
    print "MACD profit average is = %f" % (sum_profit_ratio_macd / meigara_count)
    print "GD profit average is = %f" % (sum_profit_ratio_gd / meigara_count)
    print "STOCH profit average is = %f" % (sum_profit_ratio_stoch / meigara_count)
    print 'buy&hold profit = %f' % (sum_bh_profit_ratio / meigara_count)
    print "all meigara is %d" % meigara_count
Example #7
0
import time
from make_dataset import ImgDataset, readfile, readfile_add
from MSASDNet import MSASDNet

f = open("./logs/train_logs.txt", 'w')
f.write("Training loss logs:")
f.write("\n")
f.close()

#
train_path = "./AISD/Train412/"
val_path = "./AISD/Val51/"
print("Reading data ......")
batch_size = 4
train_x, train_y = readfile_add(train_path, True)
val_x, val_y = readfile(val_path, True)
train_set = ImgDataset(train_x, train_y)
val_set = ImgDataset(val_x, val_y)
train_loader = DataLoader(train_set, batch_size=batch_size, shuffle=True)
val_loader = DataLoader(val_set, batch_size=batch_size, shuffle=False)

# 定义模型
model = MSASDNet().cuda()
loss = nn.CrossEntropyLoss()
# 二分类交叉熵损失函数
loss = nn.CrossEntropyLoss()
# 优化器 Adam
optimizer = torch.optim.Adam(model.parameters(), lr=0.001)
num_epoch = 30

# 开始训练
Example #8
0
def main(files):
    start_trading_day = 20000104
    end_trading_day = 20081230

    #start_trading_day = 20090105
    #end_trading_day = 20101229

    meigara_count = 0

    profit_ratio_rsi_list = []
    profit_ratio_macd_list = []
    profit_ratio_gd_list = []
    profit_ratio_stoch_list = []
    profit_ratio_rsi_list = []
    bh_profit_ratio_list = []

    for f in tqdm(files):
        #print f

        _property = 0  #総資産
        money = 1000000  #所持金

        filepath = args.data_folder + '/' + f
        #株価データの読み込み
        _time, _open, _max, _min, _close, _volume, _keisu, _shihon = make_dataset.readfile(
            filepath)
        try:
            iday = _time.index(start_trading_day)
            eday = _time.index(end_trading_day)
        except:
            #print "can't find start_test_day"
            continue  #start_trading_dayが見つからなければ次のファイルへ

        point_rsi = getStrategy_RSI(start_trading_day, end_trading_day, _time,
                                    _close)
        point_macd = getStrategy_MACD(start_trading_day, end_trading_day,
                                      _time, _close)
        point_gd = getStrategy_GD(start_trading_day, end_trading_day, _time,
                                  _close)
        point_stoch = getStrategy_STOCH(start_trading_day, end_trading_day,
                                        _time, _close, _max, _min)

        #売買開始日からスライス
        _time = _time[iday:eday]
        _close = _close[iday:eday]

        #buy&holdの利益率を計算
        bh_profit_ratio = float((_close[-1] - _close[0]) / _close[0]) * 100
        bh_profit_ratio_list.append(bh_profit_ratio)

        profit_ratio = trading(money, point_rsi, _close)[0]
        profit_ratio_rsi_list.append(profit_ratio)

        profit_ratio = trading(money, point_macd, _close)[0]
        profit_ratio_macd_list.append(profit_ratio)

        profit_ratio = trading(money, point_gd, _close)[0]
        profit_ratio_gd_list.append(profit_ratio)

        profit_ratio = trading(money, point_stoch, _close)[0]
        profit_ratio_stoch_list.append(profit_ratio)

        meigara_count += 1
        #print meigara_count

    print "RSI profit average is = ", sum(profit_ratio_rsi_list) / len(
        profit_ratio_rsi_list)
    print "MACD profit average is = ", sum(profit_ratio_macd_list) / len(
        profit_ratio_macd_list)
    print "GD profit average is = ", sum(profit_ratio_gd_list) / len(
        profit_ratio_gd_list)
    print "STOCH profit average is = ", sum(profit_ratio_stoch_list) / len(
        profit_ratio_stoch_list)
    print 'buy&hold profit = ', sum(bh_profit_ratio_list) / len(
        bh_profit_ratio_list)
    print "all meigara is %d" % meigara_count

    tools.listToCsv('profit_ratio_list.csv', bh_profit_ratio_list,
                    profit_ratio_gd_list, profit_ratio_macd_list,
                    profit_ratio_rsi_list, profit_ratio_stoch_list)