优化杠杆下涨停处理和换仓逻辑 (#1)
This commit is contained in:
parent
767ee1c503
commit
de6953c0d7
14
trader.py
14
trader.py
|
@ -368,7 +368,7 @@ class Trader(Account):
|
|||
continue
|
||||
else:
|
||||
sell_list.append(stock)
|
||||
if len(sell_list) >= int(max_trade_num * margin_ratio) + 1:
|
||||
if len(sell_list) >= int(max_sell_num * margin_ratio) + 1:
|
||||
break
|
||||
next_margin_list = list(set(last_margin_list) - set(sell_list))
|
||||
# 更新非融资融券池
|
||||
|
@ -384,27 +384,31 @@ class Trader(Account):
|
|||
continue
|
||||
else:
|
||||
sell_list.append(stock)
|
||||
if len(sell_list) >= max_trade_num:
|
||||
if len(sell_list) >= max_sell_num:
|
||||
break
|
||||
next_normal_list = list(set(last_normal_list) - set(sell_list))
|
||||
# ----- 买入 -----
|
||||
# 卖出后持仓列表
|
||||
after_sell_list = set(last_position.index) - set(sell_list)
|
||||
max_trade_num = min(max_trade_num, self.num-len(last_position)+len(sell_list))
|
||||
cant_buy_list = [] # 涨停股记录
|
||||
# 融资融券池的和非融资融券池的分开更新
|
||||
# 更新融资融券池
|
||||
for stock in margin_list:
|
||||
if stock in after_sell_list:
|
||||
continue
|
||||
else:
|
||||
if stock_status.loc[stock] in [4,6]:
|
||||
cant_buy_list.append(stock)
|
||||
next_margin_list.append(stock)
|
||||
if len(next_margin_list) == margin_needed:
|
||||
if len(next_margin_list) >= margin_needed:
|
||||
break
|
||||
# 更新非融资融券池
|
||||
for stock in normal_list:
|
||||
if stock in after_sell_list:
|
||||
continue
|
||||
else:
|
||||
if stock_status.loc[stock] in [4,6]:
|
||||
cant_buy_list.append(stock)
|
||||
next_normal_list.append(stock)
|
||||
if len(next_normal_list) >= self.num - margin_needed:
|
||||
break
|
||||
|
@ -417,6 +421,8 @@ class Trader(Account):
|
|||
next_position = next_position.set_index(['stock_code'])
|
||||
next_position.loc[next_margin_list, 'margin_trade'] = 1
|
||||
next_position = next_position.reset_index()
|
||||
# 剔除无法买入的涨停股,这部分仓位空出
|
||||
next_position = next_position[~next_position['stock_code'].isin(cant_buy_list)]
|
||||
# 检测当前持仓是否可以交易
|
||||
frozen_list = []
|
||||
if len(self.position) > 0:
|
||||
|
|
Loading…
Reference in New Issue