追势者 发表于 2010-5-17 16:07:01

求直盘转交叉盘的数据转换公式

现在还在搞外汇的历史日线数据。搞到一些直盘的的历史数据。想通过数据转换得到交叉盘的历史数据 。自己写了算法,其中的算法输出数据不对。恳请各位帮忙 。
算法1: 乘法: 例如 从 audusd 和 usdcad 计算出 audcad 货币对的历史日线数据,算法如下:
               $arr[$i]['open'] = $val['open']*$s_curr['open'];
                $arr[$i]['high'] = $val['high']*$s_curr['high'];
                $arr[$i]['low'] = $val['low']*$s_curr['low'];
                $arr[$i]['close'] = $val['close']*$s_curr['close'];
上面 $val 是 audusd 的值,   $s_curr 是 usdcad .这个算法出的数据没有问题。问题在算法2:

算法2: 除法: 例如从 audusd 和 nzdusd 计算出 audnzd, 算法如下:
               $arr[$i]['open'] = $val['open']/$s_curr['open'];
                $arr[$i]['high'] = $val['high']/$s_curr['low'];
                $arr[$i]['low'] = $val['low']/$s_curr['high'];
                $arr[$i]['close'] = $val['close']/$s_curr['close'];
上面 $val 是 audusd 的值,   $s_curr 是 nzdusd的值。 通过这个算法出的值从 K 线上面明显有问题。毛刺多,不像真实数据。
请大家帮忙看看是什么问题 ? 非常感谢 。.

coollyw 发表于 2010-5-17 16:12:09

这个open和close是相同时间的,high和low肯定不是相同时间的,这咋对呢。。。

追势者 发表于 2010-5-17 16:17:12

原帖由 coollyw 于 2010-5-17 16:12 发表 http://www.forex-town.com/images/common/back.gif
这个open和close是相同时间的,high和low肯定不是相同时间的,这咋对呢。。。
是这个道理,应该如何修改 ?请教高人 。

coollyw 发表于 2010-5-17 16:19:50

原帖由 追势者 于 2010-5-17 16:17 发表 http://forex-town.com/images/common/back.gif

是这个道理,应该如何修改 ?请教高人 。

基本没法修改。。。
你只能得到open,close的数据,因为你的历史数据肯定不会是每个时间点都有的,你要找到一个货币high和low的时候的时间,然后根据时间来查另一个货币相应报价才行。

coollyw 发表于 2010-5-17 16:31:06

另外,叉盘的high和low也不会是直盘的一个high/low去和另一个直盘相对时间换算得到的。
你现在high1*high2和low1*low2得到的是一个叉盘最大,最小值的范围,但是叉盘的high和low应该是两数乘积最大和最小的时候。所以是无解。你应该直接找叉盘的数据。

追势者 发表于 2010-5-17 16:43:14

原帖由 coollyw 于 2010-5-17 16:31 发表 http://www.forex-town.com/images/common/back.gif
另外,叉盘的high和low也不会是直盘的一个high/low去和另一个直盘相对时间换算得到的。
你现在high1*high2和low1*low2得到的是一个叉盘最大,最小值的范围,但是叉盘的high和low应该是两数乘积最大和最小的时候。所 ...
收到,非常感谢 ! 不过我的历史数据主要是用于周线和月线,我就用 open, close 好了。多谢指点迷津 !

赤脚 发表于 2010-5-17 18:30:07

楼主用的不是MT4?
怎么我好像没用过这类编程语言一样

追势者 发表于 2010-5-30 18:27:16

这个是我自己的程序,同看盘工具和交易工具没有关系。 这个开发语言是 php .

原帖由 赤脚 于 2010-5-17 18:30 发表 http://www.forex-town.com/images/common/back.gif
楼主用的不是MT4?
怎么我好像没用过这类编程语言一样
页: [1]
查看完整版本: 求直盘转交叉盘的数据转换公式