金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
123
返回列表 发新帖
楼主: 103966

1分钟到2分钟平仓条件递进

[复制链接]

0

主题

2635

帖子

2635

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-24
曾用名:
发表于 2022-2-7 13:35 | 显示全部楼层
如果你能把逻辑表述的很清楚,不会花费那么多时间在沟通上,如果说不清楚,写了也不一定是你想要的。

既然沟通费劲,我只给你提供解决方案,至于会不会看你自己了
回复

使用道具 举报

3

主题

2万

帖子

2万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-24
曾用名:
发表于 2022-2-7 13:50 | 显示全部楼层
其实就是1分钟开仓条件要限制,2分钟条件不符合才能开仓是不是??
那就
if 1分钟条件 and not(2分钟条件) then tbuy();

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

使用道具 举报

0

主题

2635

帖子

2635

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-24
曾用名:
发表于 2022-2-7 13:59 | 显示全部楼层
本帖最后由 资深技术03 于 2022-2-7 15:37 编辑

整体方法:使用全局变量记录当前执行的状态,像锁链一样,一环扣一环的处理。整体逻辑:
当1分钟开仓成立后,记录全局变量为1或者-1,之后策略执行只会执行1分钟平仓(平仓时置0,)或者出现2分钟开仓条件成立(全局变量变更为2或者-2,再之后只会按照2分钟的平仓条件处理)

注:此范例仅为演示解决方案,搞懂方法后,自行调整,若自身需要更为复杂,可能需要多个全局变量参与,共同表示区分状态。那么EXTGBDATASET定义的变量名称需要调整,如EXTGBDATASET( BUY_STKLABEL,0 );的方式,根据自身需要调整,只要保证全局变量名称唯一即可

[PEL] 复制代码
KD:= BIGUPTT1>=11 AND DIFFHF>=1 AND DIFF1>=2;//开多条件
PD:= MACDHF<0 OR (DIFF3>=5 AND MACD_UP3=0) OR (DIFF2>=3 AND MACD_UP2=0) OR (DIFF1>=2 AND MACD_UP1=0);
KK:= BIGDNTT1>=11 AND DIFFHF<=-1 AND DIFF1<=-2;//开空条件
PK:= MACDHF>0 OR (DIFF3<=-5 AND MACD_DOWN3=0) OR (DIFF2<=-3 AND MACD_DOWN2=0) OR (DIFF1<=-2 AND MACD_DOWN1=0);
//使用ext全局变量,0表示:平仓后的状态。1表示1分钟的多头状态,-1表示1分钟的空头状态
//平空信号,复位平仓状态。初始值为0
if PK=1 and EXTGBDATA(STKLABEL)=-1 then begin
        TSELLSHORT(PK,0,MKT);                  
        EXTGBDATASET( STKLABEL,0 );
end

//开多信号,同时,标记记录为1,表示1分钟多种开仓状态已触发
if KD AND TBUYHOLDINGEX('','',2)=0  and EXTGBDATA(STKLABEL)=0 then begin
        TBUY(1,5,MKT);          
        EXTGBDATASET( STKLABEL,1 );
end

//平多信号,复位平仓状态。初始值为0
if pd=1  and EXTGBDATA(STKLABEL)=1 then begin
        TSELL(1,0,MKT);
        EXTGBDATASET( STKLABEL,0 );
end    


//开空信号,表示空头开仓后,全局变量的状态为-1
if KK=1 AND TSELLHOLDINGEX('','',2)=0 and EXTGBDATA(STKLABEL)=0 then begin                   
        TBUYSHORT(1,5,MKT);     
        EXTGBDATASET( STKLABEL,-1 );
end



[PEL] 复制代码
//下面是两分钟的开平仓代码:
KD:= BIGUPTT2 >=11 AND DIFFHF>=2 AND DIFF1>=3;//开多条件
PD:= MACDHF<0 OR (DIFF3>=8 AND MACD_UP3=0) OR (DIFF2>=5 AND MACD_UP2=0) OR (DIFF1>=3 AND MACD_UP1=0);
KK:= BIGDNTT2>=11 AND DIFFHF<-2 AND DIFF1<-3;//开空条件
PK:= MACDHF>0 OR (DIFF3<=-8 AND MACD_DOWN3=0) OR (DIFF2<=-5 AND MACD_DOWN2=0) OR (DIFF1<=-3 AND MACD_DOWN1=0);

//使用ext全局变量,0表示:平仓后的状态。2表示2分钟的多头状态,-2表示2分钟的空头状态

if PK=1 and EXTGBDATA(STKLABEL)=-2  then begin 
        TSELLshort(PK,0,MKT);                  //平空信号
        EXTGBDATASET( STKLABEL,0 );//复位平仓状态。初始值为0
end 

//开多信号,同时,标记记录为2,表示2分钟多种开仓状态已触发(只有当1分钟开仓后才会改变状态)
if KD=1 AND TBUYHOLDINGEX('','',2)>0 and  EXTGBDATA(STKLABEL)=1 then begin 
        //TBUY(1,5,MKT);         
        EXTGBDATASET( STKLABEL,2 );
end 

//平多信号,同时复位平仓状态。初始值为0
if PD=1 and EXTGBDATA(STKLABEL)=2 then begin 
        TSELL(,0,MKT);                       
        EXTGBDATASET( STKLABEL,0 );
end 

//开空信号,表示空头开仓后,全局变量的状态为-2
if KK AND TsellHOLDINGEX('','',2)>0 and EXTGBDATA(STKLABEL)=-1 then begin
        //TBUYshort(1,5,MKT);     
        EXTGBDATASET( STKLABEL,-2 );
end

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-16 06:45 , Processed in 0.509936 second(s), 20 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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