金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 38|回复: 5

请问这个回测程序错在哪

[复制链接]

17

主题

54

帖子

54

积分

等级: 免费版

注册:
2023-9-8
曾用名:
发表于 2025-10-10 12:53 | 显示全部楼层 |阅读模式
INPUT:m(10,5,200,5),Q1(25,20,200,5),Q2(25,20,200,5);
VARIABLE: zz:=0;
VARIABLE: ss:=1;
VARIABLE: cc1:=0,cc2:=0;

ma10:ma(c,m);
//TMO:CLOSETIME(0)-4200;
//VALUEWHEN(TODAYBAR<=X,HHV(H,TODAYBAR));

T1:TODAYBAR();
T6:callstock('',vtopen,6,0) ;
tm1:=todaybar>=0  and time<=CLOSETIME(0)-4200;
//tm2:=time=190000;
tm2:=time>=CLOSETIME(0)-4200;
//tm2:=time=CLOSETIME(0);
c1:callstock('',vtclose,2,0);  
o1:callstock('',vtopen,2,0) ;
if time=141500  then cc1:=c;
if time=011500  then cc2:=c;
T7:CC1;
T8:cc2;
//tm2:=time>=013000;
//kd1:c>o and TODAYBAR<=1 ;
//kk1:c<o and TODAYBAR<=1  ;
T9:=time >141500 ;
T10:t7>t8;
T11:t7<t8;

kd1:c>o and TODAYBAR<=1  and T9 and t10;
kk1:c<o and TODAYBAR<=1  and T9 and t11;

KD:=t6>ma10 and kd1;          //开多条件
PD:= tm2;          //平多条件
KK:=t6<ma10 and kk1;          //开空条件
PK:= tm2;         //平空条件

if pK AND HOLDING<0 then BEGIN
SELLshort( 1,ss,MARKETr);
end

if pd AND HOLDING>0 then BEGIN
SELL( 1,ss,MARKETr);
end

if KD and HOLDING=0 then BEGIN
BUY( 1,ss,MARKETr);
end

if Kk and HOLDING=0 then BEGIN
BUYshort( 1,ss,MARKETr);
end


回测没有任何交易明细

回复

使用道具 举报

44

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2025-10-10 13:05 | 显示全部楼层
kd1:c>o and TODAYBAR<=1  and T9 and t10;
kk1:c<o and TODAYBAR<=1  and T9 and t11;

KD:t6>ma10 and kd1;          //开多条件


在图上看下这些个条件是否满足呢,如果不满足再去细分看是什么条件没有满足
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

17

主题

54

帖子

54

积分

等级: 免费版

注册:
2023-9-8
曾用名:
 楼主| 发表于 2025-10-10 20:56 | 显示全部楼层
我明白了,就是开盘如果是阳线,但在交易时间中间抽一个时间看他是否高于第一个阳线收盘价,如果高于则开,应当怎么编?
回复

使用道具 举报

17

主题

54

帖子

54

积分

等级: 免费版

注册:
2023-9-8
曾用名:
 楼主| 发表于 2025-10-10 21:12 | 显示全部楼层
我是这样编的,但是发现收盘前最后一根K上同一根K开平,怎么办?
VARIABLE: r1:=0,R2:=0;
if c>o and T1=1   then  r1:=1;

if c<o and T1=1   then  r2:=1;

kd1:r1  and T9 and t10;
kk1:r2 and T9 and t11;

KD:=t6>ma10 and kd1;          //开多条件
PD:= tm2;          //平多条件
KK:=t6<ma10 and kk1;          //开空条件
PK:= tm2;         //平空条件
if pK AND HOLDING<0 then BEGIN
SELLshort( 1,ss,MARKETr);
end

if pd AND HOLDING>0 then BEGIN
SELL( 1,ss,MARKETr);
end
if KD and HOLDING=0 then BEGIN
BUY( 1,ss,MARKETr);
end

if Kk and HOLDING=0 then BEGIN
BUYshort( 1,ss,MARKETr);
end
if time =190000 then r1=0;

if time =190000 then r2=0;

补充内容 (2025-10-10 21:22):
上面T1是这个,T1:TODAYBAR();
回复

使用道具 举报

17

主题

54

帖子

54

积分

等级: 免费版

注册:
2023-9-8
曾用名:
 楼主| 发表于 2025-10-10 21:33 | 显示全部楼层
后来加了下面这个还不行
r5:not(BARSTATUS=2);

补充内容 (2025-10-10 21:41):
用下面这个用来不要最后一根开仓也不行
r6:not(ISLASTBAR);

补充内容 (2025-10-10 22:08):
这样也不行
r7:enterbars>0 or enterbars=-1;
r8:exitbars>0 or exitbars=-1;
回复

使用道具 举报

44

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2025-10-11 09:09 | 显示全部楼层
if KD and HOLDING=0 then BEGIN
BUY(exitbars>0 or exitbars=-1,ss,MARKETr);
end

if Kk and HOLDING=0 then BEGIN
BUYshort( exitbars>0 or exitbars=-1,ss,MARKETr);
end
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-10-11 14:18 , Processed in 0.097796 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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