金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 3993|回复: 7

收盘提前收线信号开平仓

[复制链接]

227

主题

881

帖子

881

积分

等级: 免费版

注册:
2022-4-2
曾用名:
发表于 2023-5-11 09:58 | 显示全部楼层 |阅读模式
策略里面加入这段代码,想要在收盘那根K线发出的信号提前开平仓。但是加入之后,回测的结果交易次数从七千多次变成了一千多次啥情况

if (m1<=dynainfo(207) and islastbar) or (time=190000 and not(islastbar)) then begin //注意:6.23 以后版本,图表上使用islastbar函数,请勿勾选仅刷最后一根k

//交易系统

if bpkcond then begin
   sellshort(holding<0,holding,thisclose);
   buy(holding=0 and buy_filcond,lots,thisclose);
   end

if spkcond then begin
   sell(holding>0,holding,thisclose);
   buyshort(holding=0 and sell_filcond,lots,thisclose);
   end
end

回复

使用道具 举报

0

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
gxx978
发表于 2023-5-11 10:05 | 显示全部楼层
那是因为你加了时间条件啊,限制了只在最后一根K线上面满足你的BPKCOND或SPKCOND才开平仓啊,之前是任何K线上都可能开平仓啊。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

227

主题

881

帖子

881

积分

等级: 免费版

注册:
2022-4-2
曾用名:
 楼主| 发表于 2023-5-11 10:11 | 显示全部楼层
技术010 发表于 2023-5-11 10:05
那是因为你加了时间条件啊,限制了只在最后一根K线上面满足你的BPKCOND或SPKCOND才开平仓啊,之前是任何K线 ...

请问那怎么写可以让策略在最后一根K线提前开平仓,其他时间正常开平仓呢
回复

使用道具 举报

0

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
gxx978
发表于 2023-5-11 10:38 | 显示全部楼层
参考如下代码:
IF (ISLASTBAR AND T0TOTIME(TIMETOT0(CLOSETIME(0))-60)<=DYNAINFO(207)) OR (TIME=CLOSETIME(0) AND NOT(ISLASTBAR)) OR BPKCOND THEN   BEGIN
        IF BPKCOND THEN BEGIN
      SELLSHORT(HOLDING<0,HOLDING,THISCLOSE);
      BUY(HOLDING=0 AND BUY_FILCOND,LOTS,THISCLOSE);
      END
    END
IF (ISLASTBAR AND T0TOTIME(TIMETOT0(CLOSETIME(0))-60)<=DYNAINFO(207)) OR (TIME=CLOSETIME(0) AND NOT(ISLASTBAR)) OR SPKCOND THEN   BEGIN
        IF SPKCOND THEN BEGIN
       SELL(HOLDING>0,HOLDING,THISCLOSE);
       BUYSHORT(HOLDING=0 AND SELL_FILCOND,LOTS,THISCLOSE);
       END
    END
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

227

主题

881

帖子

881

积分

等级: 免费版

注册:
2022-4-2
曾用名:
 楼主| 发表于 2023-5-12 15:40 | 显示全部楼层
技术010 发表于 2023-5-11 10:38
参考如下代码:
IF (ISLASTBAR AND T0TOTIME(TIMETOT0(CLOSETIME(0))-60)

为啥加了这段代码,信号没有在收盘前开平仓呢
m1:= t0totime(timetot0(closetime(0))-60); //收盘前1分钟
if (m1<=dynainfo(207) and islastbar) or (time=190000 and not(islastbar)) then begin //注意:6.23 以后版本,图表上使用islastbar函数,请勿勾选仅刷最后一根k
//
//交易系统
//cltime:=time>=185900  and time<=190000;
//
//if cltime then BEGIN
if bpkcond then begin
   sellshort(holding<0,holding,thisclose);
   buy(holding=0 and buy_filcond,lots,thisclose);
   end
   
if spkcond then begin
   sell(holding>0,holding,thisclose);
   buyshort(holding=0 and sell_filcond,lots,thisclose);
   end
end
回复

使用道具 举报

0

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
gxx978
发表于 2023-5-12 15:48 | 显示全部楼层
先看你图上最后一根K线上是否有稳定存在的信号,然后再看你的模式是否用的是固定间隔模式,只有固定间隔模式才可以在K线还没有结束前就触发信号。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

227

主题

881

帖子

881

积分

等级: 免费版

注册:
2022-4-2
曾用名:
 楼主| 发表于 2023-5-12 15:54 | 显示全部楼层
为啥加了这段代码,信号没有在收盘前开平仓呢
截图202305121540578374.png
截图202305121541386827.png
回复

使用道具 举报

0

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
gxx978
发表于 2023-5-12 15:58 | 显示全部楼层
截图看下你的图表程序化的设置,并上传下你今天的交易日志。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-24 23:14 , Processed in 0.137881 second(s), 25 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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