欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → [求助]stkindi的参数传送问题

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有5716人关注过本帖树形打印复制链接

主题:[求助]stkindi的参数传送问题

帅哥哟,离线,有人找我吗?
mcza30
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:25 积分:0 威望:0 精华:0 注册:2019/4/5 22:38:44
[求助]stkindi的参数传送问题  发帖心情 Post By:2019/10/2 23:16:01    Post IP:218.108.135.128[显示全部帖子]

我在测试stkindi的参数传送,代码如下

//tp:=12345678;//ok
tp:=c;               //error

m1:=NUMTOSTR(tp,0);
y:=stkindi('','sub02.aa('&m1&')',0,1,0);

当tp为常数时传送正常,tp为c时报错“公式过多,超过50个”

请教如何理解“公式过多,超过50个”这个信息?
这里“公式”是指什么?






 回到顶部
帅哥哟,离线,有人找我吗?
mcza30
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:25 积分:0 威望:0 精华:0 注册:2019/4/5 22:38:44
  发帖心情 Post By:2019/10/9 9:41:03    Post IP:218.108.135.128[显示全部帖子]

谢谢超级版主FireScript!

我想跨周期引用交易系统函数,公式2引用公式1。
程序如下,但是没有结果。请版主帮我看看有什么问题。谢谢


//------sub1008公式1
input: cmd(0,0,10,1);
if cmd=1 then  sell(1,0,marketr);     //平多
if cmd=2 then  sellshort(1,0,marketr);//平空
aa:=holding;


//------------公式2
T1:=TIME>=140000 and TIME<141000;//开多时间
T2:=TIME>=142000;                //平多时间
T3:=TIME>=143000 and TIME<144000;//开空时间
T4:=TIME>=145000;                //平多时间

buy(T1 and holding=0,1,MARKETR);
if T2 then y1:stkindi('','sub1008.aa(1)',0,0,0);

buyshort(T3 and holding=0,1,MARKETR);
if T4 then y2:stkindi('','sub1008.aa(2)',0,0,0);


 回到顶部
帅哥哟,离线,有人找我吗?
mcza30
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:25 积分:0 威望:0 精华:0 注册:2019/4/5 22:38:44
  发帖心情 Post By:2019/10/9 11:28:49    Post IP:218.108.135.128[显示全部帖子]

lk:time;
显示时间,返回结果与金字塔时间是一致的。
我的电脑上没有你图片上括号显示部分,仅显示北京时间



 回到顶部
帅哥哟,离线,有人找我吗?
mcza30
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:25 积分:0 威望:0 精华:0 注册:2019/4/5 22:38:44
  发帖心情 Post By:2019/10/9 13:02:13    Post IP:218.108.135.128[显示全部帖子]

我作了修改,不用时间函数,如下:

//------sub1008公式1
aa:sell(1,0,marketr);     //平多


//------------公式2
T1:=count(c>o,2)=2;
buy(T1 and holding=0,1,MARKETR);  //开多

T2:=count(c<o,2)=2;
//sell(T2 and holding>0,0,marketr); //ok
if T2 then y1:stkindi('','sub1008.aa',0,0,0);  //跨周期引用没有反应

不知哪里出错,请版主指教,谢谢。




 回到顶部
帅哥哟,离线,有人找我吗?
mcza30
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:25 积分:0 威望:0 精华:0 注册:2019/4/5 22:38:44
  发帖心情 Post By:2019/10/9 13:45:50    Post IP:218.108.135.128[显示全部帖子]

aa我是作为一个引用标号,没有指定意义。

问题主要是sell(1,0,marketr); 没有平多操作,实盘和回测都没有动作。



 回到顶部
帅哥哟,离线,有人找我吗?
mcza30
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:25 积分:0 威望:0 精华:0 注册:2019/4/5 22:38:44
  发帖心情 Post By:2019/10/9 14:24:12    Post IP:218.108.135.128[显示全部帖子]

谢谢超级版主FireScript,有点搞清楚了。

版主能不能提供一个跨周期引用开平仓的参考例程,网上没有找到。


 回到顶部
帅哥哟,离线,有人找我吗?
mcza30
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:25 积分:0 威望:0 精华:0 注册:2019/4/5 22:38:44
  发帖心情 Post By:2019/10/9 14:36:10    Post IP:218.108.135.128[显示全部帖子]

好的,我再试试。
回头再向版主请教,谢谢!

 回到顶部
帅哥哟,离线,有人找我吗?
mcza30
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:25 积分:0 威望:0 精华:0 注册:2019/4/5 22:38:44
  发帖心情 Post By:2019/10/10 9:49:30    Post IP:218.108.135.128[显示全部帖子]

版主你好
我修改了程序,将开仓平仓语句放在一个公式里

//------sub1009公式1
input: cmd1(0,0,10,1);
input: cmd2(0,0,10,1);

if cmd1 then
begin
sellshort(holding<0,0,MARKETR);
buy(holding=0,1,MARKETR);
end;

if cmd2 then
begin
sell(holding>0,0,MARKETR);
buyshort(holding=0,1,MARKETR);
end;

aa:10*cmd1+cmd2;


//------------公式2
DIFF :=EMA(CLOSE,12) - EMA(CLOSE,26);
DEA  :=EMA(DIFF,9);
MACD :=2*(DIFF-DEA);

cmd1:=CROSS(MACD,0);//开多平空条件
cmd2:=CROSS(0,MACD);//开空平多条件

m1:=NUMTOSTR(cmd1,0);
m2:=NUMTOSTR(cmd2,0);

y:stkindi('','sub1009.aa('&m1&','&m2&')',0,1,0);

以上公式运行,cmd1和cmd2有返回值0、1和10,说明公式1能够执行,但没有触发开仓。

不知问题何在,请版主帮助修改一下,谢谢。


 回到顶部
帅哥哟,离线,有人找我吗?
mcza30
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:25 积分:0 威望:0 精华:0 注册:2019/4/5 22:38:44
  发帖心情 Post By:2019/10/10 11:27:50    Post IP:218.108.135.128[显示全部帖子]

谢谢版主耐心回答
不过我学习金字塔时间不长,版主上贴的意思我不知理解得对不对,我想知道:

1、“开仓信号是无法通过跨周期函数调用来传递的”---公式1中的cmd1和cmd2是无效的?
2、“跨周期调用的是变量 是数值,信号本身必须由当前指标的开平语句发出。”---公式2中的stkindi函数无法传递信号让公式1开平仓?
3、“把这个y作为当前公式里面下单语句的判断条件,才能实现这个 “信号调用”的过程。”---y是公式2中的,我希望公式2发判断条件,在公式1中开平仓,这个功能不能实现?

学习stkindi函数我化了近十天时间,还是不得要领。
麻烦版主帮我改下代码,使之能够运行,谢谢!


 回到顶部
帅哥哟,离线,有人找我吗?
mcza30
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:25 积分:0 威望:0 精华:0 注册:2019/4/5 22:38:44
  发帖心情 Post By:2019/10/10 13:56:10    Post IP:218.108.135.128[显示全部帖子]

谢谢版主,我再想想。
麻烦版主帮我改改。

 回到顶部
总数 15 1 2 下一页