默认的股票都是按比例购买的,我想等额资金交易该怎么设置?


(Lingking) #1

比如只选3支股票,每支股票定投5万元,股票最长时间保留10天。
止盈5%,止损5%。


(达达) #2

您好,您的目的是实现资金分配、持仓天数控制、止盈止损
可以参考
https://community.bigquant.com/t/AI可视化模板的交易控制/8631

https://community.bigquant.com/t/【宽客学院】自定义买入卖出策略/1121

https://community.bigquant.com/t/技术面和基本面结合的传统股票策略(附代码)/2774


(Lingking) #3

File “”, line 205
_ positions = {e.symbol: p.cost_basis for e, p in context.portfolio.positions.items()}_
_ ^_
SyntaxError: invalid syntax

我直接拷贝过去,以下205行出现报错。我用粗体描出来了。
不知道是什么原因,怎么修改呢?

m12 = M.trade.v3(
instruments=m9.data,
options_data=m8.predictions,
start_date=‘2017-01-01’,
end_date=‘2018-04-01’,
handle_data=m12_handle_data_bigquant_run,
prepare=m12_prepare_bigquant_run,
initialize=m12_initialize_bigquant_run,
before_trading_start=#------------------------------------------止赢模块START--------------------------------------------
positions = {e.symbol: p.cost_basis for e, p in context.portfolio.positions.items()}
# 新建当日止赢股票列表是为了handle_data 策略逻辑部分不再对该股票进行判断
current_stopwin_stock = []
if len(positions) > 0:
for i in positions.keys():
stock_cost = positions[i]
stock_market_price = data.current(context.symbol(i), ‘price’)
# 赚10%就止赢
if (stock_market_price - stock_cost ) / stock_cost>= 0.1:
context.order_target_percent(context.symbol(i),0)
current_stopwin_stock.append(i)
print(‘日期:’,date,‘股票:’,i,‘出现止盈状况’)
#-------------------------------------------止赢模块END-----------------------------------
#------------------------------------------止损模块START--------------------------------------------
**

positions = {e.symbol: p.cost_basis for e, p in context.portfolio.positions.items()}

**
# 新建当日止损股票列表是为了handle_data 策略逻辑部分不再对该股票进行判断
current_stoploss_stock = []
if len(positions) > 0:
for i in positions.keys():
stock_cost = positions[i]
stock_market_price = data.current(context.symbol(i), ‘price’)
# 亏5%就止损
if (stock_market_price - stock_cost) / stock_cost <= -0.05:
context.order_target_percent(context.symbol(i),0)
current_stoploss_stock.append(i)
print(‘日期:’,date,‘股票:’,i,‘出现止损状况’)
#-------------------------------------------止损模块END---------------------------------------------,
volume_limit=0.025,
order_price_field_buy=‘open’,


(sensezeng) #4

虽然在这里TAB已经丢失。我估计对齐有问题。


(Lingking) #5

这么说吧,我是在可视化 trade/回测、模拟 下面的各个框子里粘贴这个代码。

应该放在 主函数框子,数据准备框子,初始化函数框子,盘前处理函数 的框里 哪一个里面?


(达达) #6

请参考此文的功能对照表,各个功能对应的文字颜色不同,根据您的功能需求,在需要修改的位置粘贴对应颜色的代码