我正在使用php的traderlibrary。
我使用trader_bbands()
函数
$bBand = trader_bbands( $NumberArray,
25,
TRADER_REAL_MIN,
TRADER_REAL_MIN,
TRADER_MA_TYPE_EMA
);
它返回三个数组。
$bBand[0]; // upper-edge of the Bollinger Band ( an upline )
$bBand[1]; // central line the Bollinger Bands surround ( a moving average )
$bBand[2]; // lower-edge of the Bollinger Band ( a downline )
我原来的
$NumberArray
值都在2000.0
$bBand[1]
是简单的移动平均数,所以它返回2000左右的数字。但是
$bBand[0]
和$bBand[2]
返回值如下所示(引用自
var_dump()
的示例) double(3.1325286910105E+38)
[105] =>
double(3.1907365920756E+38)
[106] =>
double(3.1907365920756E+38)
[107] =>
double(3.1740850650235E+38)
[108] =>
double(3.1498571396175E+38)
问题1:这个数组是什么意思?
我对布林格带的期望是在2000+α或2000-α左右排列。
最佳答案
1:1。作为第一步,查看trader_bbands()
上的php库文档。发布MCVE
-与-a-DataSET
一起发布,以允许对公共DataSET
3进行验证。比较引用实现以证明Trader
php-library实现的{pass fail}-状态。
广告步骤1.:array trader_bbands ( array $real [, integer $timePeriod [, float $nbDevUp [, float $nbDevDn [, integer $mAType ]]]] )
让我们同意设置$nbDevUp = 1.0
,而不是技术上最小的float TRADER_REAL_MIN
让我们同意设置$nbDevDn = 1.0
。
让我们同意设置$timePeriod = 7
让我们同意设置$real
$real = array(
0 => 2000.0,
1 => 2001.0,
2 => 2002.0,
3 => 2003.0,
4 => 2004.0,
5 => 2005.0,
6 => 2006.0,
);
期望:
与
.std()
-sigma相关的值应该成为一种公平的方式,而不是不知道关于Trader
微积分的trader_bbands()
php-library模型的所有实现细节,特别是在TRADER_MA_TYPE_EMA
模式中,缺少模型中使用的指数加权细节。尽管如此
a)应该确定
$bBand[0][i] - $bBand[1][i]
=$bBand[1][i] - $bBand[2][i]
之间的所有差异b)在
2.0
方法中使用的指数值应该有一个值,记录在.ewma()
php-library的某个地方。好吧,当然,如果没有这样的值,可以使用暴力反向搜索所使用的匹配值,但是证明
Trader
值是在$bBand[1]
php-library中以与使用Trader
的常见量化实践兼容的方式计算的,这可能是一种相当低效的方法。