diff --git a/setup.py b/setup.py index 929b23a..7d54d59 100644 --- a/setup.py +++ b/setup.py @@ -10,7 +10,7 @@ setuptools.setup( name="DroidRpc", - version="1.3.4", + version="1.4.2", description="Python client for connecting to LORA Technologies' bot services.", long_description=long_description, long_description_content_type="text/markdown", diff --git a/src/DroidRpc/client.py b/src/DroidRpc/client.py index 343a287..9b7e268 100644 --- a/src/DroidRpc/client.py +++ b/src/DroidRpc/client.py @@ -32,7 +32,10 @@ class Client: batch_size = 400 - def __init__(self, address: str = "guardian", port: str = "50065"): + def __init__(self, + address: str = "guardian", + port: str = "50065", + batch_size: int = None): self.address = address self.port = port # TODO: Use a secure channel because this is external facing @@ -40,6 +43,8 @@ def __init__(self, address: str = "guardian", port: str = "50065"): self.droid = bot_pb2_grpc.DroidStub( self.channel ) # This one contains the bistream + if batch_size is not None: + self.batch_size = batch_size def __string_to_datetime(self, date: str): date = datetime.strptime(date, "%Y-%m-%d") @@ -85,8 +90,7 @@ def __create_bots_generator(self, input_matrix: np.ndarray): """ # Split input matrix into smaller batches - batch_size = 400 - splits = math.ceil(input_matrix.shape[1] / batch_size) + splits = math.ceil(input_matrix.shape[1] / self.batch_size) input_matrix = np.array_split(input_matrix, splits, axis=1) for batch in input_matrix: @@ -296,8 +300,7 @@ def __hedge_bots_generator(self, input_matrix: np.array): """ # Split input matrix into smaller batches - batch_size = 400 - splits = math.ceil(input_matrix.shape[1] / batch_size) + splits = math.ceil(input_matrix.shape[1] / self.batch_size) input_matrix = np.array_split(input_matrix, splits, axis=1) for batch in input_matrix: @@ -455,8 +458,7 @@ def __stop_bots_generator( self, input_matrix: np.ndarray, ): - batch_size = 400 - splits = math.ceil(input_matrix.shape[1] / batch_size) + splits = math.ceil(input_matrix.shape[1] / self.batch_size) input_matrix = np.array_split(input_matrix, splits, axis=1) for batch in input_matrix: diff --git a/src/DroidRpc/grpc_interface/bot_pb2.py b/src/DroidRpc/grpc_interface/bot_pb2.py index a6fd450..26f0344 100644 --- a/src/DroidRpc/grpc_interface/bot_pb2.py +++ b/src/DroidRpc/grpc_interface/bot_pb2.py @@ -20,7 +20,7 @@ syntax='proto3', serialized_options=None, create_key=_descriptor._internal_create_key, - serialized_pb=b'\n\tbot.proto\x12\x04\x65\x63ho\x1a\x1fgoogle/protobuf/timestamp.proto\"\xd1\x01\n\x06\x43reate\x12\x0e\n\x06ticker\x18\x01 \x01(\t\x12-\n\tspot_date\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x19\n\x11investment_amount\x18\x03 \x01(\x02\x12\r\n\x05price\x18\x04 \x01(\x02\x12\x0e\n\x06\x62ot_id\x18\x05 \x01(\t\x12\x0e\n\x06margin\x18\x06 \x01(\x05\x12\x10\n\x08\x66raction\x18\x07 \x01(\x08\x12\x15\n\rtp_multiplier\x18\x08 \x01(\x02\x12\x15\n\rsl_multiplier\x18\t \x01(\x02\"\xe8\x05\n\x05Hedge\x12\x0e\n\x06\x62ot_id\x18\x01 \x01(\t\x12\x0b\n\x03ric\x18\x02 \x01(\t\x12\x15\n\rcurrent_price\x18\x03 \x01(\x02\x12\x13\n\x0b\x65ntry_price\x18\x04 \x01(\x02\x12\x1b\n\x0elast_share_num\x18\x05 \x01(\x02H\x00\x88\x01\x01\x12\x18\n\x10last_hedge_delta\x18\x06 \x01(\x02\x12\x19\n\x11investment_amount\x18\x07 \x01(\x02\x12\x1d\n\x10\x62ot_cash_balance\x18\x08 \x01(\x02H\x01\x88\x01\x01\x12\x17\n\x0fstop_loss_price\x18\t \x01(\x02\x12\x19\n\x11take_profit_price\x18\n \x01(\x02\x12*\n\x06\x65xpiry\x18\x0b \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x13\n\x06strike\x18\x0c \x01(\x02H\x02\x88\x01\x01\x12\x15\n\x08strike_2\x18\r \x01(\x02H\x03\x88\x01\x01\x12\x0e\n\x06margin\x18\x0e \x01(\x02\x12\x10\n\x08\x66raction\x18\x0f \x01(\x02\x12\x19\n\x0coption_price\x18\x10 \x01(\x02H\x04\x88\x01\x01\x12\x14\n\x07\x62\x61rrier\x18\x11 \x01(\x02H\x05\x88\x01\x01\x12\x1e\n\x11\x63urrent_low_price\x18\x12 \x01(\x02H\x06\x88\x01\x01\x12\x1f\n\x12\x63urrent_high_price\x18\x13 \x01(\x02H\x07\x88\x01\x01\x12\x16\n\task_price\x18\x14 \x01(\x02H\x08\x88\x01\x01\x12\x16\n\tbid_price\x18\x15 \x01(\x02H\t\x88\x01\x01\x12/\n\x0btrading_day\x18\x16 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x11\n\x0f_last_share_numB\x13\n\x11_bot_cash_balanceB\t\n\x07_strikeB\x0b\n\t_strike_2B\x0f\n\r_option_priceB\n\n\x08_barrierB\x14\n\x12_current_low_priceB\x15\n\x13_current_high_priceB\x0c\n\n_ask_priceB\x0c\n\n_bid_price\"\x89\x06\n\x04Stop\x12\x0e\n\x06\x62ot_id\x18\x01 \x01(\t\x12\x0b\n\x03ric\x18\x02 \x01(\t\x12\x15\n\rcurrent_price\x18\x03 \x01(\x02\x12\x13\n\x0b\x65ntry_price\x18\x04 \x01(\x02\x12\x1b\n\x0elast_share_num\x18\x05 \x01(\x02H\x00\x88\x01\x01\x12\x18\n\x10last_hedge_delta\x18\x06 \x01(\x02\x12\x19\n\x11investment_amount\x18\x07 \x01(\x02\x12\x1d\n\x10\x62ot_cash_balance\x18\x08 \x01(\x02H\x01\x88\x01\x01\x12\x17\n\x0fstop_loss_price\x18\t \x01(\x02\x12\x19\n\x11take_profit_price\x18\n \x01(\x02\x12*\n\x06\x65xpiry\x18\x0b \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x13\n\x06strike\x18\x0c \x01(\x02H\x02\x88\x01\x01\x12\x15\n\x08strike_2\x18\r \x01(\x02H\x03\x88\x01\x01\x12\x13\n\x06margin\x18\x0e \x01(\x02H\x04\x88\x01\x01\x12\x15\n\x08\x66raction\x18\x0f \x01(\x02H\x05\x88\x01\x01\x12\x19\n\x0coption_price\x18\x10 \x01(\x02H\x06\x88\x01\x01\x12\x14\n\x07\x62\x61rrier\x18\x11 \x01(\x02H\x07\x88\x01\x01\x12\x1e\n\x11\x63urrent_low_price\x18\x12 \x01(\x02H\x08\x88\x01\x01\x12\x1f\n\x12\x63urrent_high_price\x18\x13 \x01(\x02H\t\x88\x01\x01\x12\x16\n\task_price\x18\x14 \x01(\x02H\n\x88\x01\x01\x12\x16\n\tbid_price\x18\x15 \x01(\x02H\x0b\x88\x01\x01\x12/\n\x0btrading_day\x18\x16 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x11\n\x0f_last_share_numB\x13\n\x11_bot_cash_balanceB\t\n\x07_strikeB\x0b\n\t_strike_2B\t\n\x07_marginB\x0b\n\t_fractionB\x0f\n\r_option_priceB\n\n\x08_barrierB\x14\n\x12_current_low_priceB\x15\n\x13_current_high_priceB\x0c\n\n_ask_priceB\x0c\n\n_bid_price\"\xb9\x04\n\x0e\x43reateResponse\x12\x0f\n\x07\x62\x61rrier\x18\x01 \x01(\x02\x12\x0e\n\x06\x62ot_id\x18\x02 \x01(\t\x12\x13\n\x0b\x63lassic_vol\x18\x03 \x01(\x02\x12\x0f\n\x07\x63reated\x18\x04 \x01(\t\x12\r\n\x05\x64\x65lta\x18\x05 \x01(\x02\x12\x13\n\x0b\x65ntry_price\x18\x06 \x01(\x02\x12\x0e\n\x06\x65xpiry\x18\x07 \x01(\t\x12\x10\n\x08\x66raction\x18\x08 \x01(\x08\x12\x0e\n\x06margin\x18\t \x01(\x05\x12\x17\n\x0fmax_loss_amount\x18\n \x01(\x02\x12\x14\n\x0cmax_loss_pct\x18\x0b \x01(\x02\x12\x16\n\x0emax_loss_price\x18\x0c \x01(\x02\x12\x14\n\x0coption_price\x18\r \x01(\x02\x12\t\n\x01q\x18\x0e \x01(\x02\x12\t\n\x01r\x18\x0f \x01(\x02\x12\x11\n\tshare_num\x18\x10 \x01(\x02\x12\x0c\n\x04side\x18\x11 \x01(\t\x12\x11\n\tspot_date\x18\x12 \x01(\t\x12\x0e\n\x06status\x18\x13 \x01(\t\x12\x0e\n\x06strike\x18\x14 \x01(\x02\x12\x10\n\x08strike_2\x18\x15 \x01(\x02\x12\t\n\x01t\x18\x16 \x01(\x05\x12\x1c\n\x14target_profit_amount\x18\x17 \x01(\x02\x12\x19\n\x11target_profit_pct\x18\x18 \x01(\x02\x12\x1b\n\x13target_profit_price\x18\x19 \x01(\x02\x12\x0e\n\x06ticker\x18\x1a \x01(\t\x12\x1b\n\x13total_bot_share_num\x18\x1b \x01(\x05\x12\n\n\x02v1\x18\x1c \x01(\x02\x12\n\n\x02v2\x18\x1d \x01(\x02\x12\x0b\n\x03vol\x18\x1e \x01(\x02\"\xca\x02\n\rHedgeResponse\x12\x0f\n\x07\x62\x61rrier\x18\x01 \x01(\x02\x12\x15\n\rcurrent_price\x18\x02 \x01(\x02\x12\r\n\x05\x64\x65lta\x18\x03 \x01(\x02\x12\x13\n\x0b\x65ntry_price\x18\x04 \x01(\x02\x12\x18\n\x10last_hedge_delta\x18\x05 \x01(\x02\x12\x14\n\x0coption_price\x18\x06 \x01(\x02\x12\t\n\x01q\x18\x07 \x01(\x02\x12\t\n\x01r\x18\x08 \x01(\x02\x12\x14\n\x0cshare_change\x18\t \x01(\x02\x12\x11\n\tshare_num\x18\n \x01(\x02\x12\x0c\n\x04side\x18\x0b \x01(\t\x12\x0e\n\x06status\x18\x0c \x01(\t\x12\x0e\n\x06strike\x18\r \x01(\x02\x12\x10\n\x08strike_2\x18\x0e \x01(\x02\x12\t\n\x01t\x18\x0f \x01(\x05\x12\x1b\n\x13total_bot_share_num\x18\x10 \x01(\x05\x12\n\n\x02v1\x18\x11 \x01(\x02\x12\n\n\x02v2\x18\x12 \x01(\x02\"\xc9\x02\n\x0cStopResponse\x12\x0f\n\x07\x62\x61rrier\x18\x01 \x01(\x02\x12\x15\n\rcurrent_price\x18\x02 \x01(\x02\x12\r\n\x05\x64\x65lta\x18\x03 \x01(\x02\x12\x13\n\x0b\x65ntry_price\x18\x04 \x01(\x02\x12\x18\n\x10last_hedge_delta\x18\x05 \x01(\x02\x12\x14\n\x0coption_price\x18\x06 \x01(\x02\x12\t\n\x01q\x18\x07 \x01(\x02\x12\t\n\x01r\x18\x08 \x01(\x02\x12\x14\n\x0cshare_change\x18\t \x01(\x02\x12\x11\n\tshare_num\x18\n \x01(\x02\x12\x0c\n\x04side\x18\x0b \x01(\t\x12\x0e\n\x06status\x18\x0c \x01(\t\x12\x0e\n\x06strike\x18\r \x01(\x02\x12\x10\n\x08strike_2\x18\x0e \x01(\x02\x12\t\n\x01t\x18\x0f \x01(\x05\x12\x1b\n\x13total_bot_share_num\x18\x10 \x01(\x05\x12\n\n\x02v1\x18\x11 \x01(\x02\x12\n\n\x02v2\x18\x12 \x01(\x02\"\xcf\x01\n\x0b\x42\x61tchCreate\x12\x0e\n\x06ticker\x18\x01 \x01(\x0c\x12\x11\n\tspot_date\x18\x02 \x01(\x0c\x12\x0e\n\x06\x62ot_id\x18\x03 \x01(\x0c\x12\x19\n\x11investment_amount\x18\x04 \x01(\x0c\x12\x11\n\task_price\x18\x05 \x01(\x0c\x12\x11\n\tbid_price\x18\x06 \x01(\x0c\x12\x0e\n\x06margin\x18\x07 \x01(\x0c\x12\x10\n\x08\x66raction\x18\x08 \x01(\x0c\x12\x14\n\x0cmultiplier_1\x18\t \x01(\x0c\x12\x14\n\x0cmultiplier_2\x18\n \x01(\x0c\"\xce\x02\n\nBatchHedge\x12\x0e\n\x06ticker\x18\x01 \x01(\x0c\x12\x11\n\tspot_date\x18\x02 \x01(\x0c\x12\x0e\n\x06\x62ot_id\x18\x03 \x01(\x0c\x12\x19\n\x11investment_amount\x18\x04 \x01(\x0c\x12\x11\n\task_price\x18\x05 \x01(\x0c\x12\x11\n\tbid_price\x18\x06 \x01(\x0c\x12\x0e\n\x06margin\x18\x07 \x01(\x0c\x12\x10\n\x08\x66raction\x18\x08 \x01(\x0c\x12\x18\n\x10last_hedge_delta\x18\t \x01(\x0c\x12\x16\n\x0elast_share_num\x18\n \x01(\x0c\x12\x1b\n\x13total_bot_share_num\x18\x0b \x01(\x0c\x12\x18\n\x10\x62ot_cash_balance\x18\x0c \x01(\x0c\x12\x13\n\x0b\x65xpire_date\x18\r \x01(\x0c\x12\x15\n\rprice_level_1\x18\x0e \x01(\x0c\x12\x15\n\rprice_level_2\x18\x0f \x01(\x0c\"\xcd\x02\n\tBatchStop\x12\x0e\n\x06ticker\x18\x01 \x01(\x0c\x12\x11\n\tspot_date\x18\x02 \x01(\x0c\x12\x0e\n\x06\x62ot_id\x18\x03 \x01(\x0c\x12\x19\n\x11investment_amount\x18\x04 \x01(\x0c\x12\x11\n\task_price\x18\x05 \x01(\x0c\x12\x11\n\tbid_price\x18\x06 \x01(\x0c\x12\x0e\n\x06margin\x18\x07 \x01(\x0c\x12\x10\n\x08\x66raction\x18\x08 \x01(\x0c\x12\x18\n\x10last_hedge_delta\x18\t \x01(\x0c\x12\x16\n\x0elast_share_num\x18\n \x01(\x0c\x12\x1b\n\x13total_bot_share_num\x18\x0b \x01(\x0c\x12\x18\n\x10\x62ot_cash_balance\x18\x0c \x01(\x0c\x12\x13\n\x0b\x65xpire_date\x18\r \x01(\x0c\x12\x15\n\rprice_level_1\x18\x0e \x01(\x0c\x12\x15\n\rprice_level_2\x18\x0f \x01(\x0c\"\xb7\x05\n\x13\x42\x61tchCreateResponse\x12\x0e\n\x06ticker\x18\x01 \x01(\x0c\x12\x11\n\tspot_date\x18\x02 \x01(\x0c\x12\x0e\n\x06\x62ot_id\x18\x03 \x01(\x0c\x12\x19\n\x11investment_amount\x18\x04 \x01(\x0c\x12\x11\n\task_price\x18\x05 \x01(\x0c\x12\x11\n\tbid_price\x18\x06 \x01(\x0c\x12\x0e\n\x06margin\x18\x07 \x01(\x0c\x12\x10\n\x08\x66raction\x18\x08 \x01(\x0c\x12\x14\n\x0cmultiplier_1\x18\t \x01(\x0c\x12\x14\n\x0cmultiplier_2\x18\n \x01(\x0c\x12\r\n\x05\x64\x65lta\x18\x0b \x01(\x0c\x12\x11\n\tshare_num\x18\x0c \x01(\x0c\x12\x18\n\x10share_num_change\x18\r \x01(\x0c\x12\x1b\n\x13total_bot_share_num\x18\x0e \x01(\x0c\x12\x18\n\x10\x62ot_cash_balance\x18\x0f \x01(\x0c\x12\x13\n\x0b\x65xpire_date\x18\x10 \x01(\x0c\x12\x0e\n\x06status\x18\x11 \x01(\x0c\x12\x15\n\rprice_level_1\x18\x12 \x01(\x0c\x12\x15\n\rprice_level_2\x18\x13 \x01(\x0c\x12\x17\n\x0fmax_loss_amount\x18\x14 \x01(\x0c\x12\x14\n\x0cmax_loss_pct\x18\x15 \x01(\x0c\x12\x16\n\x0emax_loss_price\x18\x16 \x01(\x0c\x12\x1c\n\x14target_profit_amount\x18\x17 \x01(\x0c\x12\x19\n\x11target_profit_pct\x18\x18 \x01(\x0c\x12\x1b\n\x13target_profit_price\x18\x19 \x01(\x0c\x12\x13\n\x0b\x63lassic_vol\x18\x1a \x01(\x0c\x12\x10\n\x08vol_spot\x18\x1b \x01(\x0c\x12\x13\n\x0bvol_price_1\x18\x1c \x01(\x0c\x12\x13\n\x0bvol_price_2\x18\x1d \x01(\x0c\x12\t\n\x01q\x18\x1e \x01(\x0c\x12\t\n\x01r\x18\x1f \x01(\x0c\x12\x14\n\x0coption_price\x18 \x01(\x0c\"\xd6\x02\n\x12\x42\x61tchHedgeResponse\x12\x0e\n\x06ticker\x18\x01 \x01(\x0c\x12\x11\n\tspot_date\x18\x02 \x01(\x0c\x12\x0e\n\x06\x62ot_id\x18\x03 \x01(\x0c\x12\x19\n\x11investment_amount\x18\x04 \x01(\x0c\x12\x11\n\task_price\x18\x05 \x01(\x0c\x12\x11\n\tbid_price\x18\x06 \x01(\x0c\x12\r\n\x05\x64\x65lta\x18\x07 \x01(\x0c\x12\x11\n\tshare_num\x18\x08 \x01(\x0c\x12\x18\n\x10share_num_change\x18\t \x01(\x0c\x12\x0e\n\x06status\x18\n \x01(\x0c\x12\x18\n\x10\x62ot_cash_balance\x18\x0b \x01(\x0c\x12\x10\n\x08vol_spot\x18\x0c \x01(\x0c\x12\x13\n\x0bvol_price_1\x18\r \x01(\x0c\x12\x13\n\x0bvol_price_2\x18\x0e \x01(\x0c\x12\t\n\x01q\x18\x0f \x01(\x0c\x12\t\n\x01r\x18\x10 \x01(\x0c\x12\x14\n\x0coption_price\x18\x11 \x01(\x0c\"\xdc\x01\n\x11\x42\x61tchStopResponse\x12\r\n\x05\x64\x65lta\x18\x01 \x01(\x0c\x12\x11\n\tshare_num\x18\x02 \x01(\x0c\x12\x18\n\x10share_num_change\x18\x03 \x01(\x0c\x12\x0e\n\x06status\x18\x04 \x01(\x0c\x12\x13\n\x0b\x63lassic_vol\x18\x05 \x01(\x0c\x12\x10\n\x08vol_spot\x18\x06 \x01(\x0c\x12\x13\n\x0bvol_price_1\x18\x07 \x01(\x0c\x12\x13\n\x0bvol_price_2\x18\x08 \x01(\x0c\x12\t\n\x01q\x18\t \x01(\x0c\x12\t\n\x01r\x18\n \x01(\x0c\x12\x14\n\x0coption_price\x18\x0b \x01(\x0c\"\x1c\n\tEchoReply\x12\x0f\n\x07message\x18\x01 \x01(\t2\x8a\x01\n\x04\x45\x63ho\x12,\n\tCreateBot\x12\x0c.echo.Create\x1a\x0f.echo.EchoReply\"\x00\x12*\n\x08HedgeBot\x12\x0b.echo.Hedge\x1a\x0f.echo.EchoReply\"\x00\x12(\n\x07StopBot\x12\n.echo.Stop\x1a\x0f.echo.EchoReply\"\x00\x32\xc8\x02\n\x05\x44roid\x12,\n\tCreateBot\x12\x0c.echo.Create\x1a\x0f.echo.EchoReply\"\x00\x12*\n\x08HedgeBot\x12\x0b.echo.Hedge\x1a\x0f.echo.EchoReply\"\x00\x12(\n\x07StopBot\x12\n.echo.Stop\x1a\x0f.echo.EchoReply\"\x00\x12@\n\nCreateBots\x12\x11.echo.BatchCreate\x1a\x19.echo.BatchCreateResponse\"\x00(\x01\x30\x01\x12=\n\tHedgeBots\x12\x10.echo.BatchHedge\x1a\x18.echo.BatchHedgeResponse\"\x00(\x01\x30\x01\x12:\n\x08StopBots\x12\x0f.echo.BatchStop\x1a\x17.echo.BatchStopResponse\"\x00(\x01\x30\x01\x62\x06proto3' + serialized_pb=b'\n\tbot.proto\x12\x04\x65\x63ho\x1a\x1fgoogle/protobuf/timestamp.proto\"\xd1\x01\n\x06\x43reate\x12\x0e\n\x06ticker\x18\x01 \x01(\t\x12-\n\tspot_date\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x19\n\x11investment_amount\x18\x03 \x01(\x02\x12\r\n\x05price\x18\x04 \x01(\x02\x12\x0e\n\x06\x62ot_id\x18\x05 \x01(\t\x12\x0e\n\x06margin\x18\x06 \x01(\x05\x12\x10\n\x08\x66raction\x18\x07 \x01(\x08\x12\x15\n\rtp_multiplier\x18\x08 \x01(\x02\x12\x15\n\rsl_multiplier\x18\t \x01(\x02\"\xe8\x05\n\x05Hedge\x12\x0e\n\x06\x62ot_id\x18\x01 \x01(\t\x12\x0b\n\x03ric\x18\x02 \x01(\t\x12\x15\n\rcurrent_price\x18\x03 \x01(\x02\x12\x13\n\x0b\x65ntry_price\x18\x04 \x01(\x02\x12\x1b\n\x0elast_share_num\x18\x05 \x01(\x02H\x00\x88\x01\x01\x12\x18\n\x10last_hedge_delta\x18\x06 \x01(\x02\x12\x19\n\x11investment_amount\x18\x07 \x01(\x02\x12\x1d\n\x10\x62ot_cash_balance\x18\x08 \x01(\x02H\x01\x88\x01\x01\x12\x17\n\x0fstop_loss_price\x18\t \x01(\x02\x12\x19\n\x11take_profit_price\x18\n \x01(\x02\x12*\n\x06\x65xpiry\x18\x0b \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x13\n\x06strike\x18\x0c \x01(\x02H\x02\x88\x01\x01\x12\x15\n\x08strike_2\x18\r \x01(\x02H\x03\x88\x01\x01\x12\x0e\n\x06margin\x18\x0e \x01(\x02\x12\x10\n\x08\x66raction\x18\x0f \x01(\x02\x12\x19\n\x0coption_price\x18\x10 \x01(\x02H\x04\x88\x01\x01\x12\x14\n\x07\x62\x61rrier\x18\x11 \x01(\x02H\x05\x88\x01\x01\x12\x1e\n\x11\x63urrent_low_price\x18\x12 \x01(\x02H\x06\x88\x01\x01\x12\x1f\n\x12\x63urrent_high_price\x18\x13 \x01(\x02H\x07\x88\x01\x01\x12\x16\n\task_price\x18\x14 \x01(\x02H\x08\x88\x01\x01\x12\x16\n\tbid_price\x18\x15 \x01(\x02H\t\x88\x01\x01\x12/\n\x0btrading_day\x18\x16 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x11\n\x0f_last_share_numB\x13\n\x11_bot_cash_balanceB\t\n\x07_strikeB\x0b\n\t_strike_2B\x0f\n\r_option_priceB\n\n\x08_barrierB\x14\n\x12_current_low_priceB\x15\n\x13_current_high_priceB\x0c\n\n_ask_priceB\x0c\n\n_bid_price\"\x89\x06\n\x04Stop\x12\x0e\n\x06\x62ot_id\x18\x01 \x01(\t\x12\x0b\n\x03ric\x18\x02 \x01(\t\x12\x15\n\rcurrent_price\x18\x03 \x01(\x02\x12\x13\n\x0b\x65ntry_price\x18\x04 \x01(\x02\x12\x1b\n\x0elast_share_num\x18\x05 \x01(\x02H\x00\x88\x01\x01\x12\x18\n\x10last_hedge_delta\x18\x06 \x01(\x02\x12\x19\n\x11investment_amount\x18\x07 \x01(\x02\x12\x1d\n\x10\x62ot_cash_balance\x18\x08 \x01(\x02H\x01\x88\x01\x01\x12\x17\n\x0fstop_loss_price\x18\t \x01(\x02\x12\x19\n\x11take_profit_price\x18\n \x01(\x02\x12*\n\x06\x65xpiry\x18\x0b \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x13\n\x06strike\x18\x0c \x01(\x02H\x02\x88\x01\x01\x12\x15\n\x08strike_2\x18\r \x01(\x02H\x03\x88\x01\x01\x12\x13\n\x06margin\x18\x0e \x01(\x02H\x04\x88\x01\x01\x12\x15\n\x08\x66raction\x18\x0f \x01(\x02H\x05\x88\x01\x01\x12\x19\n\x0coption_price\x18\x10 \x01(\x02H\x06\x88\x01\x01\x12\x14\n\x07\x62\x61rrier\x18\x11 \x01(\x02H\x07\x88\x01\x01\x12\x1e\n\x11\x63urrent_low_price\x18\x12 \x01(\x02H\x08\x88\x01\x01\x12\x1f\n\x12\x63urrent_high_price\x18\x13 \x01(\x02H\t\x88\x01\x01\x12\x16\n\task_price\x18\x14 \x01(\x02H\n\x88\x01\x01\x12\x16\n\tbid_price\x18\x15 \x01(\x02H\x0b\x88\x01\x01\x12/\n\x0btrading_day\x18\x16 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x11\n\x0f_last_share_numB\x13\n\x11_bot_cash_balanceB\t\n\x07_strikeB\x0b\n\t_strike_2B\t\n\x07_marginB\x0b\n\t_fractionB\x0f\n\r_option_priceB\n\n\x08_barrierB\x14\n\x12_current_low_priceB\x15\n\x13_current_high_priceB\x0c\n\n_ask_priceB\x0c\n\n_bid_price\"\xb9\x04\n\x0e\x43reateResponse\x12\x0f\n\x07\x62\x61rrier\x18\x01 \x01(\x02\x12\x0e\n\x06\x62ot_id\x18\x02 \x01(\t\x12\x13\n\x0b\x63lassic_vol\x18\x03 \x01(\x02\x12\x0f\n\x07\x63reated\x18\x04 \x01(\t\x12\r\n\x05\x64\x65lta\x18\x05 \x01(\x02\x12\x13\n\x0b\x65ntry_price\x18\x06 \x01(\x02\x12\x0e\n\x06\x65xpiry\x18\x07 \x01(\t\x12\x10\n\x08\x66raction\x18\x08 \x01(\x08\x12\x0e\n\x06margin\x18\t \x01(\x05\x12\x17\n\x0fmax_loss_amount\x18\n \x01(\x02\x12\x14\n\x0cmax_loss_pct\x18\x0b \x01(\x02\x12\x16\n\x0emax_loss_price\x18\x0c \x01(\x02\x12\x14\n\x0coption_price\x18\r \x01(\x02\x12\t\n\x01q\x18\x0e \x01(\x02\x12\t\n\x01r\x18\x0f \x01(\x02\x12\x11\n\tshare_num\x18\x10 \x01(\x02\x12\x0c\n\x04side\x18\x11 \x01(\t\x12\x11\n\tspot_date\x18\x12 \x01(\t\x12\x0e\n\x06status\x18\x13 \x01(\t\x12\x0e\n\x06strike\x18\x14 \x01(\x02\x12\x10\n\x08strike_2\x18\x15 \x01(\x02\x12\t\n\x01t\x18\x16 \x01(\x05\x12\x1c\n\x14target_profit_amount\x18\x17 \x01(\x02\x12\x19\n\x11target_profit_pct\x18\x18 \x01(\x02\x12\x1b\n\x13target_profit_price\x18\x19 \x01(\x02\x12\x0e\n\x06ticker\x18\x1a \x01(\t\x12\x1b\n\x13total_bot_share_num\x18\x1b \x01(\x05\x12\n\n\x02v1\x18\x1c \x01(\x02\x12\n\n\x02v2\x18\x1d \x01(\x02\x12\x0b\n\x03vol\x18\x1e \x01(\x02\"\xca\x02\n\rHedgeResponse\x12\x0f\n\x07\x62\x61rrier\x18\x01 \x01(\x02\x12\x15\n\rcurrent_price\x18\x02 \x01(\x02\x12\r\n\x05\x64\x65lta\x18\x03 \x01(\x02\x12\x13\n\x0b\x65ntry_price\x18\x04 \x01(\x02\x12\x18\n\x10last_hedge_delta\x18\x05 \x01(\x02\x12\x14\n\x0coption_price\x18\x06 \x01(\x02\x12\t\n\x01q\x18\x07 \x01(\x02\x12\t\n\x01r\x18\x08 \x01(\x02\x12\x14\n\x0cshare_change\x18\t \x01(\x02\x12\x11\n\tshare_num\x18\n \x01(\x02\x12\x0c\n\x04side\x18\x0b \x01(\t\x12\x0e\n\x06status\x18\x0c \x01(\t\x12\x0e\n\x06strike\x18\r \x01(\x02\x12\x10\n\x08strike_2\x18\x0e \x01(\x02\x12\t\n\x01t\x18\x0f \x01(\x05\x12\x1b\n\x13total_bot_share_num\x18\x10 \x01(\x05\x12\n\n\x02v1\x18\x11 \x01(\x02\x12\n\n\x02v2\x18\x12 \x01(\x02\"\xc9\x02\n\x0cStopResponse\x12\x0f\n\x07\x62\x61rrier\x18\x01 \x01(\x02\x12\x15\n\rcurrent_price\x18\x02 \x01(\x02\x12\r\n\x05\x64\x65lta\x18\x03 \x01(\x02\x12\x13\n\x0b\x65ntry_price\x18\x04 \x01(\x02\x12\x18\n\x10last_hedge_delta\x18\x05 \x01(\x02\x12\x14\n\x0coption_price\x18\x06 \x01(\x02\x12\t\n\x01q\x18\x07 \x01(\x02\x12\t\n\x01r\x18\x08 \x01(\x02\x12\x14\n\x0cshare_change\x18\t \x01(\x02\x12\x11\n\tshare_num\x18\n \x01(\x02\x12\x0c\n\x04side\x18\x0b \x01(\t\x12\x0e\n\x06status\x18\x0c \x01(\t\x12\x0e\n\x06strike\x18\r \x01(\x02\x12\x10\n\x08strike_2\x18\x0e \x01(\x02\x12\t\n\x01t\x18\x0f \x01(\x05\x12\x1b\n\x13total_bot_share_num\x18\x10 \x01(\x05\x12\n\n\x02v1\x18\x11 \x01(\x02\x12\n\n\x02v2\x18\x12 \x01(\x02\"\xcf\x01\n\x0b\x42\x61tchCreate\x12\x0e\n\x06ticker\x18\x01 \x01(\x0c\x12\x11\n\tspot_date\x18\x02 \x01(\x0c\x12\x0e\n\x06\x62ot_id\x18\x03 \x01(\x0c\x12\x19\n\x11investment_amount\x18\x04 \x01(\x0c\x12\x11\n\task_price\x18\x05 \x01(\x0c\x12\x11\n\tbid_price\x18\x06 \x01(\x0c\x12\x0e\n\x06margin\x18\x07 \x01(\x0c\x12\x10\n\x08\x66raction\x18\x08 \x01(\x0c\x12\x14\n\x0cmultiplier_1\x18\t \x01(\x0c\x12\x14\n\x0cmultiplier_2\x18\n \x01(\x0c\"\xd5\x04\n\nBatchHedge\x12\x0e\n\x06ticker\x18\x01 \x01(\x0c\x12\x11\n\tspot_date\x18\x02 \x01(\x0c\x12\x0e\n\x06\x62ot_id\x18\x03 \x01(\x0c\x12\x19\n\x11investment_amount\x18\x04 \x01(\x0c\x12\x11\n\task_price\x18\x05 \x01(\x0c\x12\x11\n\tbid_price\x18\x06 \x01(\x0c\x12\x0e\n\x06margin\x18\x07 \x01(\x0c\x12\x10\n\x08\x66raction\x18\x08 \x01(\x0c\x12\x18\n\x10last_hedge_delta\x18\t \x01(\x0c\x12\x16\n\x0elast_share_num\x18\n \x01(\x0c\x12\x1b\n\x13total_bot_share_num\x18\x0b \x01(\x0c\x12\x18\n\x10\x62ot_cash_balance\x18\x0c \x01(\x0c\x12\x13\n\x0b\x65xpire_date\x18\r \x01(\x0c\x12\x15\n\rprice_level_1\x18\x0e \x01(\x0c\x12\x15\n\rprice_level_2\x18\x0f \x01(\x0c\x12\x10\n\x08\x63urrency\x18\x10 \x01(\x0c\x12\x13\n\x0btime_to_exp\x18\x11 \x01(\x0c\x12\x13\n\x0boption_type\x18\x12 \x01(\x0c\x12\x10\n\x08\x62ot_type\x18\x13 \x01(\x0c\x12\x1b\n\x13\x61tm_volatility_spot\x18\x14 \x01(\x0c\x12\x1f\n\x17\x61tm_volatility_one_year\x18\x15 \x01(\x0c\x12\x1f\n\x17\x61tm_volatility_infinity\x18\x16 \x01(\x0c\x12\r\n\x05slope\x18\x17 \x01(\x0c\x12\x11\n\tslope_inf\x18\x18 \x01(\x0c\x12\r\n\x05\x64\x65riv\x18\x19 \x01(\x0c\x12\x11\n\tderiv_inf\x18\x1a \x01(\x0c\x12\t\n\x01q\x18\x1b \x01(\x0c\x12\t\n\x01r\x18\x1c \x01(\x0c\"\xcd\x02\n\tBatchStop\x12\x0e\n\x06ticker\x18\x01 \x01(\x0c\x12\x11\n\tspot_date\x18\x02 \x01(\x0c\x12\x0e\n\x06\x62ot_id\x18\x03 \x01(\x0c\x12\x19\n\x11investment_amount\x18\x04 \x01(\x0c\x12\x11\n\task_price\x18\x05 \x01(\x0c\x12\x11\n\tbid_price\x18\x06 \x01(\x0c\x12\x0e\n\x06margin\x18\x07 \x01(\x0c\x12\x10\n\x08\x66raction\x18\x08 \x01(\x0c\x12\x18\n\x10last_hedge_delta\x18\t \x01(\x0c\x12\x16\n\x0elast_share_num\x18\n \x01(\x0c\x12\x1b\n\x13total_bot_share_num\x18\x0b \x01(\x0c\x12\x18\n\x10\x62ot_cash_balance\x18\x0c \x01(\x0c\x12\x13\n\x0b\x65xpire_date\x18\r \x01(\x0c\x12\x15\n\rprice_level_1\x18\x0e \x01(\x0c\x12\x15\n\rprice_level_2\x18\x0f \x01(\x0c\"\xb7\x05\n\x13\x42\x61tchCreateResponse\x12\x0e\n\x06ticker\x18\x01 \x01(\x0c\x12\x11\n\tspot_date\x18\x02 \x01(\x0c\x12\x0e\n\x06\x62ot_id\x18\x03 \x01(\x0c\x12\x19\n\x11investment_amount\x18\x04 \x01(\x0c\x12\x11\n\task_price\x18\x05 \x01(\x0c\x12\x11\n\tbid_price\x18\x06 \x01(\x0c\x12\x0e\n\x06margin\x18\x07 \x01(\x0c\x12\x10\n\x08\x66raction\x18\x08 \x01(\x0c\x12\x14\n\x0cmultiplier_1\x18\t \x01(\x0c\x12\x14\n\x0cmultiplier_2\x18\n \x01(\x0c\x12\r\n\x05\x64\x65lta\x18\x0b \x01(\x0c\x12\x11\n\tshare_num\x18\x0c \x01(\x0c\x12\x18\n\x10share_num_change\x18\r \x01(\x0c\x12\x1b\n\x13total_bot_share_num\x18\x0e \x01(\x0c\x12\x18\n\x10\x62ot_cash_balance\x18\x0f \x01(\x0c\x12\x13\n\x0b\x65xpire_date\x18\x10 \x01(\x0c\x12\x0e\n\x06status\x18\x11 \x01(\x0c\x12\x15\n\rprice_level_1\x18\x12 \x01(\x0c\x12\x15\n\rprice_level_2\x18\x13 \x01(\x0c\x12\x17\n\x0fmax_loss_amount\x18\x14 \x01(\x0c\x12\x14\n\x0cmax_loss_pct\x18\x15 \x01(\x0c\x12\x16\n\x0emax_loss_price\x18\x16 \x01(\x0c\x12\x1c\n\x14target_profit_amount\x18\x17 \x01(\x0c\x12\x19\n\x11target_profit_pct\x18\x18 \x01(\x0c\x12\x1b\n\x13target_profit_price\x18\x19 \x01(\x0c\x12\x13\n\x0b\x63lassic_vol\x18\x1a \x01(\x0c\x12\x10\n\x08vol_spot\x18\x1b \x01(\x0c\x12\x13\n\x0bvol_price_1\x18\x1c \x01(\x0c\x12\x13\n\x0bvol_price_2\x18\x1d \x01(\x0c\x12\t\n\x01q\x18\x1e \x01(\x0c\x12\t\n\x01r\x18\x1f \x01(\x0c\x12\x14\n\x0coption_price\x18 \x01(\x0c\"\xd6\x02\n\x12\x42\x61tchHedgeResponse\x12\x0e\n\x06ticker\x18\x01 \x01(\x0c\x12\x11\n\tspot_date\x18\x02 \x01(\x0c\x12\x0e\n\x06\x62ot_id\x18\x03 \x01(\x0c\x12\x19\n\x11investment_amount\x18\x04 \x01(\x0c\x12\x11\n\task_price\x18\x05 \x01(\x0c\x12\x11\n\tbid_price\x18\x06 \x01(\x0c\x12\r\n\x05\x64\x65lta\x18\x07 \x01(\x0c\x12\x11\n\tshare_num\x18\x08 \x01(\x0c\x12\x18\n\x10share_num_change\x18\t \x01(\x0c\x12\x0e\n\x06status\x18\n \x01(\x0c\x12\x18\n\x10\x62ot_cash_balance\x18\x0b \x01(\x0c\x12\x10\n\x08vol_spot\x18\x0c \x01(\x0c\x12\x13\n\x0bvol_price_1\x18\r \x01(\x0c\x12\x13\n\x0bvol_price_2\x18\x0e \x01(\x0c\x12\t\n\x01q\x18\x0f \x01(\x0c\x12\t\n\x01r\x18\x10 \x01(\x0c\x12\x14\n\x0coption_price\x18\x11 \x01(\x0c\"\xdc\x01\n\x11\x42\x61tchStopResponse\x12\r\n\x05\x64\x65lta\x18\x01 \x01(\x0c\x12\x11\n\tshare_num\x18\x02 \x01(\x0c\x12\x18\n\x10share_num_change\x18\x03 \x01(\x0c\x12\x0e\n\x06status\x18\x04 \x01(\x0c\x12\x13\n\x0b\x63lassic_vol\x18\x05 \x01(\x0c\x12\x10\n\x08vol_spot\x18\x06 \x01(\x0c\x12\x13\n\x0bvol_price_1\x18\x07 \x01(\x0c\x12\x13\n\x0bvol_price_2\x18\x08 \x01(\x0c\x12\t\n\x01q\x18\t \x01(\x0c\x12\t\n\x01r\x18\n \x01(\x0c\x12\x14\n\x0coption_price\x18\x0b \x01(\x0c\"\x1c\n\tEchoReply\x12\x0f\n\x07message\x18\x01 \x01(\t2\x8a\x01\n\x04\x45\x63ho\x12,\n\tCreateBot\x12\x0c.echo.Create\x1a\x0f.echo.EchoReply\"\x00\x12*\n\x08HedgeBot\x12\x0b.echo.Hedge\x1a\x0f.echo.EchoReply\"\x00\x12(\n\x07StopBot\x12\n.echo.Stop\x1a\x0f.echo.EchoReply\"\x00\x32\xc8\x02\n\x05\x44roid\x12,\n\tCreateBot\x12\x0c.echo.Create\x1a\x0f.echo.EchoReply\"\x00\x12*\n\x08HedgeBot\x12\x0b.echo.Hedge\x1a\x0f.echo.EchoReply\"\x00\x12(\n\x07StopBot\x12\n.echo.Stop\x1a\x0f.echo.EchoReply\"\x00\x12@\n\nCreateBots\x12\x11.echo.BatchCreate\x1a\x19.echo.BatchCreateResponse\"\x00(\x01\x30\x01\x12=\n\tHedgeBots\x12\x10.echo.BatchHedge\x1a\x18.echo.BatchHedgeResponse\"\x00(\x01\x30\x01\x12:\n\x08StopBots\x12\x0f.echo.BatchStop\x1a\x17.echo.BatchStopResponse\"\x00(\x01\x30\x01\x62\x06proto3' , dependencies=[google_dot_protobuf_dot_timestamp__pb2.DESCRIPTOR,]) @@ -1328,6 +1328,97 @@ message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='currency', full_name='echo.BatchHedge.currency', index=15, + number=16, type=12, cpp_type=9, label=1, + has_default_value=False, default_value=b"", + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='time_to_exp', full_name='echo.BatchHedge.time_to_exp', index=16, + number=17, type=12, cpp_type=9, label=1, + has_default_value=False, default_value=b"", + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='option_type', full_name='echo.BatchHedge.option_type', index=17, + number=18, type=12, cpp_type=9, label=1, + has_default_value=False, default_value=b"", + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='bot_type', full_name='echo.BatchHedge.bot_type', index=18, + number=19, type=12, cpp_type=9, label=1, + has_default_value=False, default_value=b"", + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='atm_volatility_spot', full_name='echo.BatchHedge.atm_volatility_spot', index=19, + number=20, type=12, cpp_type=9, label=1, + has_default_value=False, default_value=b"", + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='atm_volatility_one_year', full_name='echo.BatchHedge.atm_volatility_one_year', index=20, + number=21, type=12, cpp_type=9, label=1, + has_default_value=False, default_value=b"", + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='atm_volatility_infinity', full_name='echo.BatchHedge.atm_volatility_infinity', index=21, + number=22, type=12, cpp_type=9, label=1, + has_default_value=False, default_value=b"", + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='slope', full_name='echo.BatchHedge.slope', index=22, + number=23, type=12, cpp_type=9, label=1, + has_default_value=False, default_value=b"", + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='slope_inf', full_name='echo.BatchHedge.slope_inf', index=23, + number=24, type=12, cpp_type=9, label=1, + has_default_value=False, default_value=b"", + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='deriv', full_name='echo.BatchHedge.deriv', index=24, + number=25, type=12, cpp_type=9, label=1, + has_default_value=False, default_value=b"", + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='deriv_inf', full_name='echo.BatchHedge.deriv_inf', index=25, + number=26, type=12, cpp_type=9, label=1, + has_default_value=False, default_value=b"", + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='q', full_name='echo.BatchHedge.q', index=26, + number=27, type=12, cpp_type=9, label=1, + has_default_value=False, default_value=b"", + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='r', full_name='echo.BatchHedge.r', index=27, + number=28, type=12, cpp_type=9, label=1, + has_default_value=False, default_value=b"", + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), ], extensions=[ ], @@ -1341,7 +1432,7 @@ oneofs=[ ], serialized_start=3239, - serialized_end=3573, + serialized_end=3836, ) @@ -1470,8 +1561,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=3576, - serialized_end=3909, + serialized_start=3839, + serialized_end=4172, ) @@ -1719,8 +1810,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=3912, - serialized_end=4607, + serialized_start=4175, + serialized_end=4870, ) @@ -1863,8 +1954,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=4610, - serialized_end=4952, + serialized_start=4873, + serialized_end=5215, ) @@ -1965,8 +2056,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=4955, - serialized_end=5175, + serialized_start=5218, + serialized_end=5438, ) @@ -1997,8 +2088,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=5177, - serialized_end=5205, + serialized_start=5440, + serialized_end=5468, ) _CREATE.fields_by_name['spot_date'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP @@ -2187,8 +2278,8 @@ index=0, serialized_options=None, create_key=_descriptor._internal_create_key, - serialized_start=5208, - serialized_end=5346, + serialized_start=5471, + serialized_end=5609, methods=[ _descriptor.MethodDescriptor( name='CreateBot', @@ -2233,8 +2324,8 @@ index=1, serialized_options=None, create_key=_descriptor._internal_create_key, - serialized_start=5349, - serialized_end=5677, + serialized_start=5612, + serialized_end=5940, methods=[ _descriptor.MethodDescriptor( name='CreateBot',