From d82fde71165b1cc9ed42a3bfb7cd196b2df92aaa Mon Sep 17 00:00:00 2001 From: Arity-T Date: Thu, 11 Dec 2025 16:47:30 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A3=D1=82=D0=BE=D1=87=D0=BD=D0=B8=D0=BB=20?= =?UTF-8?q?=D0=B7=D0=B0=D0=B4=D0=B0=D0=BD=D0=B8=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 2 +- data.ipynb | 445 +++++++++++++++++++++++++++++------------------------ 2 files changed, 247 insertions(+), 200 deletions(-) diff --git a/.gitignore b/.gitignore index 581f276..ad52b48 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ data build out.txt -result.csv \ No newline at end of file +*.csv \ No newline at end of file diff --git a/data.ipynb b/data.ipynb index 9e0ca72..a747e50 100644 --- a/data.ipynb +++ b/data.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 1, + "execution_count": 20, "id": "2acce44b", "metadata": {}, "outputs": [], @@ -12,7 +12,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 21, "id": "5ba70af7", "metadata": {}, "outputs": [ @@ -111,7 +111,7 @@ "7317758 0.410369 " ] }, - "execution_count": 14, + "execution_count": 21, "metadata": {}, "output_type": "execute_result" } @@ -124,8 +124,8 @@ }, { "cell_type": "code", - "execution_count": 19, - "id": "d4b22f3b", + "execution_count": 23, + "id": "3b320537", "metadata": {}, "outputs": [ { @@ -150,67 +150,190 @@ " \n", " \n", " Timestamp\n", - " Low\n", - " High\n", " Open\n", + " High\n", + " Low\n", " Close\n", + " Volume\n", + " Avg\n", " \n", " \n", " \n", " \n", - " 5078\n", - " 2025-11-26\n", - " 86304.0\n", - " 90646.0\n", - " 87331.0\n", - " 90477.0\n", + " 7317754\n", + " 2025-11-30 23:55:00+00:00\n", + " 90405.0\n", + " 90452.0\n", + " 90403.0\n", + " 90452.0\n", + " 0.531700\n", + " 90427.5\n", " \n", " \n", - " 5079\n", - " 2025-11-27\n", - " 90091.0\n", - " 91926.0\n", - " 90476.0\n", - " 91325.0\n", + " 7317755\n", + " 2025-11-30 23:56:00+00:00\n", + " 90452.0\n", + " 90481.0\n", + " 90420.0\n", + " 90420.0\n", + " 0.055547\n", + " 90450.5\n", " \n", " \n", - " 5080\n", - " 2025-11-28\n", - " 90233.0\n", - " 93091.0\n", - " 91326.0\n", - " 90913.0\n", + " 7317756\n", + " 2025-11-30 23:57:00+00:00\n", + " 90412.0\n", + " 90458.0\n", + " 90396.0\n", + " 90435.0\n", + " 0.301931\n", + " 90427.0\n", " \n", " \n", - " 5081\n", - " 2025-11-29\n", - " 90216.0\n", - " 91179.0\n", - " 90913.0\n", - " 90832.0\n", - " \n", - " \n", - " 5082\n", - " 2025-11-30\n", + " 7317757\n", + " 2025-11-30 23:58:00+00:00\n", + " 90428.0\n", + " 90428.0\n", + " 90362.0\n", + " 90362.0\n", + " 4.591653\n", + " 90395.0\n", + " \n", + " \n", + " 7317758\n", + " 2025-11-30 23:59:00+00:00\n", + " 90363.0\n", + " 90386.0\n", " 90362.0\n", - " 91969.0\n", - " 90832.0\n", " 90382.0\n", + " 0.410369\n", + " 90374.0\n", " \n", " \n", "\n", "" ], "text/plain": [ - " Timestamp Low High Open Close\n", - "5078 2025-11-26 86304.0 90646.0 87331.0 90477.0\n", - "5079 2025-11-27 90091.0 91926.0 90476.0 91325.0\n", - "5080 2025-11-28 90233.0 93091.0 91326.0 90913.0\n", - "5081 2025-11-29 90216.0 91179.0 90913.0 90832.0\n", - "5082 2025-11-30 90362.0 91969.0 90832.0 90382.0" + " Timestamp Open High Low Close \\\n", + "7317754 2025-11-30 23:55:00+00:00 90405.0 90452.0 90403.0 90452.0 \n", + "7317755 2025-11-30 23:56:00+00:00 90452.0 90481.0 90420.0 90420.0 \n", + "7317756 2025-11-30 23:57:00+00:00 90412.0 90458.0 90396.0 90435.0 \n", + "7317757 2025-11-30 23:58:00+00:00 90428.0 90428.0 90362.0 90362.0 \n", + "7317758 2025-11-30 23:59:00+00:00 90363.0 90386.0 90362.0 90382.0 \n", + "\n", + " Volume Avg \n", + "7317754 0.531700 90427.5 \n", + "7317755 0.055547 90450.5 \n", + "7317756 0.301931 90427.0 \n", + "7317757 4.591653 90395.0 \n", + "7317758 0.410369 90374.0 " ] }, - "execution_count": 19, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df['Avg'] = (df['Low'] + df['High']) / 2\n", + "df.tail()" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "id": "4b1cd63c", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
TimestampAvgOpenMinOpenMaxCloseMinCloseMax
50782025-11-2688057.30173686312.090574.086323.090574.0
50792025-11-2791245.09270890126.091888.090126.091925.0
50802025-11-2891324.30868190255.092970.090283.092966.0
50812025-11-2990746.47951490265.091158.090279.091179.0
50822025-11-3091187.35625090363.091940.090362.091940.0
\n", + "
" + ], + "text/plain": [ + " Timestamp Avg OpenMin OpenMax CloseMin CloseMax\n", + "5078 2025-11-26 88057.301736 86312.0 90574.0 86323.0 90574.0\n", + "5079 2025-11-27 91245.092708 90126.0 91888.0 90126.0 91925.0\n", + "5080 2025-11-28 91324.308681 90255.0 92970.0 90283.0 92966.0\n", + "5081 2025-11-29 90746.479514 90265.0 91158.0 90279.0 91179.0\n", + "5082 2025-11-30 91187.356250 90363.0 91940.0 90362.0 91940.0" + ] + }, + "execution_count": 25, "metadata": {}, "output_type": "execute_result" } @@ -218,7 +341,13 @@ "source": [ "df_days = (\n", " df.groupby(df[\"Timestamp\"].dt.date)\n", - " .agg({\"Low\": \"min\", \"High\": \"max\", \"Open\": \"first\", \"Close\": \"last\"})\n", + " .agg(\n", + " Avg=(\"Avg\", \"mean\"),\n", + " OpenMin=(\"Open\", \"min\"),\n", + " OpenMax=(\"Open\", \"max\"),\n", + " CloseMin=(\"Close\", \"min\"),\n", + " CloseMax=(\"Close\", \"max\"),\n", + " )\n", " .reset_index()\n", ")\n", "df_days.tail()" @@ -226,111 +355,7 @@ }, { "cell_type": "code", - "execution_count": 21, - "id": "91823496", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
TimestampLowHighOpenCloseAvg
50782025-11-2686304.090646.087331.090477.088475.0
50792025-11-2790091.091926.090476.091325.091008.5
50802025-11-2890233.093091.091326.090913.091662.0
50812025-11-2990216.091179.090913.090832.090697.5
50822025-11-3090362.091969.090832.090382.091165.5
\n", - "
" - ], - "text/plain": [ - " Timestamp Low High Open Close Avg\n", - "5078 2025-11-26 86304.0 90646.0 87331.0 90477.0 88475.0\n", - "5079 2025-11-27 90091.0 91926.0 90476.0 91325.0 91008.5\n", - "5080 2025-11-28 90233.0 93091.0 91326.0 90913.0 91662.0\n", - "5081 2025-11-29 90216.0 91179.0 90913.0 90832.0 90697.5\n", - "5082 2025-11-30 90362.0 91969.0 90832.0 90382.0 91165.5" - ] - }, - "execution_count": 21, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df_days[\"Avg\"] = (df_days[\"Low\"] + df_days[\"High\"]) / 2\n", - "df_days.tail()" - ] - }, - { - "cell_type": "code", - "execution_count": 25, + "execution_count": 26, "id": "9a7b3310", "metadata": {}, "outputs": [ @@ -358,6 +383,8 @@ " start_date\n", " end_date\n", " min_open\n", + " max_open\n", + " min_close\n", " max_close\n", " start_avg\n", " end_avg\n", @@ -366,76 +393,86 @@ " \n", " \n", " \n", - " 335\n", + " 316\n", " 2025-02-27\n", - " 2025-04-23\n", - " 76252.0\n", - " 94273.0\n", - " 84801.5\n", - " 93335.0\n", - " 0.100629\n", + " 2025-04-25\n", + " 74509.0\n", + " 95801.0\n", + " 74515.0\n", + " 95800.0\n", + " 85166.063889\n", + " 94303.907292\n", + " 0.107294\n", " \n", " \n", - " 336\n", - " 2025-04-24\n", - " 2025-05-09\n", - " 93730.0\n", - " 103261.0\n", - " 92867.5\n", - " 103341.0\n", - " 0.112779\n", + " 317\n", + " 2025-04-26\n", + " 2025-05-11\n", + " 92877.0\n", + " 104971.0\n", + " 92872.0\n", + " 104965.0\n", + " 94500.950347\n", + " 104182.167708\n", + " 0.102446\n", " \n", " \n", - " 337\n", - " 2025-05-10\n", + " 318\n", + " 2025-05-12\n", " 2025-07-11\n", - " 100990.0\n", - " 117579.0\n", - " 103915.0\n", - " 117032.5\n", - " 0.126233\n", + " 98384.0\n", + " 118833.0\n", + " 98382.0\n", + " 118839.0\n", + " 103569.791319\n", + " 117463.666667\n", + " 0.134150\n", " \n", " \n", - " 338\n", + " 319\n", " 2025-07-12\n", " 2025-11-04\n", - " 106470.0\n", - " 124728.0\n", - " 117599.0\n", - " 103079.0\n", - " 0.123470\n", + " 98944.0\n", + " 126202.0\n", + " 98943.0\n", + " 126202.0\n", + " 117640.026389\n", + " 103712.985764\n", + " 0.118387\n", " \n", " \n", - " 339\n", + " 320\n", " 2025-11-05\n", " 2025-11-18\n", - " 92112.0\n", - " 105972.0\n", - " 101737.5\n", - " 91471.0\n", - " 0.100912\n", + " 89291.0\n", + " 107343.0\n", + " 89286.0\n", + " 107343.0\n", + " 102514.621181\n", + " 91705.833333\n", + " 0.105437\n", " \n", " \n", "\n", "" ], "text/plain": [ - " start_date end_date min_open max_close start_avg end_avg \\\n", - "335 2025-02-27 2025-04-23 76252.0 94273.0 84801.5 93335.0 \n", - "336 2025-04-24 2025-05-09 93730.0 103261.0 92867.5 103341.0 \n", - "337 2025-05-10 2025-07-11 100990.0 117579.0 103915.0 117032.5 \n", - "338 2025-07-12 2025-11-04 106470.0 124728.0 117599.0 103079.0 \n", - "339 2025-11-05 2025-11-18 92112.0 105972.0 101737.5 91471.0 \n", + " start_date end_date min_open max_open min_close max_close \\\n", + "316 2025-02-27 2025-04-25 74509.0 95801.0 74515.0 95800.0 \n", + "317 2025-04-26 2025-05-11 92877.0 104971.0 92872.0 104965.0 \n", + "318 2025-05-12 2025-07-11 98384.0 118833.0 98382.0 118839.0 \n", + "319 2025-07-12 2025-11-04 98944.0 126202.0 98943.0 126202.0 \n", + "320 2025-11-05 2025-11-18 89291.0 107343.0 89286.0 107343.0 \n", "\n", - " change \n", - "335 0.100629 \n", - "336 0.112779 \n", - "337 0.126233 \n", - "338 0.123470 \n", - "339 0.100912 " + " start_avg end_avg change \n", + "316 85166.063889 94303.907292 0.107294 \n", + "317 94500.950347 104182.167708 0.102446 \n", + "318 103569.791319 117463.666667 0.134150 \n", + "319 117640.026389 103712.985764 0.118387 \n", + "320 102514.621181 91705.833333 0.105437 " ] }, - "execution_count": 25, + "execution_count": 26, "metadata": {}, "output_type": "execute_result" } @@ -455,8 +492,10 @@ " intervals.append({\n", " \"start_date\": df_days.loc[start_idx, \"Timestamp\"],\n", " \"end_date\": df_days.loc[i, \"Timestamp\"],\n", - " \"min_open\": interval[\"Open\"].min(),\n", - " \"max_close\": interval[\"Close\"].max(),\n", + " \"min_open\": interval[\"OpenMin\"].min(),\n", + " \"max_open\": interval[\"OpenMax\"].max(),\n", + " \"min_close\": interval[\"CloseMin\"].min(),\n", + " \"max_close\": interval[\"CloseMax\"].max(),\n", " \"start_avg\": price_base,\n", " \"end_avg\": price_now,\n", " \"change\": change,\n", @@ -470,6 +509,14 @@ "df_intervals = pd.DataFrame(intervals)\n", "df_intervals.tail()" ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "07f1cd58", + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": {