金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 2202|回复: 2

多空判定、开仓方向转换逻辑不起作用

[复制链接]

3

主题

7

帖子

7

积分

Rank: 1

等级: 新手上路

注册:
2022-11-25
曾用名:
发表于 2023-7-5 13:18 | 显示全部楼层 |阅读模式
技术:
   你好!我如下策略中方向判定、开仓方向转换不起作用,麻烦看下!
需要的是触发转空转多开仓后才转向,只止损不转向,但目前策略碰止损就改变开仓方向了。

INPUT:N1(4,1,100,1),N2(6,1,100,1),N3(9,1,100,1),N4(13,1,100,1),N5(18,1,100,1),N6(24,1,100,1); //定义周期参数
INPUT:SS(1,1,100,1);                                            //定义下单手数
  
LINE1:(EMA(C,N1)+EMA(C,N1*2)+EMA(C,N1*4))/3;
LINE2:(EMA(C,N2)+EMA(C,N2*2)+EMA(C,N2*4))/3;
LINE3:(EMA(C,N3)+EMA(C,N3*2)+EMA(C,N3*4))/3;
LINE4:(EMA(C,N4)+EMA(C,N4*2)+EMA(C,N4*4))/3;
LINE5:(EMA(C,N5)+EMA(C,N5*2)+EMA(C,N5*4))/3;
LINE6:(EMA(C,N6)+EMA(C,N6*2)+EMA(C,N6*4))/3,COLORRED;

当前持仓:HOLDING,COLORGRAY,LINETHICK0;
当前资产:=ASSET,NOAXIS,COLORGRAY;

TR1:=MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW));
ATR:=MA(TR1,20);

突破点最高价:=VALUEWHEN(CROSS(LINE1,LINE5),HHV(C,1));            
突破点最低价:=VALUEWHEN(CROSS(LINE5,LINE1),LLV(C,1));
突历周期:=BARSLAST(CROSS(LINE1,LINE5));
破历周期:=BARSLAST(CROSS(LINE5,LINE1));
上轨:突破点最高价+2*ATR;
下轨:突破点最低价-2*ATR;        
转多点:=突破点最高价+4*ATR;
转空点:=突破点最低价-4*ATR;

H70:REF(HHV(C,70),1),COLORMAGENTA;
L70:REF(LLV(C,70),1),COLORMAGENTA;

转空条件:=CROSS(转空点,C) AND C<转空点 AND 破历周期<突历周期 AND 破历周期<60;
转多条件:=CROSS(C,转多点)AND C>转多点 AND 突历周期<破历周期 AND 突历周期<60;


多损条件:=CROSS(下轨,C) AND 破历周期<突历周期;        
平多条件:=C>ENTERPRICE+10*ATR;        
加多条件:=CROSS(LINE5,LINE1) AND REF(破历周期,1)>13;

空损条件:=CROSS(C,上轨) AND 突历周期<破历周期;
平空条件:=C<ENTERPRICE-10*ATR;               
加空条件:=CROSS(LINE1,LINE5) AND REF(突历周期,1)>13;

//交易系统

//转多:
IF 转多条件 THEN BEGIN
SELLSHORT(1,HOLDING,MARKET);
翻多:BUY(1 AND HOLDING=0,ss,MARKET);
DTSWITCH:=1;
END

IF DTSWITCH=1 THEN BEGIN                       
多损:SELL(多损条件,HOLDING,MARKET);
平多:SELL(平多条件,SS,MARKET);
加多:BUY(加多条件,SS,MARKET);
END

//转空:
IF 转空条件 THEN BEGIN
SELL(1,HOLDING,MARKET);
翻空:BUYSHORT(1 AND HOLDING=0,ss,MARKET);
KTSWITCH:=1;
END

IF KTSWITCH=1 THEN BEGIN
空损:SELLSHORT(空损条件,HOLDING,MARKET);
平空:SELLSHORT(平空条件,SS,MARKET);
加空:BUYSHORT(加空条件,SS,MARKET);
END

回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-7-5 14:15 | 显示全部楼层
你原本思路是必须 在翻空之后才开空,翻多之后才开多?

你这个原本代码里没有特别的地方对这个进行限制的。你要用全局变量记录之前的状态,用普通变量不行的。

[PEL] 复制代码
INPUT:N1(4,1,100,1),N2(6,1,100,1),N3(9,1,100,1),N4(13,1,100,1),N5(18,1,100,1),N6(24,1,100,1); //定义周期参数
INPUT:SS(1,1,100,1);                                            //定义下单手数
VARIABLE:status=0;

LINE1:=(EMA(C,N1)+EMA(C,N1*2)+EMA(C,N1*4))/3;
LINE2:=(EMA(C,N2)+EMA(C,N2*2)+EMA(C,N2*4))/3;
LINE3:=(EMA(C,N3)+EMA(C,N3*2)+EMA(C,N3*4))/3;
LINE4:=(EMA(C,N4)+EMA(C,N4*2)+EMA(C,N4*4))/3;
LINE5:=(EMA(C,N5)+EMA(C,N5*2)+EMA(C,N5*4))/3;
LINE6:=(EMA(C,N6)+EMA(C,N6*2)+EMA(C,N6*4))/3,COLORRED;

当前持仓:HOLDING,COLORGRAY,LINETHICK0;
当前资产:=ASSET,NOAXIS,COLORGRAY;

TR1:=MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW));
ATR:=MA(TR1,20);

突破点最高价:=VALUEWHEN(CROSS(LINE1,LINE5),HHV(C,1));            
突破点最低价:=VALUEWHEN(CROSS(LINE5,LINE1),LLV(C,1));
突历周期:=BARSLAST(CROSS(LINE1,LINE5));
破历周期:=BARSLAST(CROSS(LINE5,LINE1));
上轨:突破点最高价+2*ATR;
下轨:突破点最低价-2*ATR;        
转多点:=突破点最高价+4*ATR;
转空点:=突破点最低价-4*ATR;

H70:REF(HHV(C,70),1),COLORMAGENTA;
L70:REF(LLV(C,70),1),COLORMAGENTA;

转空条件:CROSS(转空点,C) AND C<转空点 AND 破历周期<突历周期 AND 破历周期<60;
转多条件:CROSS(C,转多点)AND C>转多点 AND 突历周期<破历周期 AND 突历周期<60;



多损条件:=CROSS(下轨,C) AND 破历周期<突历周期;        
平多条件:=C>ENTERPRICE+10*ATR;        
加多条件:=CROSS(LINE5,LINE1) AND REF(破历周期,1)>13;

空损条件:=CROSS(C,上轨) AND 突历周期<破历周期;
平空条件:=C<ENTERPRICE-10*ATR;               
加空条件:=CROSS(LINE1,LINE5) AND REF(突历周期,1)>13;

//交易系统

//转多:
IF 转多条件 and status<=0 THEN BEGIN
SELLSHORT(1,HOLDING,MARKET);
翻多:BUY(1 AND HOLDING=0,ss,MARKET);
status:=1;
END

IF status=1 THEN BEGIN                       
多损:SELL(多损条件,HOLDING,MARKET);
平多:SELL(平多条件,SS,MARKET);
加多:BUY(加多条件,SS,MARKET);
END

//转空:
IF 转空条件 and status>=0 THEN BEGIN
SELL(1,HOLDING,MARKET);
翻空:BUYSHORT(1 AND HOLDING=0,ss,MARKET);
status:=-1;
END

IF status=-1 THEN BEGIN
空损:SELLSHORT(空损条件,HOLDING,MARKET);
平空:SELLSHORT(平空条件,SS,MARKET);
加空:BUYSHORT(加空条件,SS,MARKET);
END
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

3

主题

7

帖子

7

积分

Rank: 1

等级: 新手上路

注册:
2022-11-25
曾用名:
 楼主| 发表于 2023-7-5 15:01 | 显示全部楼层
万分感谢哈!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-16 04:49 , Processed in 0.165869 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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