99import pandas as pd
1010import requests
1111import six
12+ import tushare as ts
1213from lxml import etree
1314from pandas .compat import StringIO
1415from requests import Request
@@ -142,6 +143,9 @@ def query(self, client=None, navigation=None, timeout=None):
142143 def query_new_stocks (self ):
143144 return self .__query_new_stocks ()
144145
146+ def query_convertible_bonds (self ):
147+ return self .__query_convertible_bonds ()
148+
145149 def purchase_new_stocks (self , client = None , timeout = None ):
146150 today = datetime .datetime .strftime (datetime .datetime .today (), '%Y-%m-%d' )
147151 df = self .query_new_stocks ()
@@ -160,6 +164,24 @@ def purchase_new_stocks(self, client=None, timeout=None):
160164 self ._logger .error (
161165 '客户端[{}]申购新股[{}({})]失败\n {}' .format ((client or self ._client ), row ['name' ], row ['code' ], e ))
162166
167+ def purchase_convertible_bonds (self , client = None , timeout = None ):
168+ today = datetime .datetime .strftime (datetime .datetime .today (), '%Y-%m-%d' )
169+ df = self .query_convertible_bonds ()
170+ df = df [(df .ipo_date == today )]
171+ self ._logger .info ('今日有[{}]支可申购转债' .format (len (df )))
172+ for index , row in df .iterrows ():
173+ try :
174+ order = {
175+ 'symbol' : row ['xcode' ],
176+ 'price' : 100 ,
177+ 'amountProportion' : 'ALL'
178+ }
179+ self ._logger .info ('申购转债:{}' .format (order ))
180+ self .buy (client , timeout , ** order )
181+ except Exception as e :
182+ self ._logger .error (
183+ '客户端[{}]申购转债[{}({})]失败\n {}' .format ((client or self ._client ), row ['name' ], row ['code' ], e ))
184+
163185 def create_adjustment (self , client = None , request_json = None , timeout = None ):
164186 request = Request ('POST' , self .__create_url (client , 'adjustments' ), json = request_json )
165187 request .headers ['Content-Type' ] = MediaType .JOIN_QUANT .value
@@ -200,6 +222,10 @@ def __query_new_stocks(self):
200222 df ['xcode' ] = df ['xcode' ].map (lambda x : str (x ).zfill (6 ))
201223 return df
202224
225+ def __query_convertible_bonds (self ):
226+ df = ts .new_cbonds ()
227+ return df
228+
203229 def __create_order_url (self , client = None , order_id = None , ** params ):
204230 return self .__create_url (client , 'orders' , order_id , ** params )
205231
0 commit comments