from monlan.datamanagement.SymbolDataManager import SymbolDataManager from monlan.mods.VSASpread import VSASpread from datetime import datetime import matplotlib.pyplot as plt import os os.environ['TF_FORCE_GPU_ALLOW_GROWTH'] = 'true' symbol = "EURUSD_i" timeframe = "H1" priceFeatList = ["open", "close", "low", "high"] #energyFeatList = ["vsa_spread"] volumeFeatList = ["tick_volume"] #terminal = MT5Terminal() #dataUpdater = SymbolDataUpdater("../data/raw/") dataManager = SymbolDataManager("../data/raw/") #dataUpdater.fullUpdate(terminal, symbol, timeframe, startDate="2015-01-01 00:00:00") df = SymbolDataManager("../data/raw/").getData(symbol, timeframe) modDf = df priceDiffGenerator = W2VDiffGenerator(featureList=priceFeatList, nDiffs=1, nPoints = 32, flatStack = False, fitOnStep = False, nIntervals = 1000, w2vSize=32, window=10, iter=100, min_count=0, sample=0.0, sg=0) volumeDiffGenerator = W2VDiffGenerator(featureList=volumeFeatList, nDiffs=1, nPoints = 32, flatStack = False, fitOnStep = False, nIntervals = 1000, w2vSize=32, window=10, iter=100, min_count=0, sample=0.0, sg=0) priceDiffGenerator.setFitMode(True) priceDiffGenerator = priceDiffGenerator.globalFit(df) #priceDiffGenerator.checkReconstructionQuality(df)
startTime = datetime.now() print("start time: {}".format(startTime)) #symbols = ["EURUSD_i"] symbols = [ "AUDUSD_i", "EURAUD_i", "USDCAD_i", "EURCAD_i", "GBPUSD_i", ] timeframe = "M10" dataManager = SymbolDataManager("../data/raw/") df = dataManager.getData(symbols[0], timeframe) df = df.tail(400000) x = df["open"] - df["open"].shift(1) #x = x.values[1:].reshape(-1,1) x = x.values[1:] #x = df["open"].values #scaler = StandardScaler().fit(x.reshape((-1, 1))) scaler = MinMaxScaler().fit(x.reshape((-1, 1))) x = scaler.transform(x.reshape(-1, 1)) window = 64 x_train, y_train = [], [] for i in tqdm(range(len(x) - window), colour="green"): x_train.append(x[i:i + window])
agent = agent.load_agent(saveDir, agentName, dropSupportModel=True) # agent = agent.load_agent("./", "checkpoint_composite") print("start using agent") startTime = datetime.now() agent.use_agent(testEnv, timeConstraint=timeConstraint) endTime = datetime.now() print("Use time: {}".format(endTime - startTime)) reset_keras() #################################################################################### symbol = "EURUSD_i" timeframe = "M5" hkFeatList = ["open", "close", "low", "high", "vsa_spread", "tick_volume", "hkopen", "hkclose", "enopen", "enclose", "enlow", "enhigh"] saveDir = "../models/" genName = "MSDiffGen" genPath = saveDir + genName + ".pkl" agentName = "best_composite" timeConstraint = timedelta(days=5, hours=12, minutes=0) terminal = MT5Terminal(login=99999999, server="Broker-MT5-Demo", password="******") dataUpdater = SymbolDataUpdater() dataManager = SymbolDataManager() dataUpdater.fullUpdate(terminal, symbol, timeframe, startDate="2008-01-01 00:00:00") while True: useAgent(symbol, timeframe, terminal, dataUpdater, dataManager, hkFeatList, saveDir, genPath, agentName, timeConstraint)