求直盘转交叉盘的数据转换公式
现在还在搞外汇的历史日线数据。搞到一些直盘的的历史数据。想通过数据转换得到交叉盘的历史数据 。自己写了算法,其中的算法输出数据不对。恳请各位帮忙 。算法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 线上面明显有问题。毛刺多,不像真实数据。
请大家帮忙看看是什么问题 ? 非常感谢 。. 这个open和close是相同时间的,high和low肯定不是相同时间的,这咋对呢。。。 原帖由 coollyw 于 2010-5-17 16:12 发表 http://www.forex-town.com/images/common/back.gif
这个open和close是相同时间的,high和low肯定不是相同时间的,这咋对呢。。。
是这个道理,应该如何修改 ?请教高人 。 原帖由 追势者 于 2010-5-17 16:17 发表 http://forex-town.com/images/common/back.gif
是这个道理,应该如何修改 ?请教高人 。
基本没法修改。。。
你只能得到open,close的数据,因为你的历史数据肯定不会是每个时间点都有的,你要找到一个货币high和low的时候的时间,然后根据时间来查另一个货币相应报价才行。 另外,叉盘的high和low也不会是直盘的一个high/low去和另一个直盘相对时间换算得到的。
你现在high1*high2和low1*low2得到的是一个叉盘最大,最小值的范围,但是叉盘的high和low应该是两数乘积最大和最小的时候。所以是无解。你应该直接找叉盘的数据。 原帖由 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 好了。多谢指点迷津 ! 楼主用的不是MT4?
怎么我好像没用过这类编程语言一样 这个是我自己的程序,同看盘工具和交易工具没有关系。 这个开发语言是 php .
原帖由 赤脚 于 2010-5-17 18:30 发表 http://www.forex-town.com/images/common/back.gif
楼主用的不是MT4?
怎么我好像没用过这类编程语言一样
页:
[1]