金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 1529|回复: 9

回测无信号

[复制链接]

3

主题

8

帖子

8

积分

Rank: 1

等级: 新手上路

注册:
2024-7-26
曾用名:
发表于 2024-7-29 19:43 | 显示全部楼层 |阅读模式
请问,我这个策略有什么问题,怎么在菜油加权1H上回测没信号

INPUT:N(4,1,5000,1),M(70,1,5000,1);
MID:MA(C,34);//求N个周期的收盘价均线,称为布林通道中轨
TMP2:=STD(C,34);//求M个周期内的收盘价的标准差
TOP:MID+2*TMP2;//布林通道上轨
BOTTOM:MID-2*TMP2;//布林通道下轨
S:=SAR(4,2,14);
S1:=ABS(S);

KD1:=EXITBARS>0 AND HOLDING=0 AND C>TOP AND C>O AND C>REF(HIGH,1);
//当根K线未平过单,无持仓,价格上穿上轨开多
KD2:=EXITBARS=0 AND HOLDING=0 AND C>TOP AND C>O AND C>REF(HIGH,1) AND C=HIGH;
//当根K线平过单,无持仓,价格再次创当根K线新高,开多
KK1:=EXITBARS>0 AND HOLDING=0 AND C<BOTTOM AND C<O AND C<REF(LOW,1);
//当根K线未平过单,无持仓,价格下穿下轨开空
KK2:=EXITBARS>0 AND HOLDING=0 AND C<BOTTOM AND C<O AND C<REF(LOW,1) AND C=LOW;
//当根K线平过单,无持仓,价格再次创当根K线新低,开空

PD:=HOLDING>0 AND OPENPROFIT<=-M;//多单浮亏>M,平多(止损)
PK:=HOLDING<0 AND OPENPROFIT<=-M;//空单浮亏>M,平空(止损)

PD1:=HOLDING>0 AND C-ENTERPRICE>=M AND C-ENTERPRICE<1.5*M AND OPENPROFIT<=0.1*M;
//多单最大浮盈>=1倍M且<1.5倍M时,且当前浮盈<=0.1倍M后,平多(保本)
PK1:=HOLDING<0 AND ENTERPRICE-C>=M AND ENTERPRICE-C<1.5*M AND OPENPROFIT<=0.1*M;
//空单最大浮盈>=1倍M且<1.5倍M时,且当前浮盈<=0.1倍M后,平空(保本)

PD2:=HOLDING>0 AND C-ENTERPRICE>=1.5*M AND C-ENTERPRICE<2.5*M AND (OPENPROFIT<=0.4*C-ENTERPRICE AND C<S1);
//多单最大浮盈>=1.5倍M<2.5M时,且当前浮盈<=0.4*A或C<S1时,平多
PD3:=HOLDING>0 AND C-ENTERPRICE>=2.5*M AND C-ENTERPRICE<3.5*M AND (OPENPROFIT<=0.5*C-ENTERPRICE AND C<S1);
//多单最大浮盈>=2.5倍M<3.5M时,且当前浮盈<=0.5*A或C<S1时,平多
PD4:=HOLDING>0 AND C-ENTERPRICE>=3.5*M AND (OPENPROFIT<=0.6*C-ENTERPRICE AND C<S1);
//多单最大浮盈>=3.5倍M时,且当前浮盈<=0.6*A或C<S1时,平多
PK2:=HOLDING<0 AND ENTERPRICE-C>=1.5*M AND ENTERPRICE-C<2.5*M AND (OPENPROFIT<=0.4*ENTERPRICE-C AND C>S1);
//空单最大浮盈>=1.5倍M<2.5M时,且当前浮盈<=0.4*B或C>S1时,平空
PK3:=HOLDING<0 AND ENTERPRICE-C>=2.5*M AND ENTERPRICE-C<3.5*M AND (OPENPROFIT<=0.5*ENTERPRICE-C AND C>S1);
//空单最大浮盈>=1.5倍M<2.5M时,且当前浮盈<=0.5*B或C>S1时,平空
PK4:=HOLDING<0 AND ENTERPRICE-C>=3.5*M AND (OPENPROFIT<=0.6*ENTERPRICE-C AND C>S1);
//空单最大浮盈>=3.5倍M时,且当前浮盈<=0.6*B或C>S1时,平空

SELLSHORT(PK,M,MARKETR);
SELLSHORT(PK1,M,MARKETR);
SELLSHORT(PK2,M,MARKETR);
SELLSHORT(PK3,M,MARKETR);
SELLSHORT(PK4,M,MARKETR);            //平空信号
BUY(KD1,M,MARKETR);
BUY(KD2,M,MARKETR);                  //开多信号
SELL(PD,M,MARKETR);
SELL(PD1,M,MARKETR);  
SELL(PD2,M,MARKETR);
SELL(PD3,M,MARKETR);
SELL(PD4,M,MARKETR);                 //平多信号
BUYSHORT(KK1,M,MARKETR);  
BUYSHORT(KK2,M,MARKETR);             //开空信号

回复

使用道具 举报

0

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
gxx978
发表于 2024-7-30 09:01 | 显示全部楼层
没有信号,那肯定是不满足开平仓条件。你的KD1、KD2和KK1、KK2条件中有exitbars的条件,在前面没有信号的时候,EXITBARS返回的值是-1,所以都不满足你这些开仓条件啊。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

3

主题

8

帖子

8

积分

Rank: 1

等级: 新手上路

注册:
2024-7-26
曾用名:
 楼主| 发表于 2024-7-30 09:08 | 显示全部楼层
那如何限定当根K线未平过仓呢
回复

使用道具 举报

0

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
gxx978
发表于 2024-7-30 09:15 | 显示全部楼层
你平仓的语句是用的marketr本周期指令,那只要在开仓语句中加上exitbars<>0就表示当根K线上没有平仓过了。而且你的平仓语句都要写在开仓语句前面。如下:
INPUT:N(4,1,5000,1),M(70,1,5000,1);
MID:MA(C,34);//求N个周期的收盘价均线,称为布林通道中轨
TMP2:=STD(C,34);//求M个周期内的收盘价的标准差
TOP:MID+2*TMP2;//布林通道上轨
BOTTOM:MID-2*TMP2;//布林通道下轨
S:=SAR(4,2,14);
S1:=ABS(S);

KD1:=HOLDING=0 AND C>TOP AND C>O AND C>REF(HIGH,1);
//当根K线未平过单,无持仓,价格上穿上轨开多
KD2:=HOLDING=0 AND C>TOP AND C>O AND C>REF(HIGH,1) AND C=HIGH;
//当根K线平过单,无持仓,价格再次创当根K线新高,开多
KK1:=HOLDING=0 AND C<BOTTOM AND C<O AND C<REF(LOW,1);
//当根K线未平过单,无持仓,价格下穿下轨开空
KK2:=HOLDING=0 AND C<BOTTOM AND C<O AND C<REF(LOW,1) AND C=LOW;
//当根K线平过单,无持仓,价格再次创当根K线新低,开空

PD:=HOLDING>0 AND OPENPROFIT<=-M;//多单浮亏>M,平多(止损)
PK:=HOLDING<0 AND OPENPROFIT<=-M;//空单浮亏>M,平空(止损)

PD1:=HOLDING>0 AND C-ENTERPRICE>=M AND C-ENTERPRICE<1.5*M AND OPENPROFIT<=0.1*M;
//多单最大浮盈>=1倍M且<1.5倍M时,且当前浮盈<=0.1倍M后,平多(保本)
PK1:=HOLDING<0 AND ENTERPRICE-C>=M AND ENTERPRICE-C<1.5*M AND OPENPROFIT<=0.1*M;
//空单最大浮盈>=1倍M且<1.5倍M时,且当前浮盈<=0.1倍M后,平空(保本)

PD2:=HOLDING>0 AND C-ENTERPRICE>=1.5*M AND C-ENTERPRICE<2.5*M AND (OPENPROFIT<=0.4*C-ENTERPRICE AND C<S1);
//多单最大浮盈>=1.5倍M<2.5M时,且当前浮盈<=0.4*A或C<S1时,平多
PD3:=HOLDING>0 AND C-ENTERPRICE>=2.5*M AND C-ENTERPRICE<3.5*M AND (OPENPROFIT<=0.5*C-ENTERPRICE AND C<S1);
//多单最大浮盈>=2.5倍M<3.5M时,且当前浮盈<=0.5*A或C<S1时,平多
PD4:=HOLDING>0 AND C-ENTERPRICE>=3.5*M AND (OPENPROFIT<=0.6*C-ENTERPRICE AND C<S1);
//多单最大浮盈>=3.5倍M时,且当前浮盈<=0.6*A或C<S1时,平多
PK2:=HOLDING<0 AND ENTERPRICE-C>=1.5*M AND ENTERPRICE-C<2.5*M AND (OPENPROFIT<=0.4*ENTERPRICE-C AND C>S1);
//空单最大浮盈>=1.5倍M<2.5M时,且当前浮盈<=0.4*B或C>S1时,平空
PK3:=HOLDING<0 AND ENTERPRICE-C>=2.5*M AND ENTERPRICE-C<3.5*M AND (OPENPROFIT<=0.5*ENTERPRICE-C AND C>S1);
//空单最大浮盈>=1.5倍M<2.5M时,且当前浮盈<=0.5*B或C>S1时,平空
PK4:=HOLDING<0 AND ENTERPRICE-C>=3.5*M AND (OPENPROFIT<=0.6*ENTERPRICE-C AND C>S1);
//空单最大浮盈>=3.5倍M时,且当前浮盈<=0.6*B或C>S1时,平空

SELLSHORT(PK,M,MARKETR);
SELLSHORT(PK1,M,MARKETR);
SELLSHORT(PK2,M,MARKETR);
SELLSHORT(PK3,M,MARKETR);
SELLSHORT(PK4,M,MARKETR);            //平空信号
SELL(PD,M,MARKETR);
SELL(PD1,M,MARKETR);  
SELL(PD2,M,MARKETR);
SELL(PD3,M,MARKETR);
SELL(PD4,M,MARKETR);                 //平多信号
BUY(KD1 AND EXITBARS<>0,M,MARKETR);
BUY(KD2 AND EXITBARS<>0,M,MARKETR);                  //开多信号

BUYSHORT(KK1 AND EXITBARS<>0,M,MARKETR);  
BUYSHORT(KK2 AND EXITBARS<>0,M,MARKETR);             //开空信号
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

3

主题

8

帖子

8

积分

Rank: 1

等级: 新手上路

注册:
2024-7-26
曾用名:
 楼主| 发表于 2024-7-30 09:51 | 显示全部楼层
请问,开多后的最大盈利是这样写吗“开仓后最高价-ENTERPRICE”,开仓后最高价怎么表达
回复

使用道具 举报

0

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
gxx978
发表于 2024-7-30 09:54 | 显示全部楼层
hhv(h,enterbars);注意enterbars的返回值和报单指令也是有关系的,使用本周期指令,在开仓当根K线上,返回值是0.
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

3

主题

8

帖子

8

积分

Rank: 1

等级: 新手上路

注册:
2024-7-26
曾用名:
 楼主| 发表于 2024-7-30 12:05 | 显示全部楼层
请问,金字塔一小时K线的划分是10:00-11:00、11:00-11:30,其他软件是10:00-11:15、11:15-14:15,怎么更改
回复

使用道具 举报

0

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
gxx978
发表于 2024-7-30 12:59 | 显示全部楼层
那可以直接使用交易时间划分,这样每根K线都是足量的交易时间的。点击工具--选项,如下:

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

使用道具 举报

3

主题

8

帖子

8

积分

Rank: 1

等级: 新手上路

注册:
2024-7-26
曾用名:
 楼主| 发表于 2024-7-30 16:10 | 显示全部楼层
请问,最新的这次平空并未达到我的PK条件,怎么执行了的
INPUT:N(4,1,5000,1),M(70,1,5000,1);
MID:MA(C,34);//求N个周期的收盘价均线,称为布林通道中轨
TMP2:=STD(C,34);//求M个周期内的收盘价的标准差
TOP:MID+2*TMP2;//布林通道上轨
BOTTOM:MID-2*TMP2;//布林通道下轨
S:=SAR(4,2,14);
S1:=ABS(S);

KD1:=EXITBARS<>0 AND HOLDING=0 AND C>TOP AND C>O AND C>REF(HIGH,1);
//当根K线未平过单,无持仓,价格上穿上轨开多
KD2:=EXITBARS=0 AND HOLDING=0 AND C>TOP AND C>O AND C>REF(HIGH,1) AND C=HIGH;
//当根K线平过单,无持仓,价格再次创当根K线新高,开多
KK1:=EXITBARS<>0 AND HOLDING=0 AND C<BOTTOM AND C<O AND C<REF(LOW,1);
//当根K线未平过单,无持仓,价格下穿下轨开空
KK2:=EXITBARS=0 AND HOLDING=0 AND C<BOTTOM AND C<O AND C<REF(LOW,1) AND C=LOW;
//当根K线平过单,无持仓,价格再次创当根K线新低,开空

PD:=HOLDING>0 AND OPENPROFIT<=-M;//多单浮亏>M,平多(止损)
PK:=HOLDING<0 AND OPENPROFIT<=-M;//空单浮亏>M,平空(止损)

PD1:=HOLDING>0 AND HHV(H,ENTERBARS)-ENTERPRICE>=M AND HHV(H,ENTERBARS)-ENTERPRICE<1.5*M AND OPENPROFIT<=0.1*M;
//多单最大盈利>=1倍M且<1.5倍M时,且当前浮盈<=0.1倍M后,平多(保本)
PK1:=HOLDING<0 AND ENTERPRICE-LLV(L,ENTERBARS)>=M AND ENTERPRICE-LLV(L,ENTERBARS)<1.5*M AND OPENPROFIT<=0.1*M;
//空单最大盈利>=1倍M且<1.5倍M时,且当前浮盈<=0.1倍M后,平空(保本)

PD2:=HOLDING>0 AND HHV(H,ENTERBARS)-ENTERPRICE>=1.5*M AND HHV(H,ENTERBARS)-ENTERPRICE<2.5*M AND (OPENPROFIT<=0.4*HHV(H,ENTERBARS)-ENTERPRICE OR C<S1);
//多单最大盈利>=1.5倍M<2.5M时,且当前浮盈<=0.4*A或C<S1时,平多
PD3:=HOLDING>0 AND HHV(H,ENTERBARS)-ENTERPRICE>=2.5*M AND HHV(H,ENTERBARS)-ENTERPRICE<3.5*M AND (OPENPROFIT<=0.5*HHV(H,ENTERBARS)-ENTERPRICE OR C<S1);
//多单最大盈利>=2.5倍M<3.5M时,且当前浮盈<=0.5*A或C<S1时,平多
PD4:=HOLDING>0 AND HHV(H,ENTERBARS)-ENTERPRICE>=3.5*M AND (OPENPROFIT<=0.6*HHV(H,ENTERBARS)-ENTERPRICE OR C<S1);
//多单最大盈利>=3.5倍M时,且当前浮盈<=0.6*A或C<S1时,平多
PK2:=HOLDING<0 AND ENTERPRICE-LLV(L,ENTERBARS)>=1.5*M AND ENTERPRICE-LLV(L,ENTERBARS)<2.5*M AND (OPENPROFIT<=0.4*ENTERPRICE-LLV(L,ENTERBARS) OR C>S1);
//空单最大盈利>=1.5倍M<2.5M时,且当前浮盈<=0.4*B或C>S1时,平空
PK3:=HOLDING<0 AND ENTERPRICE-LLV(L,ENTERBARS)>=2.5*M AND ENTERPRICE-LLV(L,ENTERBARS)<3.5*M AND (OPENPROFIT<=0.5*ENTERPRICE-LLV(L,ENTERBARS) OR C>S1);
//空单最大盈利>=1.5倍M<2.5M时,且当前浮盈<=0.5*B或C>S1时,平空
PK4:=HOLDING<0 AND ENTERPRICE-LLV(L,ENTERBARS)>=3.5*M AND (OPENPROFIT<=0.6*ENTERPRICE-LLV(L,ENTERBARS) OR C>S1);
//空单最大盈利>=3.5倍M时,且当前浮盈<=0.6*B或C>S1时,平空

SELLSHORT(PK,N,MARKETR);
SELLSHORT(PK1,N,MARKETR);
SELLSHORT(PK2,N,MARKETR);
SELLSHORT(PK3,N,MARKETR);
SELLSHORT(PK4,N,MARKETR);            //平空信号
SELL(PD,N,MARKETR);
SELL(PD1,N,MARKETR);  
SELL(PD2,N,MARKETR);
SELL(PD3,N,MARKETR);
SELL(PD4,N,MARKETR);                 //平多信号
BUYSHORT(KK1,N,MARKETR);  
BUYSHORT(KK2,N,MARKETR);             //开空信号
BUY(KD1,N,MARKETR);
BUY(KD2,N,MARKETR);                  //开多信号

持仓:holding,linethick0;
资产:asset,noaxis;
可用现金:cash(0),linethick0;

截图202407301608438091.png
回复

使用道具 举报

0

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
gxx978
发表于 2024-7-30 16:27 | 显示全部楼层
就是满足了你的PK平空条件啊,浮动亏损为亏了143多啊。开仓价是8522,是按收盘价8525来算浮动盈亏的,亏了3个点,再加上手续费,那就是浮动盈亏就是-143.98。你开这些你代码输出调试下才能知道啊,有信号肯定是满足了条件的。
截图202407301627161019.png
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-19 04:59 , Processed in 0.117067 second(s), 25 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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