设为首页收藏本站

 找回密码
 注册
查看: 55252|回复: 45
打印 上一主题 下一主题

公式编写常见问题Q&A [复制链接]

Rank: 10Rank: 10Rank: 10

精华
3
UID
5
积分
26584
帖子
12686
主题
49
阅读权限
200
注册时间
2007-7-20
最后登录
2021-11-3
跳转到指定楼层
1#
发表于 2011-12-5 11:19:23 |只看该作者 |倒序浏览
本帖最后由 小米 于 2017-6-17 13:48 编辑

客户在编写公式及使用的过程中常常会出现一些问题,本章节我们把一些出现频率较高的问题集中起来,以Q & A的形式整理出来,以供大家参考。

Q1:为什么公式的开平仓不受条件的限制,每一个K线上都有开、平仓的动作?
A1:在if( ......)条件判断语句的后面不小心加上分号,就会导致后面的执行不受条件的控制了。注意一定要把if(......); 后面这里的“;”去掉。

Q2:自己建的公式没有编译,但在公式编辑器中不能编译啊,编译按钮是灰的,该怎么做?
A2:您只需要在公式代码中任意位置加入一个空格,然后再删掉这个空格,就可以进行编译了。这是因为该公式 以前被保存了过,如果代码没有被修改过,就不能触发进行校验保存的编译。

Q3: AverageFC和Average有什么区别?
A3: 您可以从以下三个方面了解此两类函数的区别:
1、Average和AverageFC都是内建的用户函数,目的都是用来求N个Bar以来的平均值,   您可以直接看到实现的代码。
2、AverageFC是指FastCalculate,即快速计算。当这两个函数的第二个参数,即N个Bar是常量时,使用AverageFC,提高计算效率。当N是不确定的变量时,则必须使用Average,否则会出现计算问题。
3、系统里面类似的用户函数还有Summation和SumamtionFC,Highest和HighestFC,Lowest和LowestFC等。

Q4:为什么出现最终目标文件编译错误?
A4:目前发现有以下几种情况会导致这个问题出现:
1、有中文字符的存在,特别是一些细节的不容易发现的中文标点符号。
1、公式管理器中存在未通过编译的,有严重逻辑错误的公式,需删掉这些有错误的公式。
2、用了一些C++的关键字来命名变量,比如switch,case,int,Public,protected,class,long,double....有好几百个,可以考虑加上一些前缀,比如My****,这样就可以了。

Q5:总是报“锁定编译目标文件超时”是什么原因?
A5:有以下可能:
1、已经打开的图表调用了技术指标或交易指令,并且行情更新较快,导致编译时覆盖旧文件失败。这个时候,您可以关闭先所有的图表窗体在试试看。
2、可能是公式的写法有问题,是系统现在还不能识别的错误。您可以另外写一个简单的公式看看能不能编译通过,如果能通过,那就证明是这个公式有问题。如果不是,那我也不知道具体原因。(您可以考虑导出您自己的公式,然后删掉安装目录下User目录下您所在用户名的formula,然后再复制一个干净的formula进去。)

Q6: 为什么已经设置了启动多帐户全自动交易,结果只有一个帐户进行了交易的动作?
A6:首先检查确认是否有关联多个交易帐户且这些帐户都处于联机状态。其次,查看多帐户设置里是否对所需交易的帐户均勾选上了。另外,查看公式代码里发出指令的函数,如果是使用A_sendorder所编写的公式,则不可以启动多帐户自动交易。您可以打开多个超级图表,调用同一个合约同一个公式策略,再分别关联不同的交易帐户进行自动交易即可。

Q7:同一品种不同超级图表上的交易指令是否相互作用?
A7:不会相互作用。现在即使同一个超级图表上,指令之间都不会相互作用的。

Q8:Time与CurrentTime的区别在于哪里?
A8:Time 是Bar数据的时间,在交易开拓者中,是以当前Bar所开始的那个时间做为bar的Time,每一个Bar上的time是确定且唯一的。如果是日线的Bar上,Time则是为0。 而CurrentTime则是电脑操作系统的时间,基本上与北京时间是接近一致的。

Q9:如何记录开仓价格?
A9:有多种方法可以尝试,下面例出几种方法以供参考:
1.        使用现有的系统函数:entryprice 、lastentryprice、 avgentryprice;
2.        声明一个序列变量,在开仓时,将开仓价格赋值给此序列变量,并将此值传递下来;
3.        可以使用全局变量记录下开仓价格,以备随时取用。




待续。。。。。。

Rank: 9Rank: 9Rank: 9

精华
0
UID
4790
积分
16241
帖子
401
主题
73
阅读权限
150
注册时间
2009-7-5
最后登录
2020-1-2
2#
发表于 2011-12-8 13:53:43 |只看该作者
账户数据中有现成的开仓均价,为什么不添加这样一个账户函数呢?

使用道具 举报

Rank: 2

精华
0
UID
98918
积分
87
帖子
27
主题
12
阅读权限
30
注册时间
2012-2-20
最后登录
2021-6-8
3#
发表于 2012-3-1 19:06:46 |只看该作者
我新安装的开拓者就不能编译最终为目标,这是怎么回事啊?

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
0
UID
56950
积分
24952
帖子
285
主题
53
阅读权限
200
注册时间
2011-8-1
最后登录
2022-8-23
4#
发表于 2012-3-25 13:49:49 |只看该作者
回复 3# tiansuan


    下面会有提示错误号吧
如果实在找不到错误问题,可以尝试先导出到文本再导入进公式编译一次

使用道具 举报

Rank: 1

精华
0
UID
99516
积分
37
帖子
19
主题
5
阅读权限
10
注册时间
2012-2-22
最后登录
2012-8-9
5#
发表于 2012-3-30 10:59:17 |只看该作者
开拓者程序中的实数能扩大到千分位吗?只到百分位不够精细哈

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
3
UID
5
积分
26584
帖子
12686
主题
49
阅读权限
200
注册时间
2007-7-20
最后登录
2021-11-3
6#
发表于 2012-3-30 11:21:04 |只看该作者
回复 5# yejiang111


    参与计算的小位可达六位数。只不过输出后的显示只有两位。

使用道具 举报

Rank: 2

精华
0
UID
7124
积分
58
帖子
27
主题
9
阅读权限
30
注册时间
2010-3-4
最后登录
2019-3-24
7#
发表于 2012-5-19 17:53:37 |只看该作者
新手起步,慢慢学习中

使用道具 举报

Rank: 1

精华
0
UID
91635
积分
46
帖子
28
主题
5
阅读权限
10
注册时间
2012-1-7
最后登录
2013-10-6
8#
发表于 2012-7-10 19:54:14 |只看该作者
我想实现这样的功能:系统开盘价与昨日结算价的比较,即开盘涨跌幅度,但Q_SETTLEPRICE不能用于历史回溯测试,还有别的办法吗?????

使用道具 举报

Rank: 1

精华
0
UID
91635
积分
46
帖子
28
主题
5
阅读权限
10
注册时间
2012-1-7
最后登录
2013-10-6
9#
发表于 2012-7-10 20:07:30 |只看该作者
如何在5分钟周期中调用AVGTRUERANGE函数,返回日线周期的ATR值?能实现这样的功能吗?

使用道具 举报

Rank: 1

精华
0
UID
91635
积分
46
帖子
28
主题
5
阅读权限
10
注册时间
2012-1-7
最后登录
2013-10-6
10#
发表于 2012-7-12 11:52:37 |只看该作者
怎么这么冷清呀?

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

bottom

静态版|手机版|联系我们|交易开拓者 ( 粤ICP备07044698   

GMT+8, 2024-4-20 11:42

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部