IMOEX2 вялый. ПИК +10%, нефть дешевеет

cover

Давайте по цифрам — середина торгов пятницы, 12 июня.

IMOEX2 (дополнительная сессия): 2 514,5 пункта, +0,05% (+1,15 пт). Открылись на 2 514,09, диапазон узкий — 2 510–2 517. Рынок спит.

Основной IMOEX вчера закрылся на 2 515,33 (−0,22%). За неделю просадка почти −2%, за месяц −6,7%. Тенденция невесёлая, но без паники.

Лидеры роста и падения

В плюсе:
• ПИК (PIKK) — +10,03% — аномалия, возможно реакция на корпоративные новости.
• Вуш Холдинг (WUSH) — +4,59%.
• Полюс (PLZL) — +2,35%. Золото дорожает до 4 200$ за унцию (+2,1%), тянет добытчиков.
• Ozon (OZON) — +1,91%.
• НЛМК (NLMK) — +1,31%.

В минусе:
• Соллерс (SVAV) — −4,66%.
• Русал (RUAL) — −3,52% — алюминий под давлением.
• Русснефть (RNFT) — −3,56%.
• Самолёт (SMLT) — −3,24%.
• Газпром (GAZP) — −0,79%.

Сырьё и валюта

Нефть Brent — 88,74$ за баррель (−1,81%). WTI — 86,26$ (−1,65%). Нефть дешевеет на фоне макростатистики из США и Китая. Золото тем временем обновляет максимумы — 4 200$ за унцию (+2,1%).

Курс рубля:
• Доллар ЦБ РФ — 71,91₽.
• Рынок USD/RUB — 72,39₽ (+0,21%).
• Евро ЦБ РФ — 82,97₽.

Рубль слабеет символически — налоговый период пока держит. На фоне падающей нефти могло быть хуже.

Резюме

IMOEX2 топчется на месте. Активность низкая, объёмы небольшие. Из интересного — аномальный рост ПИК и золото, пробивающее потолок. Если нефть продолжит дешеветь, давление на рубль и индекс усилится к закрытию.

Следим. Обновлю вечером.

); if ( in_array( $cat_slug_lc, $section_aliases, true ) ) { continue; } if ( $section_label && $cat_name_lc === $section_label ) { continue; } return $category; } return null; } function bezpafosafin_get_portfolio_metrics() { $dataset = bezpafosafin_get_portfolio_dataset(); // Get real total_change from DB (same source as hero block #150) global $wpdb; $alex = $wpdb->get_row("SELECT total_change, total_value, total_invested FROM wp_bpf_reader_portfolios WHERE alias = 'Алекс' AND status = 'approved' LIMIT 1"); if ( $alex && $alex->total_invested > 0 ) { $total_change = ($alex->total_value - $alex->total_invested) / $alex->total_invested * 100; $total_change_fmt = number_format( $total_change, 2, ',', '' ) . '%'; } elseif ( $alex ) { $total_change_fmt = number_format( $alex->total_change, 2, ',', '' ) . '%'; } else { $total_change_fmt = '—'; } if ( $dataset ) { // col4 = "Изм за неделю %" from TSV (index 4 in data row) $week_change = $dataset['week_change'] ?? '—'; return array( array( 'label' => 'Общая стоимость', 'value' => $dataset['total'], ), array( 'label' => 'Доходность с начала', 'value' => $total_change_fmt, ), array( 'label' => 'За неделю', 'value' => $week_change, ), array( 'label' => 'Позиций', 'value' => (string) count( $dataset['rows'] ), ), array( 'label' => 'Индекс ММВБ', 'value' => $dataset['mmvb'], ), ); } return array( array( 'label' => 'Общая стоимость', 'value' => '3 420 000 ₽', ), array( 'label' => 'Доходность с начала', 'value' => $total_change_fmt, ), array( 'label' => 'За неделю', 'value' => '—', ), array( 'label' => 'Позиций', 'value' => '4', ), array( 'label' => 'Индекс ММВБ', 'value' => '2 765,33', ), ); } function bezpafosafin_get_portfolio_table() { $dataset = bezpafosafin_get_portfolio_dataset(); if ( $dataset ) { return $dataset['rows']; } return array( array( 'name' => 'Сбер', 'total_value' => '117 600 ₽', 'current_price' => '336 ₽', 'quantity' => '350', 'change' => '+23.9%', ), array( 'name' => 'Новатэк', 'total_value' => '307 020 ₽', 'current_price' => '7 310 ₽', 'quantity' => '42', 'change' => '+18.3%', ), array( 'name' => 'НорНикель', 'total_value' => '741 000 ₽', 'current_price' => '154,00', 'quantity' => '0.12', 'change' => '+33.6%', ), array( 'name' => 'Яндекс', 'total_value' => '121 440 ₽', 'current_price' => '2 481', 'quantity' => '120', 'change' => '+3.2%', ), ); } if ( ! defined( 'BPF_PORTFOLIO_CSV_URL' ) ) { define( 'BPF_PORTFOLIO_CSV_URL', 'https://docs.google.com/spreadsheets/d/1qijGn06S3G2qEBrkY4khn18zrgNX980uqkMrryFaIGM/export?format=tsv&gid=0' ); } if ( ! defined( 'BPF_PORTFOLIO_CSV_PATH' ) ) { define( 'BPF_PORTFOLIO_CSV_PATH', '' ); } function bezpafosafin_get_portfolio_csv_source() { $url = defined( 'BPF_PORTFOLIO_CSV_URL' ) ? BPF_PORTFOLIO_CSV_URL : ''; $url = apply_filters( 'bezpafosafin_portfolio_csv_url', $url ); if ( ! empty( $url ) ) { return $url; } $path = defined( 'BPF_PORTFOLIO_CSV_PATH' ) ? BPF_PORTFOLIO_CSV_PATH : ''; return apply_filters( 'bezpafosafin_portfolio_csv_path', $path ); } function bezpafosafin_csv_value( $value ) { $value = (string) $value; $value = str_replace( "\xC2\xA0", ' ', $value ); $value = trim( $value ); return $value === '' ? '—' : $value; } function bezpafosafin_looks_percent( $value ) { $value = bezpafosafin_csv_value( $value ); return false !== strpos( $value, '%' ) || false !== strpos( $value, '#DIV' ); } function bezpafosafin_looks_number( $value ) { $value = bezpafosafin_csv_value( $value ); if ( '—' === $value ) { return false; } return 1 === preg_match( '/^-?[0-9\s.,]+$/u', $value ); } function bezpafosafin_detect_asset_offset( $data, $asset_count = 6 ) { $best_offset = 3; $best_score = -1; for ( $offset = 2; $offset <= 10; $offset++ ) { $score = 0; for ( $i = 0; $i < $asset_count; $i++ ) { $base = $offset + ( $i * 4 ); $v = $data[ $base ] ?? ''; $c = $data[ $base + 1 ] ?? ''; $p = $data[ $base + 2 ] ?? ''; $q = $data[ $base + 3 ] ?? ''; if ( bezpafosafin_looks_number( $v ) ) { $score++; } if ( bezpafosafin_looks_percent( $c ) ) { $score++; } if ( bezpafosafin_looks_number( $p ) ) { $score++; } if ( bezpafosafin_looks_number( $q ) && ! bezpafosafin_looks_percent( $q ) ) { $score++; } } if ( $score > $best_score ) { $best_score = $score; $best_offset = $offset; } } return $best_offset; } function bezpafosafin_parse_csv_rows( $content ) { if ( ! is_string( $content ) ||