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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件金字塔软件问题提交 → 一个公式编写思路的请教

   

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


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

主题:一个公式编写思路的请教

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


加好友 发短信
等级:论坛游侠 帖子:122 积分:0 威望:0 精华:0 注册:2017/4/27 19:25:29
一个公式编写思路的请教  发帖心情 Post By:2018/6/30 14:28:26 [只看该作者]

我有个编写需求,想求助老师:

1、情况:大概需要10000条最新K线的开收高低4个数。非交易时,打开K线图(即站在最新时点看),公式读入最近10000条K线数据,会经过计算,返回一个同等长度数组,里面记录了最近10000个K线,哪些是局部高低点,然后用DRAWLINE把高低点画线连起来。

2、因为计算过程有点复杂,需要类似VBA那些控制语句,我之前参考guotx写的例子,用<% gaodian = ffl.vardata("GAODIAN") %>这种方式内嵌在公式里,用于OCHL数据传递进处理过程,并传递出去进行画线。

我的问题:

1、好像<% gaodian = ffl.vardata("GAODIAN") %>这个方式,无法进行调试。我想是不是用高级教程7.1节的“VBA自定义PEL函数”这个方式来写?
高级教材里面,写了一个Function CU_MA1(Formula,CLOSE,Cyc)的例子,我有两个疑问:
(1)里面'定义一个计算返回的数组

    Dim ResultMa
    Redim ResultMa(DataCount)

ResultMa作为返回的数据,为什么要用dim,redim? redim是什么语法啊?找不到说明啊?

(2)如果我的计算,是需要返回多个数据,作为不同标记的,应该怎么写啊?之前<% gaodian = ffl.vardata("GAODIAN") %>的这种方式,我定义了好几个序列变量,就能写一个公式,可以返回好几个序列变量了。但现在用自定义公式不知道怎么解决?

2、能否回测?
我原来用<%  %>这个方式写的公式,在一张图上(属于技术指标),是会标记历史上哪些地方是买入、哪些地方是卖出信号的。同时也会返回,最后一根K线时,是否处于买入或卖出状态。我想这个时属于序列模式。

我想咨询,这种思路的公式,能进行回测吗?金字塔的回测过程是:
(1)模拟历史过程,逐根K线添加进价格数组,然后不停的调用这个序列公式,当发出买入信号时就买入,当卖出信号时就卖出,然后统计盈亏。
(2)还是说直接调入全部的数据,然后看看公式过往会在哪些地方标注买入、卖出?

我要回测的话,应该使用序列模式,还是逐K模式?

<!--[endif]-->


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


加好友 发短信
等级:管理员 帖子:26631 积分:0 威望:0 精华:7 注册:2015/4/9 14:59:07
  发帖心情 Post By:2018/7/1 14:57:07 [只看该作者]

1.dim,redim这是vba的关键字,用于定义变量的。关于vba的使用语法问题,请自行百度学习。
2.vba提供交易回测方法。参考手册的TestReport 对象




编程无捷径,技巧靠积累。
 回到顶部
帅哥哟,离线,有人找我吗?
hborning
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:122 积分:0 威望:0 精华:0 注册:2017/4/27 19:25:29
  发帖心情 Post By:2018/7/1 15:11:07 [只看该作者]

老师,实在不好意思打搅。
我疑惑就3个地方:
1、我在PEL公式里,写  A:CU_MA1(CLOSE,20) ,想是画20周期均价线,公式就一行,但发现公式能编译,但是就是出错不能正确显示

2、我是仿照范例里面的,希望输入是CLOSE这样的数组数值,返回是ResultMA这样的数组数值。范例里面先Dim ResultMa,然后 Redim ResultMa(DataCount),是不是这样就定义ResultMA成为一个和CLOSE一样长的数组啊?我只是要能正常使用就可以了,所以想请教老师的

3、如果我的计算,是需要返回多个数据,作为不同标记的,应该怎么写啊?之前<% gaodian = ffl.vardata("GAODIAN") %>的这种方式,我定义了好几个序列变量,就能写一个公式,可以返回好几个序列变量了。但现在用自定义公式不知道怎么解决?

谢谢老师!

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


加好友 发短信
等级:论坛游侠 帖子:122 积分:0 威望:0 精华:0 注册:2017/4/27 19:25:29
  发帖心情 Post By:2018/7/1 17:41:45 [只看该作者]

老师,给您提一个小小的建议。

不少用户是懂基本编程语言的,例如C/BASIC都学过,所以各种语法并不是很难。难点在于,不知道如何把数据读入(例如读取一串K线的OCHL)和输出(例如计算出来把数组返回)。大家出疑问,其实是不明白运作机理和各种数据衔接,作为一个新手,光看软件教程是很难上手的。如果金字塔能够提供一个完整的示范包,各类基础输入输出问题都有范例,大家照着看,很多问题就解决了。

我之前也遇到问题,使用了<% %>这种写法,其实软件教程上也没有,是看到guotx发的一个缠论的示例,里面基本把数据读入、返回给系统,都演示出来,所以我照着看就能写出程序了。

如果金字塔能提供VBA类似的范例,大家会容易上手很多。谢谢!

 回到顶部