小市值选股策略的核心在于通过综合分析公司的基本面、行业定位、财务健康状况以及市场趋势,
来寻找那些被市场低估但具备显著成长潜力的股票,同时也要重视风险管理和投资组合的多样化。
今天来给大家分享下小市值策略代码如下:
[code]# 显式导入 BigQuant 相关 SDK 模块from bigdatasource.api import DataSourcefrom bigdata.api.datareader import Dfrom biglearning.api import Mfrom biglearning.api import tools as Tfrom biglearning.module2.common.data import Outputsimport pandas as pdimport numpy as npimport mathimport warningsimport datetimefrom zipline.finance.commission import PerOrderfrom zipline.api import get_open_ordersfrom zipline.api import symbolfrom bigtrader.sdk import *from bigtrader.utils.my_collections import NumPyDequefrom bigtrader.constant import OrderTypefrom bigtrader.constant import Direction# # @param(id="m6", name="initialize")# 交易引擎:初始化函数,只执行一次def m6_initialize_bigquant_run(context):#读取数据context.ranker_prediction = context.options['data'].read_df()context.ranker_prediction.set_index('date',inplace=True)#print(context.ranker_prediction)# @param(id="m6", name="before_trading_start")# 交易引擎:每个单位时间开盘前调用一次。def m6_before_trading_start_bigquant_run(context, data):# 盘前处理,订阅行情等pass# @param(id="m6", name="handle_tick")# 交易引擎:tick数据处理函数,每个tick执行一次def m6_handle_tick_bigquant_run(context, tick):pass# @param(id="m6", name="handle_data")# 交易引擎:bar数据处理函数,每个时间单位执行一次def m6_handle_data_bigquant_run(context, data):#context = 回测引擎#context内部 会有一些功能~ 是通过 context.xxx 来使用的#data#调仓期的控制remainder = context.trading_day_index % 5#如果没到调仓期直接结束运行if remainder !=0:returnimport datetime#初始化buy_list = [] #买入列表sell_list = [] #卖出列表#==================== 数据准备today = data.current_dt.strftime('%Y-%m-%d') #读取当天日期time = data.current_dtaccount_pos = context.get_account_positions()holding_list = list({key: value for key, value in account_pos.items() if value.avail_qty > 0}.keys())holding_num = len(holding_list)#读取当日数据try:today_data = context.ranker_prediction.loc[today,:]today_data.reset_index(inplace=True)except:return#策略today_data=today_data[today_data['上市时间'] >= 365] #上市时间的过滤today_data=today_data[today_data['市盈率ttm'] >= 0] #财务数据过滤today_data=today_data[today_data['换手排名'] |