Я использую библиотеку трейдеров 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 ) .