コード例 #1
0
    def strategy_to_json(self, HFStrategyMeta):
        data_json = {}
        try:
            signal_finder = SignalFinder()
            for member in HFStrategyMeta.get_const_member_list():
                member_value = getattr(HFStrategyMeta, member)
                if member in HFStrategyMeta.get_portfolio_list():
                    data_json[member] = reference_portfolio(member_value)
                    if data_json[member] == -1:
                        raise CSVConverterError(HFStrategyMeta.Name, HFStrategyMeta.Type, "Can't find portfolio: {0}".format(member_value))
                elif member in HFStrategyMeta.get_signal_list():
                    data_json[member] = (signal_finder.get_signal_id_by_name(member_value), member_value)[isinstance(member_value, int)]
                    if data_json[member] == -1:
                        raise CSVConverterError(HFStrategyMeta.Name, HFStrategyMeta.Type, "Can't find signal: {0}".format(member_value))

                elif member in HFStrategyMeta.get_bool_list():
                    data_json[member] = is_bool(member_value)
                elif member in HFStrategyMeta.get_MatchStrategyId():
                    data_json[member] = (get_strategy_id_by_name(self.work_dir, member_value), member_value)[isinstance(member_value, int)]
                    if data_json[member] == -1:
                        raise CSVConverterError(HFStrategyMeta.Name, HFStrategyMeta.Type, "Can't find matchstrategy:{0}".format(member_value))
                else:
                    data_json[member] = member_value
            data_json['Instruments'] = generate_instruments(HFStrategyMeta, HFStrategyMeta.member_list)
            data_json['Ranges'] = generate_ranges(HFStrategyMeta, HFStrategyMeta.member_list)
        except Exception as e:
            raise CSVConverterError(HFStrategyMeta.Name, HFStrategyMeta.Type, e.message)
        if self.work_dir is not None:
            self.__create_file(data_json)
        return data_json
コード例 #2
0
 def strategy_to_json(self, TradingUniverseMeta):
     data_json = {}
     try:
         signal_finder = SignalFinder()
         is_error = False
         for member in TradingUniverseMeta.get_const_member_list():
             member_value = getattr(TradingUniverseMeta, member)
             if member in TradingUniverseMeta.get_bool_list():
                 data_json[member] = is_bool(
                     getattr(TradingUniverseMeta, member))
             elif member in TradingUniverseMeta.get_signal_list():
                 data_json[member] = (
                     signal_finder.get_signal_id_by_name(member_value),
                     member_value)[isinstance(member_value, int)]
                 if data_json[member] == -1:
                     is_error = True
             else:
                 data_json[member] = getattr(TradingUniverseMeta, member)
         data_json["TradingUniverse"] = reference_arg_manager(
             "$GetTradingUniverse({0})".format(None))
         if not is_error:
             signal_object = SignalObject()
             signal_object.name = TradingUniverseMeta.Name
             signal_object.type = TradingUniverseMeta.Type
             signal_object.enable = True
             signal_object.node = json.dumps(data_json)
             self.__signal_object_list.append(signal_object)
     except Exception as e:
         raise CSVConverterError(TradingUniverseMeta.Name,
                                 TradingUniverseMeta.Type, e.message)
コード例 #3
0
 def strategy_to_json(self, ExtraDayReturnSquareMeta):
     data_json = {}
     try:
         signal_finder = SignalFinder()
         is_error = False
         for member in ExtraDayReturnSquareMeta.get_const_member_list():
             member_value = getattr(ExtraDayReturnSquareMeta, member)
             if member in ExtraDayReturnSquareMeta.get_bool_list():
                 data_json[member] = is_bool(
                     getattr(ExtraDayReturnSquareMeta, member))
             elif member in ExtraDayReturnSquareMeta.get_signal_list():
                 data_json[member] = (
                     signal_finder.get_signal_id_by_name(member_value),
                     member_value)[isinstance(member_value, int)]
                 if data_json[member] == -1:
                     is_error = True
             else:
                 data_json[member] = getattr(ExtraDayReturnSquareMeta,
                                             member)
         if not is_error:
             signal_object = SignalObject()
             signal_object.name = ExtraDayReturnSquareMeta.Name
             signal_object.type = ExtraDayReturnSquareMeta.Type
             signal_object.enable = True
             signal_object.node = json.dumps(data_json)
             self.__signal_object_list.append(signal_object)
     except Exception as e:
         raise CSVConverterError(ExtraDayReturnSquareMeta.Name,
                                 ExtraDayReturnSquareMeta.Type, e.message)
コード例 #4
0
 def strategy_to_json(self, SouthMeta):
     data_json = {}
     try:
         signal_finder = SignalFinder()
         is_error = False
         for member in SouthMeta.get_const_member_list():
             member_value = getattr(SouthMeta, member)
             if member in SouthMeta.get_bool_list():
                 data_json[member] = is_bool(getattr(SouthMeta, member))
             elif member in SouthMeta.get_signal_list():
                 data_json[member] = (
                     signal_finder.get_signal_id_by_name(member_value),
                     member_value)[isinstance(member_value, int)]
                 if data_json[member] == -1:
                     is_error = True
             else:
                 data_json[member] = getattr(SouthMeta, member)
         param = data_json["South"].strip().split('$')
         param = param[1].split(',')
         param[0] = param[0][1:]
         param[-1] = param[-1][:-1]
         data_json["South"] = reference_arg_manager(
             "$GetSouth({0},{1})".format(SouthMeta.BalanceDate, param[-1]))
         param = data_json["South1"].strip().split('$')
         param = param[1].split(',')
         param[0] = param[0][1:]
         param[-1] = param[-1][:-1]
         data_json["South1"] = reference_arg_manager(
             "$GetSouth({0},{1})".format(SouthMeta.BalanceDate, param[-1]))
         if not is_error:
             signal_object = SignalObject()
             signal_object.name = SouthMeta.Name
             signal_object.type = SouthMeta.Type
             signal_object.enable = True
             signal_object.node = json.dumps(data_json)
             self.__signal_object_list.append(signal_object)
     except Exception as e:
         raise CSVConverterError(SouthMeta.Name, SouthMeta.Type, e.message)
コード例 #5
0
 def strategy_to_json(self, SectorAmountDiversificationMeta):
     data_json = {}
     try:
         signal_finder = SignalFinder()
         is_error = False
         for member in SectorAmountDiversificationMeta.get_const_member_list(
         ):
             member_value = getattr(SectorAmountDiversificationMeta, member)
             if member in SectorAmountDiversificationMeta.get_bool_list():
                 data_json[member] = is_bool(
                     getattr(SectorAmountDiversificationMeta, member))
             elif member in SectorAmountDiversificationMeta.get_signal_list(
             ):
                 data_json[member] = (
                     signal_finder.get_signal_id_by_name(member_value),
                     member_value)[isinstance(member_value, int)]
                 if data_json[member] == -1:
                     is_error = True
             else:
                 data_json[member] = getattr(
                     SectorAmountDiversificationMeta, member)
         data_json["SectorAmountDiversification"] = reference_arg_manager(
             "$GetSectorAmountDiversification({0},{1},{2})".format(
                 SectorAmountDiversificationMeta.CalculateDate,
                 SectorAmountDiversificationMeta.SegmentDays,
                 SectorAmountDiversificationMeta.MAWin))
         if not is_error:
             signal_object = SignalObject()
             signal_object.name = SectorAmountDiversificationMeta.Name
             signal_object.type = SectorAmountDiversificationMeta.Type
             signal_object.enable = True
             signal_object.node = json.dumps(data_json)
             self.__signal_object_list.append(signal_object)
     except Exception as e:
         raise CSVConverterError(SectorAmountDiversificationMeta.Name,
                                 SectorAmountDiversificationMeta.Type,
                                 e.message)