def _test(ds: DataStructure, ips_to_insert: List[str], ips_to_query: List[str]) -> Results: """ Test the performance of a given data structure :param ds: The data structure to test :param ips_to_insert: List of IPs to add to the data structure :param ips_to_query: List of IPs to query the data structure :return: A results object, containing the num of FP, num of TP, num of FN, num of TN """ for ip in ips_to_insert: ds.add_new(ip) results: Results = Results() for ip in ips_to_query: should_exists: bool = ds.should_exists(ip) if should_exists: if ds.is_exists(ip): results.tp += 1 else: results.fp += 1 else: if ds.is_exists(ip): results.fn += 1 else: results.tn += 1 results.total += 1 return results
def gen_layerN(self, layer, num=10): if not isinstance(layer, int): raise Exception('layer should be int type!') layer = int(layer) for i in tqdm(xrange(num), desc='layer%s generate expr' % layer): expr_object = DataStructure() expr_object.values.expr = str(i) expr_object.values.type = 'operators' expr_object.values.layer = layer expr_object.values.expr = self.assemble_expr(layer) expr_object.write_mongodb(self.mongodb)
def gen_layer0(self): for i in [ 'OpenPrice', 'HighestPrice', 'LowestPrice', 'ClosePrice', "Volume", "Position", "VWAP", "Return", "TurnOver" ]: expr_object = DataStructure() #expr_object.values.id = str(uuid.uuid1()) expr_object.values.expr = str(i) expr_object.values.type = 'elements' expr_object.values.layer = 0 expr_object.write_mongodb(self.mongodb)
def create_output(self): """Funcion que crea el objeto con la estrusctura de datos leible y luego crea el objeto resultado que posee una estructura mas leible para ser introducido en el output.txt ademas de guardarlo en lista a los valores """ f = open("Output.txt", "w") dt = DataStructure(self.input) dt.open_fill() for i in dt.get_all(): p = Resultado(i) if type(p.get_id()) == (int): self.output.append(p.get_all()) f.write("{}\n\n".format(p.get_all())) f.close()
def test_insert_specifying_initial_values(): ds = DataStructure([1, 2, 3, 4, 5]) ds.insert(6) assert len(ds.values) == 6
def test_insert_default_constructor(): ds = DataStructure() ds.insert(1) assert len(ds.values) == 1
def test_get_random_in_appropriate_range(): ds = DataStructure([1, 5, 2, 5, 3, 4, 5]) output = ds.get_random() assert output >= 1 and output <= 5
def test_remove_multiple_duplicate_values(): ds = DataStructure([1, 5, 2, 5, 3, 4, 5]) ds.remove(5) assert 5 not in ds.values
def test_remove_single_value(): ds = DataStructure([1, 2, 3, 4, 5]) ds.remove(5) assert 5 not in ds.values
def create_ds(): m = int(input("Please enter the size of the hash table: ")) k = int(input("Please enter the number of hushing functions: ")) ds = DataStructure(k, m) return ds
index=self.eod.dates[1:], columns=self.eod.ticker_names) bt = BackTest(resample_wgts, returns=self.resample_returns, cycle='day', IS_OOS_ratio=None, stat_info=False, plot=False, quintiles=3, turnover=1, cost=0., ticker_names=None, output_dir=None, test_mode=False, signal_name=None) bt.stat_quintiles() bt.stat_quintiles_pnl() bt.stat_alpha_pnl() bt.stat_alpha_sharpe() # 保存信号 print expr_ds.values.id, expr_ds.values.expr, 'sharpe:', bt.alpha_sharpe #expr_ds.write(expr_ds.values.id) if __name__ == '__main__': w = Worker() ds = DataStructure() ds.read('layer1', 'aae599d4-491e-11e8-8c43-801844e189f4') w.cal_alphas()