金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 2414|回复: 3

是否可以在上面策略中加入每个小节在收盘前5分钟自动平仓函数?

[复制链接]

4633

主题

4723

帖子

4748

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2023-8-31 13:08 | 显示全部楼层 |阅读模式
请教:是否可以在上面策略中加入每个小节在收盘前5分钟自动平仓函数?如果可以请在加入的位置完整的发过来。
RSV:=(CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))*100;
K:=SMA(RSV,3,1);
D:=SMA(K,3,1);
J:=3*K-2*D;

手数:=1;
//交易条件

开多平空条件:=CROSS(K,D);//开多平空条件
开空平多条件:=CROSS(D,K);//开空平多条件

//交易系统
平空:SELLSHORT(开多平空条件,手数,MARKET);
平多:SELL(开空平多条件,手数,MARKET);
开多:BUY(开多平空条件,手数,MARKET);
开空:BUYSHORT(开空平多条件,手数,MARKET);

当前持仓:HOLDING,COLORGRAY,LINETHICK0;
当前资产:ASSET,NOAXIS,COLORGRAY;


金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-8-31 13:20 | 显示全部楼层
这段代码直接抄上去就行了。参数N是提前的分钟数。
[PEL] 复制代码
INPUT:N(3,1,200,1);//N是提前的分钟数
MARK:=0;//用于记录当前是否满足某个收盘K结束前N分钟的变量
 
FOR I=0 TO 3 DO  //循环遍历每个收盘时间来进行判断。这里可以调整I起始位置 来控制需要处理的收盘节点。
BEGIN
abb:=timetot0(CLOSETIME(I))-time0,NODRAW;//当前K线时间距离收盘K线结束倒计时,在一个K上对应一个固定值
abb3:=timetot0(CLOSETIME(I))-timetot0(dynainfo(207)),NODRAW;//当前时间(当前的北京时间)距离收盘K时间 ,   在最新K上会一直变动。因为这个返回的是具体秒数
IF         (abb<N*60 and abb>=0 and (not(ISLASTBAR))) or (ISLASTBAR and  abb3>=0 and abb3<N*60) THEN MARK:=1;
END
 
 
if MARK  then //兼顾实际交易时候的信号和历史回测信号
begin
sell(holding>0,holding,market);
sellshort(holding<0,holding,market);        
end
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

4

主题

10

帖子

10

积分

Rank: 1

等级: 新手上路

注册:
2023-6-13
曾用名:
发表于 2023-9-5 11:43 | 显示全部楼层
技术009 发表于 2023-8-31 13:20
这段代码直接抄上去就行了。参数N是提前的分钟数。
[mw_shl_code=pel,true]INPUT:N(3,1,200,1);//N是提前 ...

金字塔工程师你好,我把你这段代码粘贴到策略中去了,测试结果并不是收盘前5分钟平仓。而很多都是收盘前0秒平仓,也许是放在策略位置不对或者其他原因。请你把这段代码放在上面策略中发过来我在测试看看。
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-9-5 13:13 | 显示全部楼层
代码逻辑是收盘前N分钟 你要是在收盘前N分钟内开仓,它自然也会触发平仓了。代码仅适用于小周期,

另外默认参数是三分钟,也不是五分钟。

[PEL] 复制代码
RSV:=(CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))*100;
K:=SMA(RSV,3,1);
D:=SMA(K,3,1);
J:=3*K-2*D;

手数:=1;
//交易条件

开多平空条件:=CROSS(K,D);//开多平空条件
开空平多条件:=CROSS(D,K);//开空平多条件





INPUT:N(5,1,200,1);//N是提前的分钟数

MARK:=0;//用于记录当前是否满足某个收盘K结束前N分钟的变量
  
FOR I=0 TO 3 DO  //循环遍历每个收盘时间来进行判断。这里可以调整I起始位置 来控制需要处理的收盘节点。
BEGIN
abb:=timetot0(CLOSETIME(I))-time0,NODRAW;//当前K线时间距离收盘K线结束倒计时,在一个K上对应一个固定值
abb3:=timetot0(CLOSETIME(I))-timetot0(dynainfo(207)),NODRAW;//当前时间(当前的北京时间)距离收盘K时间 ,   在最新K上会一直变动。因为这个返回的是具体秒数
IF         (abb<N*60 and abb>=0 and (not(ISLASTBAR))) or (ISLASTBAR and  abb3>=0 and abb3<N*60) THEN MARK:=1;
END
  
  
if MARK  then //兼顾实际交易时候的信号和历史回测信号
begin
收盘平多:sell(holding>0,holding,market);
收盘平空:sellshort(holding<0,holding,market);        
end

//交易系统
平空:SELLSHORT(开多平空条件,手数,MARKET);
平多:SELL(开空平多条件,手数,MARKET);
开多:BUY(开多平空条件 and not(MARK),手数,MARKET);
开空:BUYSHORT(开空平多条件 and not(MARK),手数,MARKET);



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号? 微信登录

x
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 微信登录

本版积分规则

手机版|小黑屋|上海金之塔信息技术有限公司 ( 沪ICP备13035422号 )

GMT+8, 2025-7-29 14:45 , Processed in 0.106451 second(s), 23 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表