Я использую библиотеку трейдеров PHP.
Я использую 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)
Q1: Что означает этот массив?
То, что я ожидаю от Bollinger Band, составляет около 2000 + α, или 2000 – α.
A1:
1. Просмотрите документацию php-библиотеки на trader_bbands()
в качестве первого шага.
2. Опубликуйте MCVE
allogether-with-a- DataSET
чтобы разрешить проверку против общего DataSET
3. Сравните эталонные реализации, чтобы доказать {PASS | FAIL} -статегия реализации php-библиотеки Trader
.
Шаг объявления:
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 .std()
-sigma, должны быть справедливыми, независимо от того, чтобы не знать всех подробностей реализации модели php-библиотеки Trader
trader_bbands()
, особенно в режиме TRADER_MA_TYPE_EMA
, без использования экспоненциально-взвешенных данных внутри их модели. тем не менее
A) Там должны быть уверены, что все различия
между $bBand[0][i] - $bBand[1][i]
== $bBand[1][i] - $bBand[2][i]
будет == 2.0
B) Должно быть значение того, какое значение экспоненты использовалось в .ewma()
зарегистрированном где-то в php-библиотеке Trader
.
Ну, конечно, без такой ценности можно прибегнуть к обратному поиску грубой силы для используемого совпадающего значения, но это может быть довольно неэффективный метод доказательства того, что значения $bBand[1]
вычисляются в php-библиотеке Trader
в способ, совместимый с общей практикой Quant-use
ewmaEXP = 2.0 / ( timePeriod + 1 )
.