你的位置:昆明app开发 > APP开发资讯 > APP开发公司 个东说念主量化得手之路——Ptrade 竣工政策 代码逐行泄漏

APP开发公司 个东说念主量化得手之路——Ptrade 竣工政策 代码逐行泄漏

发布日期:2024-10-09 08:22    点击次数:64

这个竣工的交往案例选拔的是Ptrade量化引擎中【盘中交往】板块下的handle_data函数

买入信号是 DIF、DEA均为正,macd金叉,

(日线和分钟级别的盘中交往-----用handle_data,

tick级别的盘中交往----用tick_data八成run_interval)

def initialize(context): g.hold_num = 100def before_trading_start(context, data): g.security_list = get_index_stocks('000300.SS') g.close_data_dict = {} history = get_history(100, frequency='1d', field=["close"], security_list=g.security_list, fq='dypre', include=False, is_dict=True) for stock in g.security_list: close_data = history[stock]['close'] g.close_data_dict[stock] = close_data g.every_value = context.portfolio.portfolio_value/g.hold_numdef handle_data(context, data): for security in g.security_list: close_data = g.close_data_dict[security] macdDIF_data, macdDEA_data, macd_data = get_MACD(close_data, 12, 26, 9) DIF = macdDIF_data[-1] DEA = macdDEA_data[-1] macd_current = macd_data[-1] macd_pre = macd_data[-2] current_price = data[security].price position = context.portfolio.positions # DIF、DEA均为正,macd金叉,买入信号参考 if position[security].amount == 0: if DIF > 0 and DEA > 0 and macd_pre < 0 and macd_current >= 0: if context.portfolio.cash < g.every_value*0.8: continue # 以市单价买入股票,日回测时即是开盘价 order_target_value(security, g.every_value) # 记载此次买入 log.info("Buying %s" % (security)) else: # DIF、DEA均为负,macd死叉,卖出信号参考 if DIF < 0 and DEA < 0 and macd_pre >= 0 and macd_current < 0: # 卖出扫数股票使这只股票的最终抓有量为0 order_target(security, 0) # 记载此次卖出 log.info("Selling %s" % (security))

第四行

g.security_list = get_index_stocks('000300.SS')

用来界说你的选股限制,本例中取沪深300股票

第六行

history = get_history(100, frequency='1d', field=["close"], security_list=g.security_list, fq='dypre', include=False, is_dict=True)

赢得K线数据

其中frequency:代表K线周期,凭据政策中需要的频率取舍不同参数,1分钟线(1m)、5分钟线(5m)、15分钟线(15m)、30分钟线(30m)、60分钟线(60m)、120分钟线(120m)、日线(1d)、周线(1w/weekly)、月线(mo/monthly)、季度线(1q/quarter)和年线(1y/yearly)频率的数据;选填参数,默许为'1d';入参类型:字符串str

(另外 如若需要赢得分时成交行情数据,昆明app开发不错替换为get_tick_direction)

第八行和13行

三区比:上期红球三区比为2:3:1,红二区走热,红三区走冷,最近10期红球三区比为19:23:18,红二区表现较热。本期预计三区红球平衡,推荐三区比2:2:2。

用for轮回赢得选股池中的价钱数据,并打算MACD值

for security in g.security_list: close_data = g.close_data_dict[security] macdDIF_data, macdDEA_data, macd_data = get_MACD(close_data, 12, 26, 9) DIF = macdDIF_data[-1] DEA = macdDEA_data[-1] macd_current = macd_data[-1] macd_pre = macd_data[-2]

赢顺应前价钱 current_price

赢顺应前的现款 position

之后便是最进军的交往信号

用if函数判断买入信号: DIF、DEA均为正,macd金叉

app开发

if position[security].amount == 0: if DIF > 0 and DEA > 0 and macd_pre < 0 and macd_current >= 0: if context.portfolio.cash < g.every_value*0.8: continue

用 order_target_value下单,并用log函数记载这笔交往

# 以市单价买入股票,日回测时即是开盘价 order_target_value(security, g.every_value) # 记载此次买入 log.info("Buying %s" % (security))

终末一段代码是卖出信号

DIF、DEA均为负,macd死叉

else: # if DIF < 0 and DEA < 0 and macd_pre >= 0 and macd_current < 0: # 卖出扫数股票使这只股票的最终抓有量为0 order_target(security, 0) # 记载此次卖出 log.info("Selling %s" % (security))

小白学量化:什么是PTRADE? 2024如何通畅量化实盘交往?

竣工的政策闭环就完成了:数据赢得、交往信号判断、下单交往、订单记载

由于篇幅有限,一些函数的更多使用才智莫得张开商议,

一又友们在使用历程中任何问题不错留言APP开发公司