def testCo(co): xagPrices = dataloader.importToArray('XAGUSD5_201307') xags = [p['close'] for p in xagPrices] usdxPrices = dataloader.importToArray('_USDX5_201307') usdxs = [p['close'] for p in usdxPrices] us500Prices = dataloader.importToArray('_US5005_201307') us500s = [p['close'] for p in us500Prices] us30Prices = dataloader.importToArray('_US305_201307') us30s = [p['close'] for p in us30Prices] nq100Prices = dataloader.importToArray('_NQ1005_201307') nq100s = [p['close'] for p in nq100Prices] l = len(xagPrices) xs = [] ys = [] yps = [] typs = [] #for i in range(10, l - 1): for i in range(100, 200): xag = xagPrices[i] xagd = xags[i-10+1 : i+1] dtlong = xag['dtlong'] usdxd = findData(dtlong, usdxPrices, usdxs) us500d = findData(dtlong, us500Prices, us500s) us30d = findData(dtlong, us30Prices, us30s) nq100d = findData(dtlong, nq100Prices, nq100s) if not (usdxd and us500d and us30d and nq100d): log.debug('Insufficient Data. ' + xag['date'] + ' ' + xag['time']) continue xs.append([xags[i], slope(xagd), std(xagd), slope(usdxd), std(usdxd), slope(us500d), std(us500d), slope(us30d), std(us30d), slope(nq100d), std(nq100d)]) typs.append(xags[i]) ys.append(xags[i+1]) for i in range(len(xs)): yp = co[0] + xs[i][0] * co[1] yp += xs[i][1] * co[2] + xs[i][2] * co[3] + xs[i][3] * co[4] yp += xs[i][4] * co[5] + xs[i][5] * co[6] + xs[i][6] * co[7] + xs[i][7] * co[8] yp += xs[i][8] * co[9] + xs[i][9] * co[10] + xs[i][10] * co[11] yps.append(typs[i] + yp) print co ts = range(len(xs)) plt.plot(ts, ys, 'o', label='Original data', linestyle='-', markersize=2) plt.plot(ts, yps, 'ro', label='Fitted line', linestyle='-', markersize=2) plt.legend() plt.show()
'main.log', ] for logfile in logfiles: with open(os.path.join(logdir, logfile), 'w'): pass #print logdir, lsdir #shutil.rmtree(logdir) #os.mkdir(logdir) if __name__ == "__main__": #XAGUSD1440_FLUC, XAGUSD1440_UP, XAGUSD1440_DOWN, XAGUSD1440_V, XAGUSD1440_RV, #XAGUSD1440_FLAT, XAGUSD1440_FLU #XAGUSD1440_2013, XAGUSD1440_2012, XAGUSD1440_2011, XAGUSD1440_ALL, XAGUSD1440_AFTER08 clearLog() prices = dataloader.importToArray('XAUUSD1440_AFTER08') maStrategy.runStrategy(prices) #drawStats(prices) #l3Trader.runStrategy(prices) #part = prices[109:] # #ps = [p['close'] for p in part] #ps.reverse() #pr = [p['rmb'] for p in part] #pr.reverse() # #for i in range(len(part)): # part[i]['close'] = ps[i] # part[i]['rmb'] = pr[i]
'main.log', ] for logfile in logfiles: with open(os.path.join(logdir, logfile), 'w'): pass #print logdir, lsdir #shutil.rmtree(logdir) #os.mkdir(logdir) if __name__ == "__main__": #XAGUSD1440_FLUC, XAGUSD1440_UP, XAGUSD1440_DOWN, XAGUSD1440_V, XAGUSD1440_RV, #XAGUSD1440_FLAT, XAGUSD1440_FLU #XAGUSD1440_2013, XAGUSD1440_2012, XAGUSD1440_2011, XAGUSD1440_ALL, XAGUSD1440_AFTER08 clearLog() prices = dataloader.importToArray('XAGUSD60_2012') fmaStrategy.runStrategy(prices) #s6Trader.runStrategy(prices) #l5Trader.runStrategy(prices) #maTrader.runStrategy(prices) #drawStats(prices) #oneTrader.runStrategy(prices) #part = prices[109:] #ps = [p['close'] for p in part] #ps.reverse() #pr = [p['rmb'] for p in part] #pr.reverse() # #for i in range(len(part)): # part[i]['close'] = ps[i] # part[i]['rmb'] = pr[i]
logfiles =['trader.csv', 'balance.csv', 'trades.csv', 'strategy.csv', 'main.log',] for logfile in logfiles: with open(os.path.join(logdir, logfile), 'w'): pass #print logdir, lsdir #shutil.rmtree(logdir) #os.mkdir(logdir) if __name__ == "__main__": #XAGUSD1440_FLUC, XAGUSD1440_UP, XAGUSD1440_DOWN, XAGUSD1440_V, XAGUSD1440_RV, #XAGUSD1440_FLAT, XAGUSD1440_FLU #XAGUSD1440_2013, XAGUSD1440_2012, XAGUSD1440_2011, XAGUSD1440_ALL, XAGUSD1440_AFTER08 clearLog() prices = dataloader.importToArray('XAGUSD1440_AFTER08') fmaStrategy.runStrategy(prices) #drawStats(prices) #l3Trader.runStrategy(prices) #part = prices[109:] # #ps = [p['close'] for p in part] #ps.reverse() #pr = [p['rmb'] for p in part] #pr.reverse() # #for i in range(len(part)): # part[i]['close'] = ps[i] # part[i]['rmb'] = pr[i]
'main.log', ] for logfile in logfiles: with open(os.path.join(logdir, logfile), 'w'): pass #print logdir, lsdir #shutil.rmtree(logdir) #os.mkdir(logdir) if __name__ == "__main__": #XAGUSD1440_FLUC, XAGUSD1440_UP, XAGUSD1440_DOWN, XAGUSD1440_V, XAGUSD1440_RV, #XAGUSD1440_FLAT, XAGUSD1440_FLU #XAGUSD1440_2013, XAGUSD1440_2012, XAGUSD1440_2011, XAGUSD1440_ALL, XAGUSD1440_AFTER08 clearLog() prices = dataloader.importToArray('XAUUSD60_20122013') maStrategy.runStrategy(prices) #s6Trader.runStrategy(prices) #l5Trader.runStrategy(prices) #maTrader.runStrategy(prices) #drawStats(prices) #oneTrader.runStrategy(prices) #part = prices[109:] #ps = [p['close'] for p in part] #ps.reverse() #pr = [p['rmb'] for p in part] #pr.reverse() # #for i in range(len(part)): # part[i]['close'] = ps[i] # part[i]['rmb'] = pr[i]
def clearLog(): logdir = os.path.join(path, 'logs') rsdir = os.path.join(path, 'result') rslist = os.listdir(rsdir) for f in rslist: fp = os.path.join(rsdir, f) if os.path.isfile(fp): os.remove(fp) #log.debug('del' + fp) elif os.path.isdir(fp): shutil.rmtree(fp) logfiles =['trader.csv', 'balance.csv', 'trades.csv', 'strategy.csv', 'main.log',] for logfile in logfiles: with open(os.path.join(logdir, logfile), 'w'): pass if __name__ == "__main__": clearLog() prices = dataloader.importToArray('XAGUSD60_20130708') drawStat(prices) #masVoter.runVoter(prices) #macdVoter.runVoter(prices) #rsiVoter.runVoter(prices) #l2voter.runVoter(prices)
def regression(): xagPrices = dataloader.importToArray('XAGUSD5_2013070809') xags = [p['close'] for p in xagPrices] usdxPrices = dataloader.importToArray('_USDX5_2013070809') usdxs = [p['close'] for p in usdxPrices] us500Prices = dataloader.importToArray('_US5005_2013070809') us500s = [p['close'] for p in us500Prices] us30Prices = dataloader.importToArray('_US305_2013070809') us30s = [p['close'] for p in us30Prices] nq100Prices = dataloader.importToArray('_NQ1005_2013070809') nq100s = [p['close'] for p in nq100Prices] l = len(xagPrices) xs = [] ys = [] for i in range(10, l - 1): xag = xagPrices[i] xagd = xags[i-10+1 : i+1] dtlong = xag['dtlong'] usdxd = findData(dtlong, usdxPrices, usdxs) us500d = findData(dtlong, us500Prices, us500s) us30d = findData(dtlong, us30Prices, us30s) nq100d = findData(dtlong, nq100Prices, nq100s) if not (usdxd and us500d and us30d and nq100d): log.debug('Insufficient Data. ' + xag['date'] + ' ' + xag['time']) continue xs.append([xags[i], slope(xagd), std(xagd), slope(usdxd), std(usdxd), slope(us500d), std(us500d), slope(us30d), std(us30d), slope(nq100d), std(nq100d)]) ys.append(xags[i+1] - xags[i]) #print xs #print ys xxs = np.array(xs) #print xsT yys = np.array(ys) mymodel = multipolyfit(xxs.T, yys, 20, model_out = False) #mymodel = ols.ols(yys, xxs, 'y',['x1', 'x2', 'x3', 'x4', 'x5', 'x6', 'x7', 'x8', 'x9', 'x10', 'x11']) #print mymodel.b print mymodel #print mymodel.summary() return mymodel yps = [] co = mymodel.b for i in range(len(xs)): yp = co[0] + xs[i][0] * co[1] + xs[i][1] * co[2] + xs[i][2] * co[3] + xs[i][3] * co[4] yp += xs[i][4] * co[5] + xs[i][5] * co[6] + xs[i][6] * co[7] + xs[i][7] * co[8] yp += xs[i][8] * co[9] + xs[i][9] * co[10] + xs[i][10] * co[11] yps.append(yp) ts = range(len(xs)) plt.plot(ts, ys, 'o', label='Original data', linestyle='-', marker='') plt.plot(ts, yps, 'r', label='Fitted line') plt.legend() plt.show()
logfiles = ["trader.csv", "balance.csv", "trades.csv", "strategy.csv", "main.log"] for logfile in logfiles: with open(os.path.join(logdir, logfile), "w"): pass # print logdir, lsdir # shutil.rmtree(logdir) # os.mkdir(logdir) if __name__ == "__main__": # XAGUSD1440_FLUC, XAGUSD1440_UP, XAGUSD1440_DOWN, XAGUSD1440_V, XAGUSD1440_RV, # XAGUSD1440_FLAT, XAGUSD1440_FLU # XAGUSD1440_2013, XAGUSD1440_2012, XAGUSD1440_2011, XAGUSD1440_ALL, XAGUSD1440_AFTER08 clearLog() prices = dataloader.importToArray("XAGUSD60_2012") fmaStrategy.runStrategy(prices) # s6Trader.runStrategy(prices) # l5Trader.runStrategy(prices) # maTrader.runStrategy(prices) # drawStats(prices) # oneTrader.runStrategy(prices) # part = prices[109:] # ps = [p['close'] for p in part] # ps.reverse() # pr = [p['rmb'] for p in part] # pr.reverse() # # for i in range(len(part)): # part[i]['close'] = ps[i] # part[i]['rmb'] = pr[i]
os.remove(fp) #log.debug('del' + fp) elif os.path.isdir(fp): shutil.rmtree(fp) logfiles = [ 'trader.csv', 'balance.csv', 'trades.csv', 'strategy.csv', 'main.log', ] for logfile in logfiles: with open(os.path.join(logdir, logfile), 'w'): pass if __name__ == "__main__": #return #XAGUSD1440_FLUC, XAGUSD1440_UP, XAGUSD1440_DOWN, XAGUSD1440_V, XAGUSD1440_RV, #XAGUSD1440_FLAT, XAGUSD1440_FLU #XAGUSD1440_2013, XAGUSD1440_2012, XAGUSD1440_2011, XAGUSD1440_ALL, XAGUSD1440_AFTER09 clearLog() prices = dataloader.importToArray('XAGUSD1440_2013') #drawStat(prices) #maVoter.runVoter(prices) #macdVoter.runVoter(prices) #rsiVoter.runVoter(prices) l2voter.runVoter(prices)
shutil.rmtree(fp) logfiles =['trader.csv', 'balance.csv', 'trades.csv', 'strategy.csv', 'main.log',] for logfile in logfiles: with open(os.path.join(logdir, logfile), 'w'): pass #print logdir, lsdir #shutil.rmtree(logdir) #os.mkdir(logdir) if __name__ == "__main__": #XAGUSD1440_FLUC, XAGUSD1440_UP, XAGUSD1440_DOWN, XAGUSD1440_V, XAGUSD1440_RV, #XAGUSD1440_FLAT, XAGUSD1440_FLU #XAGUSD1440_2013, XAGUSD1440_2012, XAGUSD1440_2011, XAGUSD1440_ALL, XAGUSD1440_AFTER08 clearLog() prices = dataloader.importToArray('XAUUSD60_20122013') maStrategy.runStrategy(prices) #s6Trader.runStrategy(prices) #l5Trader.runStrategy(prices) #maTrader.runStrategy(prices) #drawStats(prices) #oneTrader.runStrategy(prices) #part = prices[109:] #ps = [p['close'] for p in part] #ps.reverse() #pr = [p['rmb'] for p in part] #pr.reverse() # #for i in range(len(part)): # part[i]['close'] = ps[i] # part[i]['rmb'] = pr[i]
rsdir = os.path.join(path, 'result') rslist = os.listdir(rsdir) for f in rslist: fp = os.path.join(rsdir, f) if os.path.isfile(fp): os.remove(fp) #log.debug('del' + fp) elif os.path.isdir(fp): shutil.rmtree(fp) logfiles =['trader.csv', 'balance.csv', 'trades.csv', 'strategy.csv', 'main.log',] for logfile in logfiles: with open(os.path.join(logdir, logfile), 'w'): pass if __name__ == "__main__": #return #XAGUSD1440_FLUC, XAGUSD1440_UP, XAGUSD1440_DOWN, XAGUSD1440_V, XAGUSD1440_RV, #XAGUSD1440_FLAT, XAGUSD1440_FLU #XAGUSD1440_2013, XAGUSD1440_2012, XAGUSD1440_2011, XAGUSD1440_ALL, XAGUSD1440_AFTER09 clearLog() prices = dataloader.importToArray('XAGUSD1440_2013') #drawStat(prices) #maVoter.runVoter(prices) #macdVoter.runVoter(prices) #rsiVoter.runVoter(prices) l2voter.runVoter(prices)