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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 菜鸟请教一个简单问题

   

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


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

主题:菜鸟请教一个简单问题

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


加好友 发短信
等级:新手上路 帖子:48 积分:284 威望:0 精华:0 注册:2012/10/25 19:52:08
菜鸟请教一个简单问题  发帖心情 Post By:2013/5/7 9:20:55    Post IP:14.154.229.147[只看该作者]

RUNMODE:1;
cc:BARPOS,linethick0;
n:=0;
IF BARPOS = 2 THEN
    n:=1;
BB:n; 

序列模式,第二根k线n=1.为何BB输出的一直为0
难道语句
IF BARPOS = 2 THEN
    n:=1;
不起作用?

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


加好友 发短信
等级:罗宾汉 帖子:46311 积分:50819 威望:0 精华:2 注册:2011/3/23 8:50:25
  发帖心情 Post By:2013/5/7 9:32:25    Post IP:58.246.57.26[只看该作者]

改成逐k线模式,runmode:0,

序列只计算最后k线,逐k线计算每一根k线



金字塔—专业程序化交易量化投资平台

客户服务部

----------------------------------------------------------- 欢迎您参加我公司的技术培训,具体培训需求请发邮件到service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com

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


加好友 发短信
等级:新手上路 帖子:48 积分:284 威望:0 精华:0 注册:2012/10/25 19:52:08
  发帖心情 Post By:2013/5/8 8:00:39    Post IP:116.25.255.205[只看该作者]

版主早上好,我的疑惑是:

我把公式写成这样:

RUNMODE:1;
ma10:=ma(c,10);
ma30:=ma(c,30);
IF(ma10>ma30,1,5);

序列只解析最后k线,如下图


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

1.最后一根K线时,ma10是小于ma30的,按最后一根K线计算的话,副图公式tt应该一直输出的是5.可实际上不是,是按ma10是大于或小于ma30分别输出1或5的

2.而且上面的公式改成逐K输出没有任何变化,就是说这个公式序列和逐K没任何区别,这如何解释?

3.希望版主详细解释下,谢谢


 


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


加好友 发短信
等级:罗宾汉 帖子:46311 积分:50819 威望:0 精华:2 注册:2011/3/23 8:50:25
  发帖心情 Post By:2013/5/8 9:05:04    Post IP:58.246.57.26[只看该作者]

RUNMODE:1;
ma10:=ma(c,10);
ma30:=ma(c,30);
n:=0;
if ma10>ma30 then n:=1;
n;

 

这么改,才是和你所说的是一个问题,n:=0这个在序列中全部定义好了,所以只在最后根k线判断n

 



金字塔—专业程序化交易量化投资平台

客户服务部

----------------------------------------------------------- 欢迎您参加我公司的技术培训,具体培训需求请发邮件到service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com

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


加好友 发短信
等级:新手上路 帖子:48 积分:284 威望:0 精华:0 注册:2012/10/25 19:52:08
  发帖心情 Post By:2013/5/8 10:50:54    Post IP:116.25.236.84[只看该作者]

RUNMODE:1;
ma10:=ma(c,10);
ma30:=ma(c,30);
IF(ma10>ma30,1,5);

我只想了解,为何最后不是一直输出5?


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


加好友 发短信
等级:罗宾汉 帖子:46311 积分:50819 威望:0 精华:2 注册:2011/3/23 8:50:25
  发帖心情 Post By:2013/5/8 11:02:20    Post IP:58.246.57.26[只看该作者]

if 这个函数会在每根k线上做出判断,而直接:=就是最后根k线计算了


金字塔—专业程序化交易量化投资平台

客户服务部

----------------------------------------------------------- 欢迎您参加我公司的技术培训,具体培训需求请发邮件到service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com

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


加好友 发短信
等级:新手上路 帖子:48 积分:284 威望:0 精华:0 注册:2012/10/25 19:52:08
  发帖心情 Post By:2013/5/8 22:56:35    Post IP:116.25.255.205[只看该作者]

说实话,还是不太明白.

不只是IF函数的问题,在飞弧里,很多条件选股公式都是每根K线做出判断的.而不是最后一根K线来计算的.而飞弧就是序列模式.

如果说序列模式只是计算最后一根K线,那飞弧的所有选股公式岂不是都选不了股了?因为只算最后一根K线啊.中间的K线就没有信号了.

实际情况是飞弧的中间K线都有信号.而飞弧是序列模式(公式可复制到金字塔序列模式里运行),这岂不是矛盾了?

 


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


加好友 发短信
等级:罗宾汉 帖子:11808 积分:20695 威望:0 精华:10 注册:2009/8/18 8:15:13
  发帖心情 Post By:2013/5/8 23:03:20    Post IP:118.205.0.28[只看该作者]

IF BARPOS = 2 THEN
这类的语法你在飞狐上是无法执行的,建议你多看看金字塔的编程手册


金字塔—专业程序化软件提供商

金字塔-技术部

-----------------------------------------------------------------------------------------------------

工作时间:周一至周五 08:30 - 17:30   周末及法定节假日休息

Email:service@weistock.com
 回到顶部
帅哥哟,离线,有人找我吗?
伍铁木
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:48 积分:284 威望:0 精华:0 注册:2012/10/25 19:52:08
  发帖心情 Post By:2013/5/8 23:09:53    Post IP:116.25.255.205[只看该作者]

飞弧里这个语句IF(ma10>ma30,1,5);是可以运行的

楼上说的

IF BARPOS = 2 THEN

是不能运行,这我知道.

我就是弄不懂"序列模式只是计算最后一根K线",而序列模式运行的飞弧里,很多条件选股公式都是每根K线做出判断的

这不是矛盾吗?

金字塔的编程手册我细看过,就是不理解才在这里问的.

版主的贴深度理解金字塔公式系统的工作机理  ,我也看了


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


加好友 发短信
等级:管理员 帖子:5082 积分:17642 威望:0 精华:6 注册:2010/7/15 9:05:58
  发帖心情 Post By:2013/5/9 9:53:51    Post IP:58.246.57.26[只看该作者]

(1)

RUNMODE:1;
cc:BARPOS,linethick0;
b1:if(BARPOS =datacount,1,0),linethick0;//if(BARPOS =datacount,1,0)函数是每根K线都会做判断,都会执行的.--该函数返回值跟BARPOS一样,是序列变量

 

(2)

RUNMODE:1;
cc:BARPOS,linethick0;

n:=0;

IF BARPOS = datacount THEN                 //只在最后一根K线上执行一次控制语句解析
    n:=1;
BB:n;

 

程序对控制语句



金字塔—专业程序化交易量化投资平台

客户服务部

-----------------------------------------------------------

欢迎您参加我公司的技术培训,具体培训需求请发邮件到

service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com

 回到顶部