def real2_update(args): record = {} if args.user: record["user"] = args.user if args.instance_id: record["instance_id"] = args.instance_id if args.config_path: record["config_path"] = args.config_path if args.exchange: record["exchange"] = args.exchange if args.value: instance = si.get_strategy_instance(args.sii) instance_id = instance["instance_id"] exchange_name = instance["exchange"] if not exchange_name: exchange_name = record["exchange_name"] config_path = instance["config_path"] if not config_path: config_path = record["config_path"] value = instance["value"] config = xq.get_strategy_config(config_path) symbol = config['symbol'] realEngine = RealEngine(instance_id, exchange_name, config, value) orders = realEngine.get_orders(symbol) if orders: return record["value"] = args.value if args.status: record["status"] = args.status if record: si.update_strategy_instance({"instance_id": args.sii}, record)
parser.add_argument('-sii', help='strategy instance id') parser.add_argument('-direction', choices=[bl.DIRECTION_LONG, bl.DIRECTION_SHORT], help='direction') parser.add_argument('-action', choices=[bl.OPEN_POSITION, bl.CLOSE_POSITION], help='action') #parser.add_argument('-pr', type=float, default=0, help='postion rate') parser.add_argument('-rmk', help='remark') args = parser.parse_args() print(args) if not (args.sii and args.action): parser.print_help() exit(1) instance = get_strategy_instance(args.sii) config = xq.get_strategy_config(instance['config_path']) re = RealEngine(args.sii, instance['exchange'], config, instance['value']) symbol = config['symbol'] klines = re.md.get_klines(symbol, config["kline"]["interval"], 1) if len(klines) <= 0: exit(1) cur_price = float(klines[-1][re.md.get_kline_seat_close()]) pst_info = re.get_position(symbol, cur_price) if args.action == bl.OPEN_POSITION: pst_rate = 1 else: pst_rate = 0
def real2_view(args): instance = si.get_strategy_instance(args.sii) config = xq.get_strategy_config(instance['config_path']) real_view(config, args.sii, instance['exchange'], instance['value'])
def real2_analyze(args): instance = si.get_strategy_instance(args.sii) config = xq.get_strategy_config(instance['config_path']) real_analyze(config, args.sii, instance['exchange'], instance['value'], args.hl, args.rmk)
parser.add_argument('-p', help='Parameters') args = parser.parse_args() print(args) if not args.m and not args.sii: parser.print_help() exit(1) if args.m == 'add' and not args.p: parser.print_help() exit(1) if args.m == 'udpate' and not args.p: parser.print_help() exit(1) if args.m == 'add': add_strategy_instance({**{"instance_id": args.sii}, **json.loads(args.p)}) elif args.m == 'update': update_strategy_instance({"instance_id": args.sii}, json.loads(args.p)) elif args.m == 'delete': delete_strategy_instance({"instance_id": args.sii}) elif args.m == 'show': print(get_strategy_instance(args.sii)) else: parser.print_help() exit(1) exit(1)