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


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

   

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


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

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

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


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2019/10/8 9:01:30    Post IP:180.169.30.6[显示全部帖子]

就是指跨周期调用的那个公式 ,大致意思就是进行的跨周期调用的次数太多了。
你这里是个特殊情况。系统序列变量如 O H L C 不能这样作为参数传递进去,否则K线数多了就会出现这个报错。序列变量是特殊的变量,差不多相当于一个数组,一组数据,这就会导致在每个K上都会被视作参数不一样的跨周期调用了。从而导致上面的报错。 


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2019/10/9 9:49:12    Post IP:180.169.30.6[显示全部帖子]

 第一个公式有问题。holding是虚拟持仓,在图表策略里面如果没有开仓语句,这个holding初始是0. 你公式1只有平仓语句,holding只会是0

此外还需要注意的就是 一般被引用的变量 最好用 “:” 定义 而不是用“:=”定义。


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2019/10/9 9:56:19    Post IP:180.169.30.6[显示全部帖子]

然后就是第二个公式里面:
T1:=TIME>=140000 and TIME<141000;//开多时间
T2:=TIME>=142000;                //平多时间
T3:=TIME>=143000 and TIME<144000;//开空时间
T4:=TIME>=145000;                //平多时间

time返回的一般默认是金字塔时间:

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

你上面代码里面 如果你想表达北京时间的这个区间,你可能要改成金字塔时间的表达方式,也就是加上四个小时。



命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2019/10/9 13:10:44    Post IP:180.169.30.6[显示全部帖子]

能引用过来,但是值应该恒为0。


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


这句代码 你直接加载看下就知道了。恒为0的。
aa:sell(1,0,marketr);     //平多

就光裸一个平仓语句 aa只会是0.
[此贴子已经被作者于2019/10/9 13:12:16编辑过]


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2019/10/9 14:00:51    Post IP:180.169.30.6[显示全部帖子]

 图表策略 上没有开仓语句,这个平多是无论如何都不会触发的。图表策略加载在图表上,有开才能有平。图表策略在K线图上的信号是基于K线数据 和策略代码逻辑 进行的模拟下单 所产生的。你如果只写一个平仓语句是不行的。


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2019/10/9 14:33:06    Post IP:180.169.30.6[显示全部帖子]

 这个没有专门例子的。因为这个也就是一个普通的跨周期调用哦。你这里也只是类似于调用另一个指标的开平仓条件而已。


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2019/10/10 10:06:08    Post IP:180.169.30.6[显示全部帖子]

你是说公式2 没有触发开仓信号?公式2里面没有开仓语句啊。

开仓信号是无法通过跨周期函数调用来传递的,你调用过来的是一个变量数值,这个变量可以表示公式1的开平信号的情况,你只有在当前公式里把这个y作为当前公式里面下单语句的判断条件,才能实现这个 “信号调用”的过程。  跨周期调用的是变量 是数值,信号本身必须由当前指标的开平语句发出。


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2019/10/10 13:33:20    Post IP:180.169.30.6[显示全部帖子]

1.有效。你前面也调用到了aa的值了不是么。
2. 没有下单信号是因为公式2  没有下单语句。 和跨周期调用没有任何关系。
举个例子:有人告诉你下某个品种单子能赚钱,你听从了他的建议 知道了他的操作 ,但是你也只是知道了,你本身还需要操作下单,这个才算是完整过程。你这里跨周期调用也是一样道理,你调用了公式1的信息 ,可是你下单还需要在当前公式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);

if y  then  buy(holding=0,1,market);//调用公式1的判断结果 作为下单语句的判断条件


3.“y是公式2中的,我希望公式2发判断条件,在公式1中开平仓,这个功能不能实现?”  需要明确下到底谁是交易策略,谁是被调用的指标。你这里Y本身已经是调用公式1了,现在又变成了公式1调用公式2的条件来开仓?  有点乱了。


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2019/10/10 13:58:58    Post IP:180.169.30.6[显示全部帖子]

 你是有原始思路要实现,还是说只是想试试用跨周期函数?


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2019/10/10 14:18:10    Post IP:180.169.30.6[显示全部帖子]

 运行周期是1分钟,调用30分钟周期上指标的信号?


命数如织,当如磐石。
 回到顶部
总数 14 1 2 下一页