金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 668|回复: 5

添加了一个条件之后没有信号了

[复制链接]

6

主题

45

帖子

55

积分

Rank: 2

等级: 标准版

注册:
2022-6-27
曾用名:
发表于 2025-4-22 13:49 | 显示全部楼层 |阅读模式
请帮我看下,本来是有买卖信号的,我就添加了一个条件,引用大周期的diff大于0才买,就没有成交信号了,这是哪里出了问题?谢谢!
ss:=1;//开仓手数
duokong:=1;//多空开关,1多,2空
zuida:=1;//最大开仓次数
ds:=1000;//10跳多头止损
ks:=1000;//10跳空头止损
dy:=30;//10跳多头止赢
ky:=30;//10跳空头止赢
jun5:MA(CLOSE,5),COLORWHITE;
jun13:MA(CLOSE,13),COLORblue;
jun55:MA(CLOSE,55),COLORred;
N:=0;
COND := LLV(L,5) < Ref(LLV(L,4),1);
JBDDYXA := Ref(COND,1);  // 滞后1根K线标记条件成立
JBDDYXB := JBDDYXA=0 AND Ref(JBDDYXA,1)=1;  // 检测信号从1变0
JBDDYXC:=IF(JBDDYXB=1 AND Ref(JBDDYXB,1)=0,-1,0);
COND_H := HHV(H,5) > Ref(HHV(H,4),1);
JBGDYXA := Ref(COND_H,1);
JBGDYXB := JBGDYXA=0 AND Ref(JBGDYXA,1)=1;
JBGDYXC:=IF(JBGDYXB=1 AND Ref(JBGDYXB,1)=0,1,0);
QKPD:=IF(L>Ref(H,1),1,IF(H<Ref(L,1),-1,0));
JQTG:=BarsLast(JBGDYXC=1);
JQDD:=BarsLast(JBDDYXC=-1);
XZZQ:=LowRange(L);
DZZQ:=TopRange(H);
DBLAA:=IF(JBDDYXC=-1 AND Ref(JQTG,1)>Ref(JQDD,1) AND LLV(L,JQTG+1)<Ref(LLV(L,JQTG+1),1),-1,0);
DBLAB:=IF(JBDDYXC=-1 AND Ref(JQTG,1)<=Ref(JQDD,1) AND (JQTG>=4 OR LLV(QKPD,JQTG)=-1 OR LLV(L,JQDD+2)<Ref(LLV(L,JQDD+1),1)),-1,0);
DBLS:=IF((DBLAA=-1 OR DBLAB=-1) AND L<Ref(H,JQTG+1),-1,0);
DTIME:=11;
A:=H=HHV(H,DTIME*5) AND HHV(H,DTIME*5)>Ref(HHV(H,DTIME*5),1);
B:=L=LLV(L,DTIME*5) AND LLV(L,DTIME*5)<Ref(LLV(L,DTIME*5),1);
//CC1:DrawLine(A,H,B,L,0),LINETHICK2,COLOR3300FF;
//CC2:DrawLine(B,L,A,H,0),LINETHICK2,COLOR3300FF;
YP:=IF((JQDD<4 AND HHV(QKPD,JQDD)=1) OR Ref(DBLS,JQDD)=0,1,0);
PD:=IF(JBGDYXC=1 AND Ref(JQDD,1)<=Ref(JQTG,1) AND YP=1 AND DZZQ>Ref(XZZQ,JQDD+1) AND DZZQ>Ref(XZZQ,JQDD) AND DZZQ>Ref(DZZQ,JQTG),1,0);
GBLA:=IF(JBGDYXC=1 AND Ref(JQDD,1)>Ref(JQTG,1) AND HHV(H,JQDD+1)>Ref(HHV(H,JQDD+1),1),1,0);
GBLB:=IF(JBGDYXC=1 AND Ref(JQDD,1)<=Ref(JQTG,1) AND Ref(DBLS,JQDD)=-1 AND (JQDD>=4 OR HHV(QKPD,JQDD)=1),1,0);
GBL:=IF((GBLA=1 OR GBLB=1 OR PD=1) AND H>Ref(L,JQDD+1),1,0);
YPA:=IF((JQTG<4 AND HHV(QKPD,JQTG)!=1) OR Ref(GBL,JQTG)=0,1,0);
PDA:=IF(JBDDYXC=-1 AND Ref(JQTG,1)<=Ref(JQDD,1) AND YPA=1 AND XZZQ>Ref(DZZQ,JQTG+1) AND XZZQ>Ref(DZZQ,JQTG) AND XZZQ>Ref(XZZQ,JQDD),-1,0);
DBLA:=IF(JBDDYXC=-1 AND Ref(JQTG,1)>Ref(JQDD,1) AND LLV(L,JQTG+1)<Ref(LLV(L,JQTG+1),1),-1,0);
DBLB:=IF(JBDDYXC=-1 AND Ref(JQTG,1)<=Ref(JQDD,1) AND (JQTG>=4 OR LLV(QKPD,JQTG)=-1 OR PDA=-1),-1,0);
DBL:=IF((DBLA=-1 OR DBLB=-1) AND L<Ref(H,JQTG+1),-1,0);
JQTGA:=BarsLast(GBL=1);
JQDDA:=BarsLast(DBL=-1);
YPX:=IF((JQDDA<4 AND HHV(QKPD,JQDDA)=1) OR Ref(DBL,JQDDA)=0,1,0);
PDX:=IF(JBGDYXC=1 AND Ref(JQDDA,1)<=Ref(JQTGA,1) AND YPX=1 AND DZZQ>Ref(XZZQ,JQDDA+1) AND DZZQ>Ref(XZZQ,JQDDA) AND DZZQ>Ref(DZZQ,JQTGA),1,0);
GBLXA:=IF(JBGDYXC=1 AND Ref(JQDDA,1)>Ref(JQTGA,1) AND HHV(H,JQDDA+1)>Ref(HHV(H,JQDDA+1),1),1,0);
GBLXB:=IF(JBGDYXC=1 AND Ref(JQDDA,1)<=Ref(JQTGA,1) AND Ref(DBL,JQDDA)=-1 AND (JQDDA>=4 OR HHV(QKPD,JQDDA)=1),1,0);
GBLX:=IF((GBLXA=1 OR GBLXB=1 OR PDX=1) AND H>Ref(L,JQDDA+1),1,0);
YPXA:=IF((JQTGA<4 AND HHV(QKPD,JQTGA)!=1) OR Ref(GBLXA,JQTGA)=0,1,0);
PDXA:=IF(JBDDYXC=-1 AND Ref(JQTGA,1)<=Ref(JQDDA,1) AND YPXA=1 AND XZZQ>Ref(DZZQ,JQTGA+1) AND XZZQ>Ref(DZZQ,JQTGA) AND XZZQ>Ref(XZZQ,JQDDA),-1,0);
DBLXA:=IF(JBDDYXC=-1 AND Ref(JQTGA,1)>Ref(JQDDA,1) AND LLV(L,JQTGA+1)<Ref(LLV(L,JQTGA+1),1),-1,0);
DBLXB:=IF(JBDDYXC=-1 AND Ref(JQTGA,1)<=Ref(JQDDA,1) AND (JQTGA>=4 OR LLV(QKPD,JQTGA)=-1 OR PDXA=-1),-1,0);
DBLX:=IF((DBLXA=-1 OR DBLXB=-1) AND L<Ref(H,JQTGA+1),-1,0);
JQTGYA:=BarsLast(GBLX=1);
JQDDYA:=BarsLast(DBLX=-1);
YPYX:=IF((JQDDYA<4 AND HHV(QKPD,JQDDYA)=1) OR Ref(DBLX,JQDDYA)=0,1,0);
PDYX:=IF(JBGDYXC=1 AND Ref(JQDDYA,1)<=Ref(JQTGYA,1) AND YPYX=1 AND DZZQ>Ref(XZZQ,JQDDYA+1) AND DZZQ>Ref(XZZQ,JQDDYA) AND DZZQ>Ref(DZZQ,JQTGYA),1,0);
GBLYXA:=IF(JBGDYXC=1 AND Ref(JQDDYA,1)>Ref(JQTGYA,1) AND HHV(H,JQDDYA+1)>Ref(HHV(H,JQDDYA+1),1),1,0);
GBLYXB:=IF(JBGDYXC=1 AND Ref(JQDDYA,1)<=Ref(JQTGYA,1) AND Ref(DBLX,JQDDYA)=-1 AND (JQDDYA>=4 OR HHV(QKPD,JQDDYA)=1),1,0);
GBLYX:=IF((GBLYXA=1 OR GBLYXB=1 OR PDYX=1) AND H>Ref(L,JQDDYA+1),1,0);
YPYXA:=IF((JQTGYA<4 AND HHV(QKPD,JQTGYA)=1) OR Ref(GBLYXA,JQTGYA)=0,1,0);
PDYXA:=IF(JBDDYXC=-1 AND Ref(JQTGYA,1)<=Ref(JQDDYA,1) AND YPYXA=1 AND XZZQ>Ref(DZZQ,JQTGYA+1) AND XZZQ>Ref(DZZQ,JQTGYA) AND XZZQ>Ref(XZZQ,JQDDYA),-1,0);
DBLYXA:=IF(JBDDYXC=-1 AND Ref(JQTGYA,1)>Ref(JQDDYA,1) AND LLV(L,JQTGYA+1)<Ref(LLV(L,JQTGYA+1),1),-1,0);
DBLYXB:=IF(JBDDYXC=-1 AND Ref(JQTGYA,1)<=Ref(JQDDYA,1) AND (JQTGYA>=4 OR LLV(QKPD,JQTGYA)=-1 OR PDYXA=-1),-1,0);
DBLYX:=IF((DBLYXA=-1 OR DBLYXB=-1) AND L<Ref(H,JQTGYA+1),-1,0);
AAAD:=IF(GBLYX=1 AND DBLYX=-1 AND H>Ref(H,Ref(JQTGYA,1)+2),1,IF(GBLYX=1 AND DBLYX=-1 AND L<Ref(L,Ref(JQDDYA,1)+2),-1,0));
JDBL:=IF(AAAD=0,GBLYX+DBLYX,AAAD);
JBJD:IF(JDBL=-1,L*0.99,IF(JDBL=1,H*1.01,DRAWNULL)),CIRCLEDOT,COLORMAGENTA;
DRAWTEXT(JDBL=1,H*1.001,'卖'),COLORGREEN;
DRAWTEXT(JDBL=-1,L*0.999,'买'),COLORRED;
//设置涨跌停价
交易时间1:=((TIME>=010000 AND TIME<=045900));
交易时间2:=((TIME>=130000 AND TIME<=185900));
交易时间:=(交易时间1 OR 交易时间2);
收盘时间:=((TIME>=145500 AND TIME<=150000)OR(TIME>=225500 AND TIME<=230000));
开盘时间:=((TIME>=090000 AND TIME<=113000)OR(TIME>=130000 AND TIME<=145000)OR(TIME>=210000 AND TIME<=225000));
//macd
DIFF:= EMA(CLOSE,5) - EMA(CLOSE,34);
DEA:= EMA(DIFF,5);
MACD:=2*(DIFF-DEA),COLORSTICK;
死叉:=diff<dea;
金叉:=dea<diff;
DIF15M: = STKINDI('','MACD.DIF',0,4);

//C1:DrawLine(JDBL=-1,JBJD,JDBL=1,JBJD,0),DOTLINE,COLORFF6600;
//C2:DrawLine(JDBL=1,JBJD,JDBL=-1,JBJD,0),DOTLINE,COLORFF6600;
if  JDBL=-1  and 开盘时间 and DIF15M>0  then begin
        if holding<0 then BEGIN
                SELLSHORT(1,abs(holding),market);
        End
    if holding=0 then begin       
    开多:buy(1,ss,market);
    end
    end

if  JDBL=1  and 开盘时间 and DIF15M<0  then begin
        if holding>0 then BEGIN
                sell(1,holding,market);
        end       
    if holding=0 then begin                 
    开空:BUYSHORT(1,ss,market);
    end
    end

if c-avgenterprice>=dy*mindiff and holding>0 then  begin
    多赢:sell(1,holding,marketr);       
    end

//空头止损止盈
if avgenterprice-c>=ky*mindiff and holding<0 then begin
        空赢:sellshort(1,holding,marketr);       
        kci:=0;       
        end
       
IF 收盘时间 THEN
BEGIN
        清空:SELLSHORT(holding<0,ABS(HOLDING),MARKET);//平空
        清多:SELL(holding>0,ABS(HOLDING),MARKET); //平多
END

回复

使用道具 举报

44

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2025-4-22 13:51 | 显示全部楼层
引用大周期的diff大于0才买

输出看下你引用的大周期的diff呢,看下有没有值,如果没有数值很大可能大周期缺少数据所以引用过来没有
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

6

主题

45

帖子

55

积分

Rank: 2

等级: 标准版

注册:
2022-6-27
曾用名:
 楼主| 发表于 2025-4-22 13:54 | 显示全部楼层
不会。。。我是编程白上白,你能帮我修正好吗。。。
回复

使用道具 举报

44

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2025-4-22 13:56 | 显示全部楼层
这个和程序没有关系,是你本地大周期数据要有才能计算得到
你引用前提一定是有数据,否者这个算不出来
就好比最简单求一个均线就是ma,但是没数据就是算不出来

上面代码是你写的吗,这种基本操作自己要了解的
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

6

主题

45

帖子

55

积分

Rank: 2

等级: 标准版

注册:
2022-6-27
曾用名:
 楼主| 发表于 2025-4-22 13:56 | 显示全部楼层
大周期缺少数据是什么原因?是我代码没写够还是什么?
回复

使用道具 举报

44

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2025-4-22 13:57 | 显示全部楼层
电话我
021-20339087
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-11 23:51 , Processed in 0.135703 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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