"""
涨跌停制度规则（包含st股，但是不包含新股）:
---2020年8月23日
非ST股票 10%
ST股票 5%

---2020年8月24日至今
普通非ST股票 10%
普通ST股票 5%

科创板（sh68） 20%（一直是20%，不受时间限制）
创业板（sz30） 20%
科创板和创业板即使ST，涨跌幅限制也是20%

北交所（bj） 30% 
"""
from polars import col

# 北交涨停价
third_board_upper_limit_expr = (col('pre_close') * 1.3 * 100).floor() / 100
# 北交所跌停价
third_board_lower_limit_expr = (col('pre_close') * 0.7 * 100).ceil() / 100

# 双创涨停价
second_board_upper_limit_expr = (col('pre_close') * 1.2).round(decimals=2, mode='half_away_from_zero')
# 双创跌停价
second_board_lower_limit_expr = (col('pre_close') * 0.8).round(decimals=2, mode='half_away_from_zero')

# 沪深主板涨停价
main_board_upper_limit_expr = (col('pre_close') * 1.1).round(decimals=2, mode='half_away_from_zero')
# 沪深主板跌停价
main_board_lower_limit_expr = (col('pre_close') * 0.9).round(decimals=2, mode='half_away_from_zero')

# 沪深主板ST涨停价
main_board_st_upper_limit_expr = (col('pre_close') * 1.05).round(decimals=2, mode='half_away_from_zero')
# 沪深主板ST跌停价
main_board_st_lower_limit_expr = (col('pre_close') * 0.95).round(decimals=2, mode='half_away_from_zero')

# 可转债涨停价
cb_upper_limit_expr = (col('pre_close') * 1.2).round(decimals=3, mode='half_away_from_zero')
# 可转债跌停价
cb_lower_limit_expr = (col('pre_close') * 0.8).round(decimals=3, mode='half_away_from_zero')
