{ "cells": [ { "cell_type": "code", "execution_count": 1, "id": "973a8fed", "metadata": {}, "outputs": [ { "data": { "text/html": [ " \n", " " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import pandas as pd\n", "import datetime\n", "import numpy as np\n", "import random\n", "from signals import * #потом удалить" ] }, { "cell_type": "code", "execution_count": 2, "id": "04f12506", "metadata": {}, "outputs": [], "source": [ "class trandeVoter():\n", "\n", " def __init__(self,name):\n", " \n", " self.name = name # просто имя\n", " self.trandeValuesList = ['up','none','down'] #словарь трегдов\n", " self.matrixAmounts = None # матрица сумм\n", " self.keysMatrixAmounts = None #ключи матрицы сумм, техническое поле\n", " self.matrixProbability = None # матрица вероятностей\n", " \n", " \n", " #функция которая создает df с заданным набором колонок и индексов. индексы - уникальные соотношения \n", " def createDFbyNames(self, namesIndex, namesColoms,defaultValue=0.0):\n", " df = pd.DataFrame(dict.fromkeys(namesColoms, [defaultValue]*pow(3,len(namesIndex))),\n", " index=pd.MultiIndex.from_product([self.trandeValuesList]*len(namesIndex), names=namesIndex)\n", " #,columns=namesColoms\n", " )\n", " return(df)\n", " \n", " #создание матрицы сумм с дефолтным значением\n", " def createMatrixAmounts(self,namesIndex: list) -> pd.DataFrame():\n", " self.matrixAmounts = self.createDFbyNames(namesIndex,self.trandeValuesList,0)\n", " self.keysMatrixAmounts = self.matrixAmounts.to_dict('tight')['index_names']\n", " self.createMatrixProbability(namesIndex)\n", " return(self.matrixAmounts)\n", " \n", " #создание матрицы вероятностей с дефолтным значением\n", " def createMatrixProbability(self,namesIndex: list) -> pd.DataFrame():\n", " self.matrixProbability = self.createDFbyNames(namesIndex,self.trandeValuesList)\n", " return(self.matrixProbability)\n", " \n", " #установка значений в матрицы сумм. signalDecisions - значения индикаторов key:value; trande - реальное значение\n", " def setDecisionBySignals(self,signalDecisions: dict,trande: str) -> None:\n", " buff=[]\n", " for i in self.keysMatrixAmounts:\n", " buff.append(signalDecisions[i])\n", " self.matrixAmounts.loc[tuple(buff),trande] += 1\n", " \n", " #заполнение матрицы вероятностей вычисляемыми значениями из матрицы сумм\n", " def generateMatrixProbability(self) -> None:\n", " for i in range(self.matrixAmounts.shape[0]):\n", " rowSum=sum(self.matrixAmounts.iloc[i])\n", " self.matrixProbability.iloc[i]['up'] = (self.matrixAmounts.iloc[i]['up'] / rowSum)\n", " self.matrixProbability.iloc[i]['none'] = self.matrixAmounts.iloc[i]['none'] / rowSum\n", " self.matrixProbability.iloc[i]['down'] = self.matrixAmounts.iloc[i]['down'] / rowSum\n", "\n", " #получение рещения из матрицы вероятностей по заданным значениям сигналов\n", " def getDecisionBySignals(self,signalDecisions: dict) -> dict:\n", " ans = {}\n", " spliceSearch =self.matrixProbability.xs(tuple(signalDecisions.values()),\n", " level=list(signalDecisions.keys())\n", " ) \n", " ans['probability'] = spliceSearch.to_dict('records')[0]\n", " ans['trande'] = spliceSearch.iloc[0].idxmax()\n", " return ans\n", " \n", " #получение матриц вероятностей и суммы в видей словарей\n", " def getMatrixDict(self) -> dict:\n", " ans={}\n", " ans['amounts'] = self.matrixAmounts.to_dict('tight')\n", " ans['probability'] = self.matrixProbability.to_dict('tight')\n", " return ans\n", " \n", " #установка матриц вероятностей и суммы в видей словарей\n", " def setMatrixDict(self,matrixDict: dict) -> dict:\n", " if matrixDict['amounts'] != None:\n", " self.matrixAmounts = pd.DataFrame.from_dict(y['amounts'], orient='tight')\n", " if matrixDict['probability'] != None:\n", " self.matrixProbability = pd.DataFrame.from_dict(y['probability'], orient='tight') " ] }, { "cell_type": "code", "execution_count": 3, "id": "7a493192", "metadata": {}, "outputs": [], "source": [ "reqSig={\n", " 'BB1':{\n", " 'className':signal_BB,\n", " 'indParams':{'MeanType':'SMA','window':15,'valueType':'close','kDev':2.5},\n", " 'signalParams':{'source':'close','target':'close'},\n", " 'batchSize':15\n", " },\n", " 'BB2':{\n", " 'className':signal_BB,\n", " 'indParams':{'MeanType':'SMA','window':15,'valueType':'close','kDev':2.5},\n", " 'signalParams':{'source':'close','target':'close'},\n", " 'batchSize':20\n", " }\n", "}\n", "\n" ] }, { "cell_type": "code", "execution_count": 4, "id": "c7eeaeea", "metadata": {}, "outputs": [], "source": [ "reqDS={'BB1':'up','BB2':'none'}" ] }, { "cell_type": "code", "execution_count": 7, "id": "e0ab2f31", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['BB1', 'BB2']" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "reqCreate=list(reqSig.keys())\n", "reqCreate" ] }, { "cell_type": "code", "execution_count": 8, "id": "7579bb31", "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
upnonedown
BB1BB2
upup000
none000
down000
noneup000
none000
down000
downup000
none000
down000
\n", "
" ], "text/plain": [ " up none down\n", "BB1 BB2 \n", "up up 0 0 0\n", " none 0 0 0\n", " down 0 0 0\n", "none up 0 0 0\n", " none 0 0 0\n", " down 0 0 0\n", "down up 0 0 0\n", " none 0 0 0\n", " down 0 0 0" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "t=trandeVoter('piu')\n", "o=t.createMatrixAmounts(['BB1', 'BB2'])\n", "o" ] }, { "cell_type": "code", "execution_count": 9, "id": "39eaf4ca", "metadata": {}, "outputs": [], "source": [ "for i in range(100000):\n", " t.setDecisionBySignals({'BB1':random.choice(['up','down','none']),\n", " 'BB2':random.choice(['up','down','none'])},\n", " random.choice(['up','down','none']))\n", " " ] }, { "cell_type": "code", "execution_count": 10, "id": "2c79e802", "metadata": { "scrolled": true }, "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
upnonedown
BB1BB2
upup367336023728
none371237003715
down368236213766
noneup360036573711
none363637203719
down360637003785
downup374537433774
none360638103688
down378238013718
\n", "
" ], "text/plain": [ " up none down\n", "BB1 BB2 \n", "up up 3673 3602 3728\n", " none 3712 3700 3715\n", " down 3682 3621 3766\n", "none up 3600 3657 3711\n", " none 3636 3720 3719\n", " down 3606 3700 3785\n", "down up 3745 3743 3774\n", " none 3606 3810 3688\n", " down 3782 3801 3718" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "t.matrixAmounts" ] }, { "cell_type": "code", "execution_count": 11, "id": "46c1cbf2", "metadata": { "scrolled": true }, "outputs": [], "source": [ "t.generateMatrixProbability()" ] }, { "cell_type": "code", "execution_count": 577, "id": "410c75e7", "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
upnonedown
BB1BB2
upup0.3372730.3340500.328678
none0.3227250.3365340.340741
down0.3361220.3349520.328926
noneup0.3349290.3258080.339263
none0.3274910.3410550.331454
down0.3302580.3421080.327635
downup0.3368700.3347840.328346
none0.3288600.3346750.336464
down0.3262400.3382330.335528
\n", "
" ], "text/plain": [ " up none down\n", "BB1 BB2 \n", "up up 0.337273 0.334050 0.328678\n", " none 0.322725 0.336534 0.340741\n", " down 0.336122 0.334952 0.328926\n", "none up 0.334929 0.325808 0.339263\n", " none 0.327491 0.341055 0.331454\n", " down 0.330258 0.342108 0.327635\n", "down up 0.336870 0.334784 0.328346\n", " none 0.328860 0.334675 0.336464\n", " down 0.326240 0.338233 0.335528" ] }, "execution_count": 577, "metadata": {}, "output_type": "execute_result" } ], "source": [ "t.matrixProbability\n" ] }, { "cell_type": "code", "execution_count": 14, "id": "2117b6de", "metadata": {}, "outputs": [], "source": [ "t.setMatrixDict(y)" ] }, { "cell_type": "code", "execution_count": 15, "id": "5e704b51", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'probability': {'up': 0.3336029477846679,\n", " 'none': 0.33252448997932954,\n", " 'down': 0.33387256223600253},\n", " 'trande': 'down'}" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "t.getDecisionBySignals(reqDS)" ] }, { "cell_type": "code", "execution_count": null, "id": "28a8d41e", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "e6548ee6", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 13, "id": "571678f7", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'amounts': {'index': [('up', 'up'),\n", " ('up', 'none'),\n", " ('up', 'down'),\n", " ('none', 'up'),\n", " ('none', 'none'),\n", " ('none', 'down'),\n", " ('down', 'up'),\n", " ('down', 'none'),\n", " ('down', 'down')],\n", " 'columns': ['up', 'none', 'down'],\n", " 'data': [[3673, 3602, 3728],\n", " [3712, 3700, 3715],\n", " [3682, 3621, 3766],\n", " [3600, 3657, 3711],\n", " [3636, 3720, 3719],\n", " [3606, 3700, 3785],\n", " [3745, 3743, 3774],\n", " [3606, 3810, 3688],\n", " [3782, 3801, 3718]],\n", " 'index_names': ['BB1', 'BB2'],\n", " 'column_names': [None]},\n", " 'probability': {'index': [('up', 'up'),\n", " ('up', 'none'),\n", " ('up', 'down'),\n", " ('none', 'up'),\n", " ('none', 'none'),\n", " ('none', 'down'),\n", " ('down', 'up'),\n", " ('down', 'none'),\n", " ('down', 'down')],\n", " 'columns': ['up', 'none', 'down'],\n", " 'data': [[0.3338180496228301, 0.3273652640189039, 0.33881668635826595],\n", " [0.3336029477846679, 0.33252448997932954, 0.33387256223600253],\n", " [0.33264070828439785, 0.3271298220254766, 0.3402294696901256],\n", " [0.3282275711159737, 0.33342450765864334, 0.33834792122538293],\n", " [0.32830699774266364, 0.3358916478555305, 0.33580135440180586],\n", " [0.3251284825534217, 0.33360382291948426, 0.34126769452709405],\n", " [0.33253418575741434, 0.3323565974072101, 0.3351092168353756],\n", " [0.3247478386167147, 0.34311959654178675, 0.33213256484149856],\n", " [0.33466064950004426, 0.3363419166445447, 0.328997433855411]],\n", " 'index_names': ['BB1', 'BB2'],\n", " 'column_names': [None]}}" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "y = t.getMatrixDict()\n", "y" ] }, { "cell_type": "code", "execution_count": 16, "id": "9edc85be", "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
upnonedown
BB1BB2
upup367336023728
none371237003715
down368236213766
noneup360036573711
none363637203719
down360637003785
downup374537433774
none360638103688
down378238013718
\n", "
" ], "text/plain": [ " up none down\n", "BB1 BB2 \n", "up up 3673 3602 3728\n", " none 3712 3700 3715\n", " down 3682 3621 3766\n", "none up 3600 3657 3711\n", " none 3636 3720 3719\n", " down 3606 3700 3785\n", "down up 3745 3743 3774\n", " none 3606 3810 3688\n", " down 3782 3801 3718" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ddf = pd.DataFrame.from_dict(y['amounts'], orient='tight')\n", "ddf" ] }, { "cell_type": "code", "execution_count": null, "id": "c6562364", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "6b7b6941", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "5641fd2a", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "f20fb2b9", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 17, "id": "c77a0538", "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
upnonedown
BB1BB2
upup0.3338180.3273650.338817
none0.3336030.3325240.333873
down0.3326410.3271300.340229
noneup0.3282280.3334250.338348
none0.3283070.3358920.335801
down0.3251280.3336040.341268
downup0.3325340.3323570.335109
none0.3247480.3431200.332133
down0.3346610.3363420.328997
\n", "
" ], "text/plain": [ " up none down\n", "BB1 BB2 \n", "up up 0.333818 0.327365 0.338817\n", " none 0.333603 0.332524 0.333873\n", " down 0.332641 0.327130 0.340229\n", "none up 0.328228 0.333425 0.338348\n", " none 0.328307 0.335892 0.335801\n", " down 0.325128 0.333604 0.341268\n", "down up 0.332534 0.332357 0.335109\n", " none 0.324748 0.343120 0.332133\n", " down 0.334661 0.336342 0.328997" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "t.matrixProbability.iloc[0]['up'] = (t.matrixProbability.iloc[0]['up'] / (sum(t.matrixProbability.iloc[0])))\n", "t.matrixProbability" ] }, { "cell_type": "code", "execution_count": null, "id": "233ac6fe", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "fe062f98", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "3d9d4d59", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 18, "id": "53197943", "metadata": {}, "outputs": [ { "ename": "KeyError", "evalue": "'trandе'", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mKeyError\u001b[0m Traceback (most recent call last)", "File \u001b[0;32m~/projects/marketTrade/.venv/lib/python3.11/site-packages/pandas/core/indexes/base.py:3791\u001b[0m, in \u001b[0;36mIndex.get_loc\u001b[0;34m(self, key)\u001b[0m\n\u001b[1;32m 3790\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m-> 3791\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_engine\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget_loc\u001b[49m\u001b[43m(\u001b[49m\u001b[43mcasted_key\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 3792\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mKeyError\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m err:\n", "File \u001b[0;32mindex.pyx:152\u001b[0m, in \u001b[0;36mpandas._libs.index.IndexEngine.get_loc\u001b[0;34m()\u001b[0m\n", "File \u001b[0;32mindex.pyx:181\u001b[0m, in \u001b[0;36mpandas._libs.index.IndexEngine.get_loc\u001b[0;34m()\u001b[0m\n", "File \u001b[0;32mpandas/_libs/hashtable_class_helper.pxi:7080\u001b[0m, in \u001b[0;36mpandas._libs.hashtable.PyObjectHashTable.get_item\u001b[0;34m()\u001b[0m\n", "File \u001b[0;32mpandas/_libs/hashtable_class_helper.pxi:7088\u001b[0m, in \u001b[0;36mpandas._libs.hashtable.PyObjectHashTable.get_item\u001b[0;34m()\u001b[0m\n", "\u001b[0;31mKeyError\u001b[0m: 'trandе'", "\nThe above exception was the direct cause of the following exception:\n", "\u001b[0;31mKeyError\u001b[0m Traceback (most recent call last)", "Cell \u001b[0;32mIn[18], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m \u001b[43mt\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mmatrixProbability\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43mtrandе\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[43m]\u001b[49m\n", "File \u001b[0;32m~/projects/marketTrade/.venv/lib/python3.11/site-packages/pandas/core/frame.py:3893\u001b[0m, in \u001b[0;36mDataFrame.__getitem__\u001b[0;34m(self, key)\u001b[0m\n\u001b[1;32m 3891\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mcolumns\u001b[38;5;241m.\u001b[39mnlevels \u001b[38;5;241m>\u001b[39m \u001b[38;5;241m1\u001b[39m:\n\u001b[1;32m 3892\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_getitem_multilevel(key)\n\u001b[0;32m-> 3893\u001b[0m indexer \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcolumns\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget_loc\u001b[49m\u001b[43m(\u001b[49m\u001b[43mkey\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 3894\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m is_integer(indexer):\n\u001b[1;32m 3895\u001b[0m indexer \u001b[38;5;241m=\u001b[39m [indexer]\n", "File \u001b[0;32m~/projects/marketTrade/.venv/lib/python3.11/site-packages/pandas/core/indexes/base.py:3798\u001b[0m, in \u001b[0;36mIndex.get_loc\u001b[0;34m(self, key)\u001b[0m\n\u001b[1;32m 3793\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(casted_key, \u001b[38;5;28mslice\u001b[39m) \u001b[38;5;129;01mor\u001b[39;00m (\n\u001b[1;32m 3794\u001b[0m \u001b[38;5;28misinstance\u001b[39m(casted_key, abc\u001b[38;5;241m.\u001b[39mIterable)\n\u001b[1;32m 3795\u001b[0m \u001b[38;5;129;01mand\u001b[39;00m \u001b[38;5;28many\u001b[39m(\u001b[38;5;28misinstance\u001b[39m(x, \u001b[38;5;28mslice\u001b[39m) \u001b[38;5;28;01mfor\u001b[39;00m x \u001b[38;5;129;01min\u001b[39;00m casted_key)\n\u001b[1;32m 3796\u001b[0m ):\n\u001b[1;32m 3797\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m InvalidIndexError(key)\n\u001b[0;32m-> 3798\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mKeyError\u001b[39;00m(key) \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01merr\u001b[39;00m\n\u001b[1;32m 3799\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mTypeError\u001b[39;00m:\n\u001b[1;32m 3800\u001b[0m \u001b[38;5;66;03m# If we have a listlike key, _check_indexing_error will raise\u001b[39;00m\n\u001b[1;32m 3801\u001b[0m \u001b[38;5;66;03m# InvalidIndexError. Otherwise we fall through and re-raise\u001b[39;00m\n\u001b[1;32m 3802\u001b[0m \u001b[38;5;66;03m# the TypeError.\u001b[39;00m\n\u001b[1;32m 3803\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_check_indexing_error(key)\n", "\u001b[0;31mKeyError\u001b[0m: 'trandе'" ] } ], "source": [ "t.matrixProbability['trandе']" ] }, { "cell_type": "code", "execution_count": 19, "id": "83a6381f", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'up'" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "random.choice(['up','down','none'])" ] }, { "cell_type": "code", "execution_count": 20, "id": "73a9f345", "metadata": {}, "outputs": [], "source": [ "t.setDecisionBySignals(reqDS,'up')" ] }, { "cell_type": "code", "execution_count": 21, "id": "f4ff77f5", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "up 3673\n", "none 3602\n", "down 3728\n", "Name: (up, up), dtype: int64" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#t.matrixAmounts.at(bbb,'up')\n", " \n", "t.matrixAmounts.iloc[0]" ] }, { "cell_type": "code", "execution_count": 22, "id": "7cff7ad3", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "3673\n", "3602\n", "3728\n" ] } ], "source": [ "for i in t.matrixAmounts.iloc[0]:\n", " print (i)" ] }, { "cell_type": "code", "execution_count": 23, "id": "ded3b5db", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'down'" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "(t.matrixAmounts.iloc[0]).idxmax()" ] }, { "cell_type": "code", "execution_count": 24, "id": "acf2a8a8", "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
upnonedown
BB1BB2
upup367336023728
none371337003715
down368236213766
noneup360036573711
none363637203719
down360637003785
downup374537433774
none360638103688
down378238013718
\n", "
" ], "text/plain": [ " up none down\n", "BB1 BB2 \n", "up up 3673 3602 3728\n", " none 3713 3700 3715\n", " down 3682 3621 3766\n", "none up 3600 3657 3711\n", " none 3636 3720 3719\n", " down 3606 3700 3785\n", "down up 3745 3743 3774\n", " none 3606 3810 3688\n", " down 3782 3801 3718" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "t.matrixAmounts" ] }, { "cell_type": "code", "execution_count": null, "id": "4869a262", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 25, "id": "93eb075f", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "3682" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "o.xs(('up','down'), level=['BB1','BB2'])['up'].iloc[0]\n", "\n", "#oldValue = o.xs(('up','down'), level=['BB1','BB2'])['up']\n", "\n", "#o=o.replace(oldValue,oldValue.iloc[0]+1) \n", "#o.xs(('up','down'), level=['BB1','BB2'])" ] }, { "cell_type": "code", "execution_count": 26, "id": "8835e96e", "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", "
upnonedown
BB1BB2
updown368236213766
\n", "
" ], "text/plain": [ " up none down\n", "BB1 BB2 \n", "up down 3682 3621 3766" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "o.xs(('up','down'), level=['BB1','BB2'], drop_level=False)#.iloc[0].loc['up']=2#.at['up']=4" ] }, { "cell_type": "code", "execution_count": 27, "id": "d740353b", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "3682" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "o.xs(('up','down'), level=['BB1','BB2']).iloc[0].at['up']" ] }, { "cell_type": "code", "execution_count": 28, "id": "a4255ca6", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "up 3682\n", "none 3621\n", "down 3766\n", "Name: down, dtype: int64" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "o.loc['up'].loc['down']" ] }, { "cell_type": "code", "execution_count": 29, "id": "4e6a141f", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "('up', 'down')" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "bbb=tuple(['up','down'])\n", "bbb" ] }, { "cell_type": "code", "execution_count": 30, "id": "17495a7a", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "up 3682\n", "none 3621\n", "down 3766\n", "Name: (up, down), dtype: int64" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "o.loc[bbb,]" ] }, { "cell_type": "code", "execution_count": 31, "id": "606bbcd0", "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
upnonedown
BB1BB2
upup367336023728
none371237003715
down368336213766
noneup360036573711
none363637203719
down360637003785
downup374537433774
none360638103688
down378238013718
\n", "
" ], "text/plain": [ " up none down\n", "BB1 BB2 \n", "up up 3673 3602 3728\n", " none 3712 3700 3715\n", " down 3683 3621 3766\n", "none up 3600 3657 3711\n", " none 3636 3720 3719\n", " down 3606 3700 3785\n", "down up 3745 3743 3774\n", " none 3606 3810 3688\n", " down 3782 3801 3718" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "o.at[bbb, 'up']+=1\n", "o" ] }, { "cell_type": "code", "execution_count": 32, "id": "d320f64c", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "up 3683\n", "none 3621\n", "down 3766\n", "Name: (up, down), dtype: int64" ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" } ], "source": [ "o.loc[bbb]" ] }, { "cell_type": "code", "execution_count": 33, "id": "9e1c402c", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'a': 1, 'b': 2, 'c': 3}" ] }, "execution_count": 33, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dict(zip(['a','b','c'], [1,2,3]))" ] }, { "cell_type": "code", "execution_count": null, "id": "a4d9c83d", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.11.8" } }, "nbformat": 4, "nbformat_minor": 5 }