以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://www.weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://www.weistock.com/bbs/list.asp?boardid=4)
----  不让系统里面的黄色线和白色线,显示在桌面  (http://www.weistock.com/bbs/dispbbs.asp?boardid=4&id=173171)

--  作者:qq代人发帖
--  发布时间:2019/11/18 15:45:25
--  不让系统里面的黄色线和白色线,显示在桌面

1,不让系统里面的黄色线和白色线,显示在桌面
2、添加日线信号过滤:在小周期15分钟或者小时图上显示开多信号之前,先过滤下日线是不是显示的开多信号,如果不是,小周期几遍有信号也不开仓,                                                                               

 3、在代码里面加上只有走完当根K先才提示信号,


图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看
input:m(10,2,250,1);
MID:=(3*CLOSE+LOW+OPEN+HIGH)/6;  
DKX:(20*MID+19*REF(MID,1)+18*REF(MID,2)+17*REF(MID,3)+
16*REF(MID,4)+15*REF(MID,5)+14*REF(MID,6)+
13*REF(MID,7)+12*REF(MID,8)+11*REF(MID,9)+
10*REF(MID,10)+9*REF(MID,11)+8*REF(MID,12)+
7*REF(MID,13)+6*REF(MID,14)+5*REF(MID,15)+
4*REF(MID,16)+3*REF(MID,17)+2*REF(MID,18)+REF(MID,20))/210;
MADKX:MA(DKX,M);
jc:=cross(DKX,MADKX);
sc:=cross(MADKX,DKX);

if jc then 
begin
sellshort(holding<0,holding,market);
buy(holding=0,1,market);     
end

if sc then 
begin
sell(holding>0,holding,market);
buyshort(holding=0,1,market);     
end
[此贴子已经被作者于2019/11/18 15:45:47编辑过]

--  作者:FireScript
--  发布时间:2019/11/18 16:39:19
--  
 1.
加个函数就行了。
MADKX:MA(DKX,M),NODRAW;

2.图表K上采用的就是类走完K的形式,因为它调用的是K线成形时候的数据。

3.信号过滤那个要用stkindi函数处理下。就是跨周期调用。

你看下这个函数说明帖。先尝试下能否自行处理掉。

--  作者:qq代人发帖
--  发布时间:2019/11/19 9:18:09
--  
请帮忙在源码上添加日线信号过滤:比如在小周期15分钟或者小时图上显示开多信号之前,先过滤下日线是不是显示的开多信号,如果不是,小周期有信号也不开仓, 谢谢
input:m(10,2,250,1);
MID:=(3*CLOSE+LOW+OPEN+HIGH)/6;  
DDD:(20*MID+19*REF(MID,1)+18*REF(MID,2)+17*REF(MID,3)+
16*REF(MID,4)+15*REF(MID,5)+14*REF(MID,6)+
13*REF(MID,7)+12*REF(MID,8)+11*REF(MID,9)+
10*REF(MID,10)+9*REF(MID,11)+8*REF(MID,12)+
7*REF(MID,13)+6*REF(MID,14)+5*REF(MID,15)+
4*REF(MID,16)+3*REF(MID,17)+2*REF(MID,18)+REF(MID,20))/210,{NODRAW};   //NODRAW  这个代码是不限是该划线

MADDD:MA(DDD,M),{NODRAW};  //NODRAW  这个代码是不限是该划线;
jc:=cross(DDD,MADDD);
sc:=cross(MADDD,DDD);

if jc then 
begin
sellshort(holding<0,holding,market);
buy(holding=0,1,market);      //开多语句 
end

if sc then 
begin
sell(holding>0,holding,market); //平多语句
buyshort(holding=0,1,market);     
end
--  作者:FireScript
--  发布时间:2019/11/19 9:55:27
--  
1.先把这部分:
input:m(10,2,250,1);
MID:=(3*CLOSE+LOW+OPEN+HIGH)/6;  
DDD:(20*MID+19*REF(MID,1)+18*REF(MID,2)+17*REF(MID,3)+
16*REF(MID,4)+15*REF(MID,5)+14*REF(MID,6)+
13*REF(MID,7)+12*REF(MID,8)+11*REF(MID,9)+
10*REF(MID,10)+9*REF(MID,11)+8*REF(MID,12)+
7*REF(MID,13)+6*REF(MID,14)+5*REF(MID,15)+
4*REF(MID,16)+3*REF(MID,17)+2*REF(MID,18)+REF(MID,20))/210,{NODRAW};   //NODRAW  这个代码是不限是该划线

MADDD:MA(DDD,M),{NODRAW};  //NODRAW  这个代码是不限是该划线;
jc:=cross(DDD,MADDD);
sc:=cross(MADDD,DDD);


单独放在一个新建的指标里面,比如叫指标A。这样就能进行跨周期调用这个指标的日线级别的金叉死叉:

jcday:STKINDI(\'\',\'A.jc\',0,6,0);
scday:STKINDI(\'\',\'A.sc\',0,6,0);

然后原先3楼的代码修改一部分即可:
if jc and jcday then 
begin
sellshort(holding<0,holding,market);
buy(holding=0,1,market);      //开多语句 
end

if sc and scday then 
begin
sell(holding>0,holding,market); //平多语句
buyshort(holding=0,1,market);     
end

2.“不让系统里面的黄色线和白色线,显示在桌面” 到底啥意思。是不画线还是怎么了。NODRAW 的作用就是不画线,但是输出数值。