Rss & SiteMap

金字塔客服中心 - 专业程序化交易软件提供商 http://www.weistock.com/bbs/

专业程序化软件提供商
共11 条记录, 每页显示 10 条, 页签: [1] [2]
[浏览完整版]

标题:[原创]螺纹钢10点开多平多的错在那里?

1楼
tonyzhu 发表于:2021/4/25 10:32:13
这个公式用在螺纹钢,当符合开多条件时,开多,盈利10点平仓,策略测试时没有按照信号开仓。

KD:=DK1>8&&CROSS(F,S)&&F<50&&S<50&&BC<50;          //开多条件
PD:=(C-ENTERPRICE)>10;          //平多条件


开多:BUY(KD AND HOLDING=0,1,MARKET);          //开多信号
平多:SELL(PD,1,MARKET);                       //平多信号

但是实际在公式中是有信号的,DRAWICON(DK1>8&&CROSS(F,S)&&F<50&&S<50&&BC<50 ,50 ,1 );

我用图标标记出来了。


2楼
FireScript 发表于:2021/4/25 10:35:03
 KD AND HOLDING=0这个才算你完整的开多条件。你把这个作为条件输出下。
3楼
tonyzhu 发表于:2021/4/25 11:01:24
还是和之前一样。

4楼
FireScript 发表于:2021/4/25 11:02:01
 发下完整代码 我本地调试下。

另外你也要看下测试和加载在图表上的数据量是不是不一致。如果不一致,信号可能也会不一致。
[此贴子已经被作者于2021/4/25 11:04:59编辑过]
5楼
tonyzhu 发表于:2021/4/25 11:15:43
//日内强度
AA:=(2*C-H-L)/(H-L);
BB:=AA*VOL;
R:=SUM(BB,20)/SUM(VOL,20);

//中期方向线
MA1:=EMA(CLOSE,12);
MA2:=EMA(CLOSE,47);
B11:=(MA1-MA2);


//穿叉短周期
N:=34;
VAR1:=LLV(CLOSE,10);//10日最低
VAR2:=HHV(CLOSE,10);//10日最大
F: EMA((CLOSE-VAR1)/(VAR2-VAR1)*100,10), COLORGREEN;//价差
S: EMA(0.667*REF(F,1)+0.333*F,2) , COLORYELLOW;
FS:=(F+S)/2;

//穿叉长周期
VAR3:=(2*CLOSE+HHV(CLOSE,2)+LLV(CLOSE,2))/4;//化解
VAR4:=LLV(CLOSE,N);//34日最低
VARA:=HHV(CLOSE,N);
VARB:=EMA((VAR3-VAR4)/(VARA-VAR4)*100,13);//价差
VARC:=EMA(0.667*REF(VARB,1)+0.333*VARB,2);
FJ:=VARB-VARC;
BC:(VARB+VARC)/2;

//XDIKK1中期方向线换向

//3分钟

A3:=STKINDI('','XDIK4.A',0,17,0);
//10分钟
A10:=STKINDI('','XDIK4.A',0,18,0);;
//30分钟
A30:=STKINDI('','XDIK4.A',0,4,0);;

//1小时
AHOUR:=STKINDI('','XDIK4.A',0,5,0);;

//2小时
A240:=STKINDI('','XDIK4.A',0,24,2);;

//日

ADAY:=STKINDI('','XDIK4.A',0,6,0);

//日线颜色
D5:=IFELSE(ADAY>=0 , 1,0);
//2小时颜色
D6:=IFELSE(A240>=0 , 1,0);
//1小时
D7:=IFELSE(AHOUR>=0 , 1,0);
//30分钟
D8:=IFELSE(A30>=0 , 1,0);
//10分钟
D9:=IFELSE(A10>=0 , 1,0);
//3分钟
D10:=IFELSE(A3>=0 , 1,0);

//CCD短周期CC交叉
//3分钟

B3:=STKINDI('','CCD1.B',0,17,0);

//10分钟
B10:=STKINDI('','CCD1.B',0,18,0);;

//30分钟
B30:=STKINDI('','CCD1.B',0,4,0);;

//1小时
BHOUR:=STKINDI('','CCD1.B',0,5,0);;

//2小时
B240:=STKINDI('','CCD1.B',0,24,2);;


//日

BDAY:=STKINDI('','CCD1.B',0,6,0);;



//日线颜色
D11:=IFELSE(BDAY>=0 , 1,0);
//2小时颜色
D12:=IFELSE(B240>=0 , 1,0);
//1小时
D13:=IFELSE(BHOUR>=0 , 1,0);
//30分钟
D14:=IFELSE(B30>=0 , 1,0);
//10分钟
D15:=IFELSE(B10>=0 , 1,0);
//3分钟
D16:=IFELSE(B3>=0 , 1,0);

//XRVKK
//3分钟

E3:=STKINDI('','XRVK1.E',0,17,0);

//10分钟
E10:=STKINDI('','XRVK1.E',0,18,0);;


//30分钟
E30:=STKINDI('','XRVK1.E',0,4,0);;


//1小时
EHOUR:=STKINDI('','XRVK1.E',0,5,0);;

//2小时
E240:=STKINDI('','XRVK1.E',0,24,2);;

//日

EDAY:=STKINDI('','XRVK1.E',0,6,0);;

//日线颜色
D17:=IFELSE(EDAY>=0 , 1,0);
//2小时颜色
D18:=IFELSE(E240>=0 , 1,0);
//1小时
D19:=IFELSE(EHOUR>=0 , 1,0);
//30分钟
D20:=IFELSE(E30>=0 , 1,0);
//10分钟
D21:=IFELSE(E10>=0 , 1,0);
//3分钟
D22:=IFELSE(E3>=0 , 1,0);

//3分钟中期方向线变色

F3:=STKINDI('','XDIK5.F',0,17,0);

//10分钟
F10:=STKINDI('','XDIK5.F',0,18,0);;


//30分钟
F30:=STKINDI('','XDIK5.F',0,4,0);;


//1小时
FHOUR:=STKINDI('','XDIK5.F',0,5,0);;

//2小时
F240:=STKINDI('','XDIK5.F',0,24,2);;



FDAY:=STKINDI('','XDIK5.F',0,6,0);;

//日线颜色
D23:=IFELSE(FDAY>=0 , 1,0);
//2小时颜色
D24:=IFELSE(F240>=0 , 1,0);
//1小时
D25:=IFELSE(FHOUR>=0 , 1,0);
//30分钟
D26:=IFELSE(F30>=0 , 1,0);
//10分钟
D27:=IFELSE(F10>=0 , 1,0);
//3分钟
D28:=IFELSE(F3>=0 , 1,0);


D1:=IFELSE(R>REF(R,1), 1,0);
D2:=IFELSE(B11>REF(B11,1), 1,0);
D3:=IFELSE(FS>REF(FS,1), 1,0);
D4:=IFELSE(BC>REF(BC,1), 1,0);

DK:=D1+D2+D3+D4+D5+D6+D7+D8+D9+D10+D11+D12+D13+D14+D15+D16+D17+D18+D19+D20+D21+D22+D23+D24+D25+D26+D27+D28;
DK1:=D11+D12+D13+D17+D18+D19+D23+D24+D25;
TOP: 90,COLORGREEN,LINETHICK1;
BOT2:12,COLORRED,LINETHICK1;


LIU2:80,COLORGREEN,LINETHICK2;

SI:20,COLORRED,LINETHICK2;
SI2:50,COLOryellow,LINETHICK3;


STICKLINE(FJ>0,VARB,VARC,8,0,colorred);
STICKLINE(FJ<0,VARB,VARC,8,0,colorgreen);

DRAWICON(DK1>8&&CROSS(F,S)&&F<50&&S<50&&BC<50 ,50 ,1 );
6楼
FireScript 发表于:2021/4/25 11:17:32
 被调用的指标也提供下。否则加载不出效果的。
7楼
tonyzhu 发表于:2021/4/25 12:06:27
上面那个引用的太多了,我简化一下如下:

//穿叉短周期
N:=34;
VAR1:=LLV(CLOSE,10);//10日最低
VAR2:=HHV(CLOSE,10);//10日最大
F: EMA((CLOSE-VAR1)/(VAR2-VAR1)*100,10), COLORGREEN;//价差
S: EMA(0.667*REF(F,1)+0.333*F,2) , COLORYELLOW;
FS:=(F+S)/2;

//穿叉长周期
VAR3:=(2*CLOSE+HHV(CLOSE,2)+LLV(CLOSE,2))/4;//化解
VAR4:=LLV(CLOSE,N);//34日最低
VARA:=HHV(CLOSE,N);
VARB:=EMA((VAR3-VAR4)/(VARA-VAR4)*100,13);//价差
VARC:=EMA(0.667*REF(VARB,1)+0.333*VARB,2);
FJ:=VARB-VARC;
BC:(VARB+VARC)/2;


//CCC短周期交叉

//1小时
BHOUR:=STKINDI('','CCD1.B',0,5,0);
//2小时
B240:=STKINDI('','CCD1.B',0,24,2);
//日
BDAY:=STKINDI('','CCD1.B',0,6,0);


//日线颜色
D11:=IFELSE(BDAY>=0 , 1,0);
//2小时颜色
D12:=IFELSE(B240>=0 , 1,0);
//1小时
D13:=IFELSE(BHOUR>=0 , 1,0);





DK1:=D11+D12+D13;


STICKLINE(FJ>0,VARB,VARC,8,0,colorred);
STICKLINE(FJ<0,VARB,VARC,8,0,colorgreen);
TOP: 90,COLORGREEN,LINETHICK1;
BOT2:12,COLORRED,LINETHICK1;


LIU2:80,COLORGREEN,LINETHICK2;

SI:20,COLORRED,LINETHICK2;
SI2:50,COLOryellow,LINETHICK3;


STICKLINE(FJ>0,VARB,VARC,8,0,colorred);
STICKLINE(FJ<0,VARB,VARC,8,0,colorgreen);

DRAWICON(DK1=3&&CROSS(F,S)&&F<50&&S<50&&BC<50 ,50 ,1 );


KD:=DK1=3&&CROSS(F,S)&&F<50&&S<50&&BC<50 AND HOLDING=0 ;          //开多条件
PD:=(C-ENTERPRICE)>10*MINDIFF;          //平多条件

SELL(PD and HOLDING>0,HOLDING,THISCLOSE); //平多
BUY(KD and  HOLDING=0,1,THISCLOSE);//开多1手

引用的CCD1如下:
N:=34;
VAR1:=LLV(CLOSE,10);//10日最低
VAR2:=HHV(CLOSE,10);//10日最大
F: EMA((CLOSE-VAR1)/(VAR2-VAR1)*100,10), COLORGREEN;//价差
S: EMA(0.667*REF(F,1)+0.333*F,2) , COLORYELLOW;
B:REF(F,1)-REF(S,1);

8楼
tonyzhu 发表于:2021/4/25 12:07:50
带信号图标的公式如下:
//穿叉短周期
N:=34;
VAR1:=LLV(CLOSE,10);//10日最低
VAR2:=HHV(CLOSE,10);//10日最大
F: EMA((CLOSE-VAR1)/(VAR2-VAR1)*100,10), COLORGREEN;//价差
S: EMA(0.667*REF(F,1)+0.333*F,2) , COLORYELLOW;
FS:=(F+S)/2;

//穿叉长周期
VAR3:=(2*CLOSE+HHV(CLOSE,2)+LLV(CLOSE,2))/4;//化解
VAR4:=LLV(CLOSE,N);//34日最低
VARA:=HHV(CLOSE,N);
VARB:=EMA((VAR3-VAR4)/(VARA-VAR4)*100,13);//价差
VARC:=EMA(0.667*REF(VARB,1)+0.333*VARB,2);
FJ:=VARB-VARC;
BC:(VARB+VARC)/2;


//CCC短周期交叉

//1小时
BHOUR:=STKINDI('','CCD1.B',0,5,0);
//2小时
B240:=STKINDI('','CCD1.B',0,24,2);
//日
BDAY:=STKINDI('','CCD1.B',0,6,0);


//日线颜色
D11:=IFELSE(BDAY>=0 , 1,0);
//2小时颜色
D12:=IFELSE(B240>=0 , 1,0);
//1小时
D13:=IFELSE(BHOUR>=0 , 1,0);





DK1:=D11+D12+D13;


STICKLINE(FJ>0,VARB,VARC,8,0,colorred);
STICKLINE(FJ<0,VARB,VARC,8,0,colorgreen);
TOP: 90,COLORGREEN,LINETHICK1;
BOT2:12,COLORRED,LINETHICK1;


LIU2:80,COLORGREEN,LINETHICK2;

SI:20,COLORRED,LINETHICK2;
SI2:50,COLOryellow,LINETHICK3;


STICKLINE(FJ>0,VARB,VARC,8,0,colorred);
STICKLINE(FJ<0,VARB,VARC,8,0,colorgreen);

DRAWICON(DK1=3&&CROSS(F,S)&&F<50&&S<50&&BC<50 ,50 ,1 );

9楼
tonyzhu 发表于:2021/4/25 12:14:33
测试成交明细与信号不一致。
10楼
FireScript 发表于:2021/4/25 13:30:58
 你这个估计是数据不一致导致的计算会有差异。 如果计算的起点不一样,那么它产生的影响是会迭代下去的。

你可以先将指标加载到图表上,然后直接右键-回测:


图片点击可在新窗口打开查看此主题相关图片如下:temp.png
图片点击可在新窗口打开查看

调整下周期 然后这样回测采用的数据就是一样的了。我本地这样做回测明细和图表信号就是一致的了。

另外
DRAWICON(DK1=3&&CROSS(F,S)&&F<50&&S<50&&BC<50,50 ,1);
你这里输出位置是在价格50 的地方。如果于正常价格偏离太大是看不到输出的图标的。
[此贴子已经被作者于2021/4/25 13:31:13编辑过]
共11 条记录, 每页显示 10 条, 页签: [1] [2]


Powered By Dvbbs Version 8.3.0
Processed in .10938 s, 3 queries.