55@author: gaoan
66"""
77from tigeropen .common .model import BaseParams
8+ from tigeropen .common .util .string_utils import underline_to_camel
89
910
1011class MarketParams (BaseParams ):
@@ -1068,12 +1069,12 @@ def __init__(self):
10681069 # sort directions
10691070 self ._sort_dir = None
10701071 # 1:Call, 2: Put, 3: Bull,4: Bear, 0: All
1071- self ._warrant_type = None
1072+ self ._warrant_type : set [ int ] = set ()
10721073 self ._issuer_name = None
10731074 # expiry date: yyyy-MM
10741075 self ._expire_ym = None
10751076 # 0 All, 1 Normal, 2 Terminate Trades, 3 Waiting to be listed
1076- self ._state = None
1077+ self ._state : int = None
10771078 # -1:out the money, 1: in the money
10781079 self ._in_out_price : set [int ] = set ()
10791080 self ._lot_size : set [int ] = set ()
@@ -1088,6 +1089,51 @@ def __init__(self):
10881089 self ._outstanding_ratio : tuple [float , float ] = tuple ()
10891090 self ._implied_volatility : tuple [int , int ] = tuple ()
10901091
1092+ def set_state (self , value ):
1093+ self ._state = value
1094+
1095+ def set_issuer_name (self , value ):
1096+ self ._issuer_name = value
1097+
1098+ def set_expire_ym (self , value ):
1099+ self ._expire_ym = value
1100+
1101+ def add_warrant_type (self , value ):
1102+ self ._warrant_type .add (value )
1103+
1104+ def add_in_out_price (self , value ):
1105+ self ._in_out_price .add (value )
1106+
1107+ def add_lot_size (self , value ):
1108+ self ._lot_size .add (value )
1109+
1110+ def add_entitlement_ratio (self , value ):
1111+ self ._entitlement_ratio .add (value )
1112+
1113+ def set_strike_range (self , min_value , max_value ):
1114+ self ._strike = (min_value , max_value )
1115+
1116+ def set_effective_leverage_range (self , min_value , max_value ):
1117+ self ._effective_leverage = (min_value , max_value )
1118+
1119+ def set_leverage_ratio_range (self , min_value , max_value ):
1120+ self ._leverage_ratio = (min_value , max_value )
1121+
1122+ def set_call_price_range (self , min_value , max_value ):
1123+ self ._call_price = (min_value , max_value )
1124+
1125+ def set_volume_range (self , min_value , max_value ):
1126+ self ._volume = (min_value , max_value )
1127+
1128+ def set_premium_range (self , min_value , max_value ):
1129+ self ._premium = (min_value , max_value )
1130+
1131+ def set_outstanding_ratio_range (self , min_value , max_value ):
1132+ self ._outstanding_ratio = (min_value , max_value )
1133+
1134+ def set_implied_volatility_range (self , min_value , max_value ):
1135+ self ._implied_volatility = (min_value , max_value )
1136+
10911137 @property
10921138 def symbol (self ):
10931139 return self ._symbol
@@ -1160,6 +1206,30 @@ def state(self):
11601206 def state (self , value ):
11611207 self ._state = value
11621208
1209+ @property
1210+ def in_out_price (self ):
1211+ return self ._in_out_price
1212+
1213+ @in_out_price .setter
1214+ def in_out_price (self , value ):
1215+ self ._in_out_price = value
1216+
1217+ @property
1218+ def lot_size (self ):
1219+ return self ._lot_size
1220+
1221+ @lot_size .setter
1222+ def lot_size (self , value ):
1223+ self ._lot_size = value
1224+
1225+ @property
1226+ def entitlement_ratio (self ):
1227+ return self ._entitlement_ratio
1228+
1229+ @entitlement_ratio .setter
1230+ def entitlement_ratio (self , value ):
1231+ self ._entitlement_ratio = value
1232+
11631233 @property
11641234 def strike (self ):
11651235 return self ._strike
@@ -1225,9 +1295,9 @@ def implied_volatility(self, value):
12251295 self ._implied_volatility = value
12261296
12271297 def convert_range_param (self , value : tuple ):
1228- if value and len (value ) == 2 :
1298+ if ( isinstance ( value , tuple ) or isinstance ( value , list )) and len (value ) == 2 :
12291299 return {'min' : value [0 ], 'max' : value [1 ]}
1230- return None
1300+ return value
12311301
12321302 def to_openapi_dict (self ):
12331303 params = super ().to_openapi_dict ()
@@ -1238,15 +1308,21 @@ def to_openapi_dict(self):
12381308 if self .page_size :
12391309 params ['page_size' ] = self .page_size
12401310 if self .sort_field_name :
1241- params ['sort_field_name' ] = self .sort_field_name
1311+ params ['sort_field_name' ] = underline_to_camel ( self .sort_field_name )
12421312 if self .sort_dir :
12431313 params ['sort_dir' ] = self .sort_dir
1244- if self .warrant_type :
1245- params ['warrant_type' ] = self .warrant_type
12461314 if self .issuer_name :
12471315 params ['issuer_name' ] = self .issuer_name
12481316 if self .expire_ym :
12491317 params ['expire_ym' ] = self .expire_ym
1318+ if self .in_out_price :
1319+ params ['in_out_price' ] = list (self .in_out_price )
1320+ if self .lot_size :
1321+ params ['lot_size' ] = list (self .lot_size )
1322+ if self .entitlement_ratio :
1323+ params ['entitlement_ratio' ] = list (self .entitlement_ratio )
1324+ if self .warrant_type :
1325+ params ['warrant_type' ] = list (self .warrant_type )
12501326 if self .state :
12511327 params ['state' ] = self .state
12521328 # tuple params
0 commit comments