В каком состоянии использовать ленты Боллинджера?

Мне нужно активировать заказ на продажу, когда актив касается верхней строки.
Мне нужно активировать заказ на покупку, когда актив касается нижней границы.

Глядя на график, я знаю подходящий момент для запуска этих заказов, но в программировании, которое я обернул, я не знаю, какие критерии использовать, чтобы узнать, коснулся ли актив какой-либо из линий.

введите описание изображения здесь

Код:

    $arr = array();
foreach ($candles as $c) {
$arr[] = $c[4]; // Close price
}

$result = trader_bbands ($arr, 21, 2.0, 2.0);
$higher = end($result[0]);
$medium = end($result[1]);
$bottom = end($result[2]);

echo '<pre>';
var_dump($higher, $medium, $bottom, $result);
echo '</pre>';
die();

Мое возвращение таково:

float(11343.933)
float(11202.999)
float(11062.065)

С помощью этой функции я смог извлечь цену актива для каждой строки BOLL последней свечи, я просто не знаю, как узнать, коснулся ли он линии, можете ли вы мне помочь?

0

Решение

Учитывая мини-фрагмент кода, решение состоит в том, чтобы оценить это:

// DEFINES:
$PRICE_INDEX_OPEN = 1;
$PRICE_INDEX_HIGH = 2;
$PRICE_INDEX_LOW  = 3;
$PRICE_INDEX_CLOSE= 4;

// A BUY-ENTRY_______________________________________________________LONG?
if ( end($candles)[$PRICE_INDEX_LOW] <= $bottom ) { // .......... GO LONG
...
}

// A SELL-ENTRY______________________________________________________SHORT?
if ( end($candles)[$PRICE_INDEX_HIGH] >= $higher ) { // ......... GO SHORT
...
}
1

Другие решения

Вам нужно использовать «высокие» и «низкие» цены, которые, я полагаю, у вас есть в $candlesи используйте их в следующем:

df[sell] = np.where( ( df['high'] >= df[upper BB] ), -1, 0 )

-1 — указать начатую короткую позицию.

0 — ничего не делать, так как критерии не соответствуют

1