Войти
Главная / Data science в трейдинге / 📊 Анализ недельной статистики в Pine Script: Пошаговый разбор
Хотите зарабатывать на трейдинге?

Подписывайтесь на наш телеграм-канал для трейдеров — с глубокой аналитикой и рабочими стратегиями

Подписаться

Как собрать свой журнал для тестирования стратегии? Заберите бесплатный гайд

Гайд от нашей команды поможет вам систематизировать торговлю и принимать взвешенные решения

Подтвердите согласие

📊 Анализ недельной статистики в Pine Script: Пошаговый разбор

Этот скрипт на Pine Script версии 6 представляет собой индикатор для анализа статистики свечей на основе дней недели. Давайте разберем код шаг за шагом и оценим его полезность в трейдинге.


🛠 1. Назначение скрипта

Скрипт анализирует свечи по дням недели и вычисляет:

  • Минимальный и максимальный диапазон свечей (High - Low).
  • Среднюю, минимальную и максимальную разницу между ценами открытия и закрытия (Open - Close).
  • Общее количество свечей для каждого дня недели.
  • Выводит результаты в удобной таблице в окне индикатора.

🛠 2. Основные настройки

Сначала добавляется возможность выбора типа анализа:

  • Both — анализ всех свечей.
  • Bearish — анализ только медвежьих свечей.
  • Bullish — анализ только бычьих свечей.
analyze_mode = input.string(
    title="Analysis Mode",
    defval="Both",
    options=["Both", "Bearish", "Bullish"],
    tooltip="Select which type of candles to analyze:\n- Both: Analyze all candles\n- Bearish: Only analyze bearish candles\n- Bullish: Only analyze bullish candles"
)

🛠 3. Подготовка массивов для статистики

Для хранения данных каждого дня недели создаются массивы:

  • min_ranges, max_ranges — минимальный и максимальный диапазон свечей.
  • total_open_close_diff, total_high_low_diff — суммарные разницы Open - Close и High - Low.
  • max_open_close_diff, min_open_close_diff — максимальная и минимальная разница Open - Close.
  • max_high_low_diff, min_high_low_diff — максимальная и минимальная разница High - Low.
  • counts — количество свечей для каждого дня недели.
var float[] min_ranges = array.new_float(7, na)
var float[] max_ranges = array.new_float(7, na)
var float[] total_open_close_diff = array.new_float(7, na)
var float[] total_high_low_diff = array.new_float(7, na)
var float[] max_open_close_diff = array.new_float(7, na)
var float[] max_high_low_diff = array.new_float(7, na)
var float[] min_open_close_diff = array.new_float(7, na)
var float[] min_high_low_diff = array.new_float(7, na)
var int[] counts = array.new_int(7, 0)

🛠 4. Фильтрация свечей

Свечи фильтруются на основе выбранного режима анализа. Например:

  • Если выбран режим Bearish, то учитываются только свечи, где Close < Open.
is_candle_valid = (
    (analyze_mode == "Both") or
    (analyze_mode == "Bearish" and close < open) or
    (analyze_mode == "Bullish" and close > open)
)

🛠 5. Обновление статистики

Для каждой свечи обновляются значения в соответствующих массивах. Например:

  • Минимальный и максимальный диапазон (High - Low).
  • Суммарная, минимальная и максимальная разница Open - Close.
if is_candle_valid and day_index >= 0 and day_index <= 6
    array.set(min_ranges, day_index, na(array.get(min_ranges, day_index)) ? current_range : math.min(array.get(min_ranges, day_index), current_range))
    array.set(max_ranges, day_index, na(array.get(max_ranges, day_index)) ? current_range : math.max(array.get(max_ranges, day_index), current_range))
    array.set(total_open_close_diff, day_index, na(array.get(total_open_close_diff, day_index)) ? open_close_diff : array.get(total_open_close_diff, day_index) + open_close_diff)
    array.set(max_open_close_diff, day_index, na(array.get(max_open_close_diff, day_index)) ? open_close_diff : math.max(array.get(max_open_close_diff, day_index), open_close_diff))
    array.set(min_open_close_diff, day_index, na(array.get(min_open_close_diff, day_index)) ? open_close_diff : math.min(array.get(min_open_close_diff, day_index), open_close_diff))
    array.set(counts, day_index, array.get(counts, day_index) + 1)

🛠 6. Вычисление средних значений

После сбора данных для каждого дня недели вычисляются средние значения:

  • Средняя разница Open - Close.
  • Средняя разница High - Low.
for i = 0 to 6
    count = array.get(counts, i)
    avg_oc_diff = count > 0 ? array.get(total_open_close_diff, i) / count : na
    avg_hl_diff = count > 0 ? array.get(total_high_low_diff, i) / count : na
    array.set(average_open_close_diffs, i, avg_oc_diff)
    array.set(average_high_low_diffs, i, avg_hl_diff)

🛠 7. Построение таблицы

Результаты отображаются в таблице, где для каждого дня недели выводятся:

  1. Минимальный и максимальный диапазон.
  2. Средняя разница Open - Close и High - Low.
  3. Максимальная и минимальная разница Open - Close и High - Low.
  4. Общее количество свечей.
var table weekly_table = table.new(position.top_center, 10, 8, border_width=1, border_color=color.gray)

if barstate.islast
    // Заголовки таблицы
    table.cell(weekly_table, 0, 0, "Day", bgcolor=color.new(color.blue, 90), text_color=color.white)
    table.cell(weekly_table, 0, 1, "Min Range", bgcolor=color.new(color.blue, 90), text_color=color.white)
    table.cell(weekly_table, 0, 2, "Max Range", bgcolor=color.new(color.blue, 90), text_color=color.white)
    // Заполнение таблицы данными
    for i = 0 to 6
        table.cell(weekly_table, i + 1, 0, array.get(day_labels, i), bgcolor=color.new(color.green, 90), text_color=color.white)
        table.cell(weekly_table, i + 1, 1, str.tostring(array.get(min_ranges, i), "#.##"), bgcolor=color.new(color.green, 80), text_color=color.white)

📈 Польза сбора такой статистики

  1. Определение паттернов поведения рынка:
    • Сравнение диапазонов свечей позволяет определить, в какие дни недели рынок наиболее активен.
    • Помогает найти дни с высокими или низкими изменениями цены.
  2. Планирование сделок:
    • Зная статистику, можно выбрать оптимальные дни для входа в рынок.
    • Например, если понедельники обычно имеют большие диапазоны, это может быть хорошей возможностью для трейдинга.
  3. Улучшение риск-менеджмента:
    • Зная максимальные и минимальные разницы, вы можете точнее устанавливать стоп-лоссы и тейк-профиты.
  4. Понимание рыночной волатильности:
    • Анализ медвежьих и бычьих свечей отдельно позволяет увидеть, как часто рынок подвержен восходящим или нисходящим трендам в определенные дни.

🎯 Вывод

Этот индикатор полезен для трейдеров, которые хотят углубленно анализировать поведение рынка по дням недели. Используя его, можно лучше понимать рыночные паттерны, оптимизировать торговые стратегии и улучшить управление рисками.

Хотите разбираться в рынках и зарабатывать на них при любых условиях?

Подписывайтесь на наш Telegram-канал о финансах и Data Science в трейдинге:
– Делаем глубокую аналитику
– Тестируем и разрабатываем торговые стратегии
– Кодим индикаторы и алгоритмы
– Собираем базу знаний для трейдеров

Подписаться
Хотите разбираться в рынках и зарабатывать на них при любых условиях?

Подписывайтесь на наш Telegram-канал о финансах и Data Science в трейдинге:
– Делаем глубокую аналитику
– Тестируем и разрабатываем торговые стратегии
– Кодим индикаторы и алгоритмы
– Собираем базу знаний для трейдеров

Подписаться

Научитесь читать графики всего за 15 минут

Заберите простой мини-гайд для быстрого старта в трейдинге. Идеально для новичков

Подтвердите согласие
Что такое проп трейдинг и как на нем зарабатывают
Многие трейдеры слышали про проп трейдинг, но не все понимают, что это на самом деле. Этот формат торговли становится все популярнее,...
Читать далее
Ошибки, которые делают трейдеры: личный опыт трейдера Элисы
Привет! Меня зовут Элиса, я трейдер в команде криптофонда Trade2good. Ошибки в торговле — это то, через что проходит каждый....
Читать далее
Аналитика ETHUSDT на новую неделю (#9)
Цена продолжает держаться в рамках позапрошлой недели, покупатели победили, но кому это интересно, когда цена лежит во флэте. Торгуем на...
Читать далее