def get_coin_name_list(config, online): """ :param online: boolean value to show if connected to internet, if False, load data from database. :return : list of coin names """ input_config = config["input"] if not online: start = parse_time(input_config["start_date"]) end = parse_time(input_config["end_date"]) volume_forward = get_volume_forward( end - start, input_config["test_portion"] + input_config["validation_portion"], input_config["portion_reversed"]) else: end = time() volume_forward = 0 end = end - (end % input_config["trade_period"]) start = end - volume_forward - input_config["volume_average_days"] * DAY end = end - volume_forward coins = HistoryManager(input_config["coin_number"], end, volume_forward=volume_forward, volume_average_days=input_config["volume_average_days"], online=online).\ select_coins(start, end) return coins
def create_from_config(config): """main method to create the DataMatrices in this project @:param config: config dictionary @:return: a DataMatrices object """ config = config.copy() input_config = config["input"] train_config = config["training"] start = parse_time(input_config["start_date"]) end = parse_time(input_config["end_date"]) return DataMatrices( start=start, end=end, market=input_config["market"], feature_number=input_config["feature_number"], window_size=input_config["window_size"], online=input_config["online"], period=input_config["global_period"], asset_filter=input_config["asset_number"], is_permed=input_config["is_permed"], buffer_bias_ratio=train_config["buffer_biased"], batch_size=train_config["batch_size"], volume_average_days=input_config["volume_average_days"], test_portion=input_config["test_portion"], portion_reversed=input_config["portion_reversed"], )
def _extract_test(config): global_start = parse_time(config["input"]["start_date"]) global_end = parse_time(config["input"]["end_date"]) span = global_end - global_start start = global_end - config["input"]["test_portion"] * span end = global_end return start, end
def get_coin_name_list(config, online): """ :param online: boolean value to show if connected to internet, if False, load data from database. :return : list of coin names """ input_config = config["input"] if not online: start = parse_time(input_config["start_date"]) end = parse_time(input_config["end_date"]) volume_forward = get_volume_forward(end - start, input_config["test_portion"] + input_config["validation_portion"], input_config["portion_reversed"]) else: end = time() volume_forward = 0 end = end - (end % input_config["trade_period"]) start = end - volume_forward - input_config["volume_average_days"] * DAY end = end - volume_forward coins = HistoryManager(input_config["coin_number"], end, volume_forward=volume_forward, volume_average_days=input_config["volume_average_days"], online=online).\ select_coins(start, end) return coins
def create_from_config(config): """main method to create the DataMatrices in this project @:param config: config dictionary @:return: a DataMatrices object """ config = config.copy() input_config = config["input"] train_config = config["training"] start = parse_time(input_config["start_date"]) end = parse_time(input_config["end_date"]) return DataMatrices(start=start, end=end, market=input_config["market"], feature_number=input_config["feature_number"], window_size=input_config["window_size"], online=input_config["online"], period=input_config["global_period"], coin_filter=input_config["coin_number"], is_permed=input_config["is_permed"], buffer_bias_ratio=train_config["buffer_biased"], batch_size=train_config["batch_size"], volume_average_days=input_config["volume_average_days"], test_portion=input_config["test_portion"], portion_reversed=input_config["portion_reversed"], )
def __init__(self, config): self.__counter = 0 self.__start = parse_time(config["input"]["start_date"]) self.__end = parse_time(config["input"]["end_date"]) self.__number_of_coins = config["input"]["coin_number"] self.__batch_size = config["training"]["batch_size"] self.__window_size = config["input"]["window_size"]+1 span = self.__end - self.__start self.__end = self.__end - config["input"]["test_portion"] * span config2 = copy.deepcopy(config) config2["input"]["global_period"] = 300 self._matrix2 = DataMatrices.create_from_config(config2) self.__weightgarch = pd.DataFrame(index=range(0, self.__batch_size), columns=range(0, self.__number_of_coins)) self.__weightgarch = self.__weightgarch.fillna(1.0 / self.__number_of_coins) training_set = self._matrix2.get_training_set() set = training_set["X"] #good times sets for 3, 26: 1 and 2 are not functioning set5 = set[-5000:, 0, :, 0] set3 = set[-3000:, 0, :, 0] set2 = set[-2000:, 0, :, 0] #self.__abcdefg = set[:, 0] self.__lastvalue1 = set5[0, 0] self.__lastvalue2 = set5[0, 1] self.__lastvalue3 = set2[0, 2] self.__lastvalue4 = set5[0, 3] self.__lastvalue5 = set3[0, 4] self.__lastvalue6 = set3[0, 5] self.__lastvalue7 = set3[0, 6] self.__lastvalue8 = set5[0, 7] self.__lastvalue9 = set5[0, 8] self.__lastvalue10 = set5[0, 9] self.__lastvalue11 = set3[0, 10] #good times set5, bad times set3 #logreturns1 = np.log(set3[1:, 0] / set3[:-1, 0]) logreturns1 = np.log(set5[1:, 0] / set5[:-1, 0]) self.__lastsigma1 = np.sqrt(np.mean(logreturns1 ** 2)) self.__lastlogreturn1 = logreturns1[-1] #good times set5, bad times set3 #logreturns2 = np.log(set3[1:, 1] / set3[:-1, 1]) logreturns2 = np.log(set5[1:, 1] / set5[:-1, 1]) self.__lastsigma2 = np.sqrt(np.mean(logreturns2 ** 2)) self.__lastlogreturn2 = logreturns2[-1] logreturns3 = np.log(set2[1:, 2] / set2[:-1, 2]) self.__lastsigma3 = np.sqrt(np.mean(logreturns3 ** 2)) self.__lastlogreturn3 = logreturns3[-1] logreturns4 = np.log(set5[1:, 3] / set5[:-1, 3]) self.__lastsigma4 = np.sqrt(np.mean(logreturns4 ** 2)) self.__lastlogreturn4 = logreturns4[-1] logreturns5 = np.log(set3[1:, 4] / set3[:-1, 4]) self.__lastsigma5 = np.sqrt(np.mean(logreturns5 ** 2)) self.__lastlogreturn5 = logreturns5[-1] logreturns6 = np.log(set3[1:, 5] / set3[:-1, 5]) self.__lastsigma6 = np.sqrt(np.mean(logreturns6 ** 2)) self.__lastlogreturn6 = logreturns6[-1] logreturns7 = np.log(set3[1:, 6] / set3[:-1, 6]) self.__lastsigma7 = np.sqrt(np.mean(logreturns7 ** 2)) self.__lastlogreturn7 = logreturns7[-1] logreturns8 = np.log(set5[1:, 7] / set5[:-1, 7]) self.__lastsigma8 = np.sqrt(np.mean(logreturns8 ** 2)) self.__lastlogreturn8 = logreturns8[-1] logreturns9 = np.log(set5[1:, 8] / set5[:-1, 8]) self.__lastsigma9 = np.sqrt(np.mean(logreturns9 ** 2)) self.__lastlogreturn9 = logreturns9[-1] logreturns10 = np.log(set5[1:, 9] / set5[:-1, 9]) self.__lastsigma10 = np.sqrt(np.mean(logreturns10 ** 2)) self.__lastlogreturn10 = logreturns10[-1] logreturns11 = np.log(set3[1:, 10] / set3[:-1, 10]) self.__lastsigma11 = np.sqrt(np.mean(logreturns11 ** 2)) self.__lastlogreturn11 = logreturns11[-1] self.__firstsigma1 = self.__lastsigma1 self.__firstsigma2 = self.__lastsigma2 self.__firstsigma3 = self.__lastsigma3 self.__firstsigma4 = self.__lastsigma4 self.__firstsigma5 = self.__lastsigma5 self.__firstsigma6 = self.__lastsigma6 self.__firstsigma7 = self.__lastsigma7 self.__firstsigma8 = self.__lastsigma8 self.__firstsigma9 = self.__lastsigma9 self.__firstsigma10 = self.__lastsigma10 self.__firstsigma11 = self.__lastsigma11 self.__firstlogreturn1 = self.__lastlogreturn1 self.__firstlogreturn2 = self.__lastlogreturn2 self.__firstlogreturn3 = self.__lastlogreturn3 self.__firstlogreturn4 = self.__lastlogreturn4 self.__firstlogreturn5 = self.__lastlogreturn5 self.__firstlogreturn6 = self.__lastlogreturn6 self.__firstlogreturn7 = self.__lastlogreturn7 self.__firstlogreturn8 = self.__lastlogreturn8 self.__firstlogreturn9 = self.__lastlogreturn9 self.__firstlogreturn10 = self.__lastlogreturn10 self.__firstlogreturn11 = self.__lastlogreturn11 self.__firstlastvalue1 = self.__lastvalue1 self.__firstlastvalue2 = self.__lastvalue2 self.__firstlastvalue3 = self.__lastvalue3 self.__firstlastvalue4 = self.__lastvalue4 self.__firstlastvalue5 = self.__lastvalue5 self.__firstlastvalue6 = self.__lastvalue6 self.__firstlastvalue7 = self.__lastvalue7 self.__firstlastvalue8 = self.__lastvalue8 self.__firstlastvalue9 = self.__lastvalue9 self.__firstlastvalue10 = self.__lastvalue10 self.__firstlastvalue11 = self.__lastvalue11 self.__theta1 = self.negative_log_likelihood(logreturns1, (1, 0.5, 0.5)) self.__theta1 = self.fitting(logreturns1) print(self.__theta1) self.__theta2 = self.fitting(logreturns2) print(self.__theta2) self.__theta3 = self.fitting(logreturns3) print(self.__theta3) self.__theta4 = self.fitting(logreturns4) print(self.__theta4) self.__theta5 = self.fitting(logreturns5) print(self.__theta5) self.__theta6 = self.fitting(logreturns6) print(self.__theta6) self.__theta7 = self.fitting(logreturns7) print(self.__theta7) self.__theta8 = self.fitting(logreturns8) print(self.__theta8) self.__theta9 = self.fitting(logreturns9) print(self.__theta9) self.__theta10 = self.fitting(logreturns10) print(self.__theta10) self.__theta11 = self.fitting(logreturns11) print(self.__theta11)