等级: 免费版
- 注册:
- 2021-7-16
- 曾用名:
|

楼主 |
发表于 2022-9-5 22:22
|
显示全部楼层
#print('def parameter():pass')
input_par('DateStart',20220801,20000101,20221231,1) #自动运行开启日期
input_par('DateEnd',20220931,20000101,20221231,1) #自动停止结束日期
input_par("Account",888888,1,999999,1) #模拟盘登录账户号码,判断:回测(退出=不转换主力合约) / 实盘(登录=转换主力合约)
pass
input_par('PELAsset',1000,100,1000,100) #Pel配置的初始化总金额/万
input_par('PEL',0,0,99,1) #控制pel策略库号码 1-99 0=全部 1-99 自动
input_par('DK',0,-1,1,1) #控制pel策略 1=只开多平多 -1=只开空平空 0=自动单项开多平多开空平空
input_par('GangGan',7,1,100,1) #控制pel策略 杠杆参数
input_par('BiLi',10,1,100,1) #控制pel策略 比例金额参数
input_par('LowHoldVol',5,1,9,1) #控制pel最低持仓量,判断交易品种活跃度/万
input_par('HighHoldVol',99,1,99,1) #控制pel最高持仓量,判断交易品种活跃度/万
pass
input_par('MaxAmount',10,1,100,1) #策略配置运行交易持仓最大金额/万
input_par('Amount',5,1,20,1) #策略配置运行交易每个品种持仓最大金额/万
input_par('LenAmount',3,1,20,1) #策略配置运行交易品种最大保证金/万/张
input_par('Win',10,1,10,1) #日内最大盈利%
input_par('Loss',1,1,10,1) #日内最大回撤%
补充内容 (2022-9-5 22:26):
if context.PEL == 0:
PEL1 = 1
PEL99 = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,\
22,23,24,25,26,27,28,29,30,\
31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,\
90,91,92,93,94,95,96,97,98,99,\
]
if context.PEL != 0:
PEL1 = [context.PEL]
PEL99 = [context.PEL]
#handle_bar_start1 = (datetime.datetime.now().strftime('%H%M%S'))
for index in PEL99: #每次循环合约池
handle_bar_end1 = (datetime.datetime.now().strftime('%H%M%S'))
start_end_time1 = int(handle_bar_end1) - int(handle_bar_start1)
handle_bar_start1 = (datetime.datetime.now().strftime('%H%M%S'))
#context.PEL0 =[]
context.PEL1 = (index)
#print(context.PEL99)
context.PEL0 = '%d,%d,%d,%d,%d,%d'%(context.PEL1,context.DK,context.GangGan,context.BiLi,context.LowHoldVol,context.HighHoldVol)
#DK(21,0,7,10,5,99):PEL=(1-99),多空=(-1,0,1),杠杆比例=(1-20),金额比例=(1-20),持仓LOW=(1-99),持仓HIGH=(1-99)
补充内容 (2022-9-5 22:30):
########################## PEl指令模板 ########################
'''
{}
CYC:BARSLAST(DATE<>REF(DATE,1))+1,NOAXIS,LINETHICK0;
手数:CEILING((7 * 100000)/(CLOSE * MULTIPLIER)); //等额手数 //下单手数
{}
平空:SELLSHORT(PK AND HOLDING<0,手数,THISCLOSE); //平空信号
开多:BUY(KD AND HOLDING<=0,手数,THISCLOSE); //开多信号
平多:SELL(PD AND HOLDING>0,手数,THISCLOSE); //平多信号
开空:BUYSHORT(KK AND HOLDING>=0,手数,THISCLOSE); //开空信号
{}
配资:REF(OPENASSET,CYC),NOAXIS,LINETHICK0;
高资:HHV(OPENASSET,CYC),NOAXIS,LINETHICK0;
低资:LLV(OPENASSET,CYC),NOAXIS,LINETHICK0;
持仓:HOLDING,,NOAXIS,LINETHICK0;
前资产:OPENASSET,NOAXIS,,LINETHICK0;
当前资产:ASSET,NOAXIS,,LINETHICK0;
当前持仓:HOLDING,,NOAXISLINETHICK0;
可用现金:(CASH(0)+CASH(1))/2,NOAXIS,LINETHICK0;
{}
补充内容 (2022-9-5 22:31):
if start_end_time1 > 10:
print(str(context.PEL0)+'/耗时:'+str(start_end_time1)+'秒:1-99/OK')
pass
context.NewDataTime = int(history_bars(context.run_info.base_book_id,1,context.Bar,'datetime',True,True))
context.NewDate = str(context.NewDataTime)[0:8]
#print(context.Date)
context.DateEndOn = int(context.NewDate) < context.DateStart or int(context.NewDate) > context.DateEnd
context.DateEndOff = int(context.NewDate) >= context.DateStart and int(context.NewDate) <= context.DateEnd
pass
补充内容 (2022-9-6 10:15):
def order_status(context,order):
pass
if 1 != 0:
if 1!= 0:
if 1!= 0:
if 1!= 0:
if 1!= 0:
if context.test==0:
#=====================================如果最近一次订单状态为未成交,则进行撤单操作
id_list = get_orders(order_book_id = "all", type = 1, account = "")
if not(get_orders(order_book_id = "all", type = 1, account = "") == None):
id_last = get_orders_id (id_list[-1].order_id)
#如果最近一次订单状态为未成交,则进行撤单操作。
if id_last.status =='submitted':
time.sleep(100)
cancel_order(id_last.order_id)
#print('如果最近一次订单状态为未成交,则进行撤单操作。')
pass
补充内容 (2022-9-6 10:17):
def order_status(context,order):
pass
if 1 != 0:
if 1!= 0:
if 1!= 0:
if 1!= 0:
if 1!= 0:
if context.test==0:
#=====================================如果最近一次订单状态为未成交,则进行撤单操作
id_list = get_orders(order_book_id = "all", type = 0, account = context.Account)
if not(id_list == None):
'''
for i in id_list:
write_logging(str(i.datetime))
'''
id_last_1 = get_orders_id (id_list[-1].order_id)
#如果最近一次订单状态为未成交,则进行撤单操作。
if id_last_1.status =='submitted':
pass
write_logging(str(id_last_1.datetime))
if 1 != 0:
#if int(id_last.datetime) < int(context.NewDataTime) - 30000:
time.sleep(30)
cancel_order(id_last_1.order_id)
#print('如果最近一次订单状态为未成交,则进行撤单操作。')
pass
补充内容 (2022-9-6 10:43):
自动撤单延时模块
time.sleep(30) 超过30秒没有成交自动撤单
补充内容 (2022-9-6 10:45):
context.test==0:交易模式,
context.test==1: 回测模式不进行撤单.回测会变慢.跳过检测
补充内容 (2022-9-6 10:49):
补充内容 (2022-9-5 22:26):
if context.PEL == 0:
自动循环1-99给pel指标交易策略对合约池所有品种计算,
if context.PEL != 0:
指定pel号码交易策略对合约池所有品种计算.
补充内容 (2022-9-6 10:50):
#print('def parameter():pass')
input_par('DateStart',20220801,20000101,20221231,1) #自动运行开启日期
input_par('DateEnd',20220931,20000101,20221231,1) #自动停止结束日期
增加日期计划交易控制
补充内容 (2022-9-6 10:53):
补充内容 (2022-9-5 22:30):
########################## PEl指令模板 ########################
对py输出pel计算结果分析评估和跟单
补充内容 (2022-9-6 10:55):
pel编写必须符合上面的格式和解释,否则py没办法评估这个pel交易策略的好和坏,无法跟单. |
|