Вопрос по библиотеке Trader

rafaello

Новичок
Здравствуйте.
Прошу оказать помощь-консультацию в следующем вопросе.
Имеется подключенная библиотека http://php.net/manual/ru/book.trader.php , также подключена реализация API взаимодействия с биржей https://github.com/jaggedsoft/php-binance-api
Задача. Необходимо, применив функцию trader_bbands(); выставить соответсвующий ордер на бирже, или на покупку или на продажу. Согласно техническому индикатору полос Боллинджера, если цена пересекла верхнюю линию - то на продажу, а если нижнюю - то на покупку.
В интернете обнаружил некоторую информацию по этому вопросу
https://stackoverflow.com/questions/40866649/what-is-the-meaning-of-the-values-returned-from-trader-bbands
вот также вытащил пример применения функции trader_bbands();
https://github.com/joeldg/bowhead/blob/master/app/Util/Indicators.php#L157
А вот и сама функция trader_bbands(); http://php.net/manual/ru/function.trader-bbands.php
Возможно, кто то сталкивался с подобным? Пожалуйста, поясните:
1. Как формируется массив входных данных $real ? Вот в этом примере https://stackoverflow.com/questions/40866649/what-is-the-meaning-of-the-values-returned-from-trader-bbands указано вот так
PHP:
$real = array(0 => 2000.0, 1 => 2001.0, 2 => 2002.0, 3 => 2003.0, 4 => 2004.0, 5 => 2005.0, 6 => 2006.0);
Что означают значения этого массива и почему их 7 штук?
2. На что влияют значения $nbDevUp и $nbDevDn ?
Могу предположить, что массив $real формируется не в единичный момент времени, а это значит, что надо тянуть данные с биржи по API и сохранять их в базу данных. Также вопрос, как часто это делать?
 

rafaello

Новичок
методом тыка изучил данную функцию
PHP:
trader_bbands($real, $timePeriod, TRADER_REAL_MAX, TRADER_REAL_MAX, 0);
если ввожу
PHP:
$real = Array ( [0] => 0.00000641 [1] => 0.00000640 [2] => 0.00000639 [3] => 0.00000637 [4] => 0.00000637 [5] => 0.00000637 [6] => 0.00000639 [7] => 0.00000638 [8] => 0.00000638 [9] => 0.00000638 [10] => 0.00000643 [11] => 0.00000643 [12] => 0.00000643 [13] => 0.00000643 [14] => 0.00000644 [15] => 0.00000643 [16] => 0.00000641 [17] => 0.00000641 )
то на выходе $data = trader_bbands() выдает
PHP:
Array (
[0] => Array (
[1] => 6.405E-6 [2] => 6.395E-6 [3] => 6.38E-6 [4] => 6.37E-6 [5] => 6.37E-6 [6] => 6.38E-6 [7] => 6.385E-6 [8] => 6.38E-6 [9] => 6.38E-6 [10] => 6.405E-6 [11] => 6.43E-6 [12] => 6.43E-6 [13] => 6.43E-6 [14] => 6.435E-6 [15] => 6.435E-6 [16] => 6.42E-6 [17] => 6.41E-6 )
[1] => Array (
[1] => 6.405E-6 [2] => 6.395E-6 [3] => 6.38E-6 [4] => 6.37E-6 [5] => 6.37E-6 [6] => 6.38E-6 [7] => 6.385E-6 [8] => 6.38E-6 [9] => 6.38E-6 [10] => 6.405E-6 [11] => 6.43E-6 [12] => 6.43E-6 [13] => 6.43E-6 [14] => 6.435E-6 [15] => 6.435E-6 [16] => 6.42E-6 [17] => 6.41E-6 )
[2] => Array (
[1] => 6.405E-6 [2] => 6.395E-6 [3] => 6.38E-6 [4] => 6.37E-6 [5] => 6.37E-6 [6] => 6.38E-6 [7] => 6.385E-6 [8] => 6.38E-6 [9] => 6.38E-6 [10] => 6.405E-6 [11] => 6.43E-6 [12] => 6.43E-6 [13] => 6.43E-6 [14] => 6.435E-6 [15] => 6.435E-6 [16] => 6.42E-6 [17] => 6.41E-6 ) )
а если я предварительно умножаю каждый элемент вводимого массива на 1000000
PHP:
$real = Array ( [0] => 6.4 [1] => 6.39 [2] => 6.37 [3] => 6.37 [4] => 6.37 [5] => 6.39 [6] => 6.38 [7] => 6.38 [8] => 6.38 [9] => 6.43 [10] => 6.43 [11] => 6.43 [12] => 6.43 [13] => 6.44 [14] => 6.43 [15] => 6.41 [16] => 6.41 [17] => 6.46 )
то на выходе $data = trader_bbands() выдает
PHP:
Array (
[0] => Array (
[1] => 1.5000000000249E+35 [2] => 2.9999999999432E+35 [3] => 6.37 [4] => 6.37 [5] => 2.9999999999432E+35 [6] => 1.5000000000249E+35 [7] => 6.38 [8] => 6.38 [9] => 7.499999999954E+35 [10] => 6.43 [11] => 6.43 [12] => 6.43 [13] => 1.4999999995986E+35 [14] => 1.4999999995986E+35 [15] => 2.9999999997301E+35 [16] => 6.41 [17] => 7.4999999999113E+35 )
[1] => Array (
[1] => 6.395 [2] => 6.38 [3] => 6.37 [4] => 6.37 [5] => 6.38 [6] => 6.385 [7] => 6.38 [8] => 6.38 [9] => 6.405 [10] => 6.43 [11] => 6.43 [12] => 6.43 [13] => 6.435 [14] => 6.435 [15] => 6.42 [16] => 6.41 [17] => 6.435 )
[2] => Array (
[1] => -1.5000000000249E+35 [2] => -2.9999999999432E+35 [3] => 6.37 [4] => 6.37 [5] => -2.9999999999432E+35 [6] => -1.5000000000249E+35 [7] => 6.38 [8] => 6.38 [9] => -7.499999999954E+35 [10] => 6.43 [11] => 6.43 [12] => 6.43 [13] => -1.4999999995986E+35 [14] => -1.4999999995986E+35 [15] => -2.9999999997301E+35 [16] => 6.41 [17] => -7.4999999999113E+35 ) )
где $data[0] - это верхняя линия боллинджера, а $data[2] - нижняя линия боллинджера.
Подскажите, как избавиться от такого формата 1.5000000000249E+35 , чтобы на выходе были понятные значения?
 

rafaello

Новичок
ура!!!! сам разобрался... дело не в форматиовании вообще. Вот здесь решение может кому пригодится в будущем.
Вобщем, проблема была в том, что надо заменить константы TRADER_REAL_MIN и TRADER_REAL_MAX на цифру 1
 
Сверху