{
"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",
" up | \n",
" none | \n",
" down | \n",
"
\n",
" \n",
" | BB1 | \n",
" BB2 | \n",
" | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" | up | \n",
" up | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" | none | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" | down | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" | none | \n",
" up | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" | none | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" | down | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" | down | \n",
" up | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" | none | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" | down | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
"
\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",
" up | \n",
" none | \n",
" down | \n",
"
\n",
" \n",
" | BB1 | \n",
" BB2 | \n",
" | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" | up | \n",
" up | \n",
" 3673 | \n",
" 3602 | \n",
" 3728 | \n",
"
\n",
" \n",
" | none | \n",
" 3712 | \n",
" 3700 | \n",
" 3715 | \n",
"
\n",
" \n",
" | down | \n",
" 3682 | \n",
" 3621 | \n",
" 3766 | \n",
"
\n",
" \n",
" | none | \n",
" up | \n",
" 3600 | \n",
" 3657 | \n",
" 3711 | \n",
"
\n",
" \n",
" | none | \n",
" 3636 | \n",
" 3720 | \n",
" 3719 | \n",
"
\n",
" \n",
" | down | \n",
" 3606 | \n",
" 3700 | \n",
" 3785 | \n",
"
\n",
" \n",
" | down | \n",
" up | \n",
" 3745 | \n",
" 3743 | \n",
" 3774 | \n",
"
\n",
" \n",
" | none | \n",
" 3606 | \n",
" 3810 | \n",
" 3688 | \n",
"
\n",
" \n",
" | down | \n",
" 3782 | \n",
" 3801 | \n",
" 3718 | \n",
"
\n",
" \n",
"
\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",
" up | \n",
" none | \n",
" down | \n",
"
\n",
" \n",
" | BB1 | \n",
" BB2 | \n",
" | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" | up | \n",
" up | \n",
" 0.337273 | \n",
" 0.334050 | \n",
" 0.328678 | \n",
"
\n",
" \n",
" | none | \n",
" 0.322725 | \n",
" 0.336534 | \n",
" 0.340741 | \n",
"
\n",
" \n",
" | down | \n",
" 0.336122 | \n",
" 0.334952 | \n",
" 0.328926 | \n",
"
\n",
" \n",
" | none | \n",
" up | \n",
" 0.334929 | \n",
" 0.325808 | \n",
" 0.339263 | \n",
"
\n",
" \n",
" | none | \n",
" 0.327491 | \n",
" 0.341055 | \n",
" 0.331454 | \n",
"
\n",
" \n",
" | down | \n",
" 0.330258 | \n",
" 0.342108 | \n",
" 0.327635 | \n",
"
\n",
" \n",
" | down | \n",
" up | \n",
" 0.336870 | \n",
" 0.334784 | \n",
" 0.328346 | \n",
"
\n",
" \n",
" | none | \n",
" 0.328860 | \n",
" 0.334675 | \n",
" 0.336464 | \n",
"
\n",
" \n",
" | down | \n",
" 0.326240 | \n",
" 0.338233 | \n",
" 0.335528 | \n",
"
\n",
" \n",
"
\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",
" up | \n",
" none | \n",
" down | \n",
"
\n",
" \n",
" | BB1 | \n",
" BB2 | \n",
" | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" | up | \n",
" up | \n",
" 3673 | \n",
" 3602 | \n",
" 3728 | \n",
"
\n",
" \n",
" | none | \n",
" 3712 | \n",
" 3700 | \n",
" 3715 | \n",
"
\n",
" \n",
" | down | \n",
" 3682 | \n",
" 3621 | \n",
" 3766 | \n",
"
\n",
" \n",
" | none | \n",
" up | \n",
" 3600 | \n",
" 3657 | \n",
" 3711 | \n",
"
\n",
" \n",
" | none | \n",
" 3636 | \n",
" 3720 | \n",
" 3719 | \n",
"
\n",
" \n",
" | down | \n",
" 3606 | \n",
" 3700 | \n",
" 3785 | \n",
"
\n",
" \n",
" | down | \n",
" up | \n",
" 3745 | \n",
" 3743 | \n",
" 3774 | \n",
"
\n",
" \n",
" | none | \n",
" 3606 | \n",
" 3810 | \n",
" 3688 | \n",
"
\n",
" \n",
" | down | \n",
" 3782 | \n",
" 3801 | \n",
" 3718 | \n",
"
\n",
" \n",
"
\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",
" up | \n",
" none | \n",
" down | \n",
"
\n",
" \n",
" | BB1 | \n",
" BB2 | \n",
" | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" | up | \n",
" up | \n",
" 0.333818 | \n",
" 0.327365 | \n",
" 0.338817 | \n",
"
\n",
" \n",
" | none | \n",
" 0.333603 | \n",
" 0.332524 | \n",
" 0.333873 | \n",
"
\n",
" \n",
" | down | \n",
" 0.332641 | \n",
" 0.327130 | \n",
" 0.340229 | \n",
"
\n",
" \n",
" | none | \n",
" up | \n",
" 0.328228 | \n",
" 0.333425 | \n",
" 0.338348 | \n",
"
\n",
" \n",
" | none | \n",
" 0.328307 | \n",
" 0.335892 | \n",
" 0.335801 | \n",
"
\n",
" \n",
" | down | \n",
" 0.325128 | \n",
" 0.333604 | \n",
" 0.341268 | \n",
"
\n",
" \n",
" | down | \n",
" up | \n",
" 0.332534 | \n",
" 0.332357 | \n",
" 0.335109 | \n",
"
\n",
" \n",
" | none | \n",
" 0.324748 | \n",
" 0.343120 | \n",
" 0.332133 | \n",
"
\n",
" \n",
" | down | \n",
" 0.334661 | \n",
" 0.336342 | \n",
" 0.328997 | \n",
"
\n",
" \n",
"
\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",
" up | \n",
" none | \n",
" down | \n",
"
\n",
" \n",
" | BB1 | \n",
" BB2 | \n",
" | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" | up | \n",
" up | \n",
" 3673 | \n",
" 3602 | \n",
" 3728 | \n",
"
\n",
" \n",
" | none | \n",
" 3713 | \n",
" 3700 | \n",
" 3715 | \n",
"
\n",
" \n",
" | down | \n",
" 3682 | \n",
" 3621 | \n",
" 3766 | \n",
"
\n",
" \n",
" | none | \n",
" up | \n",
" 3600 | \n",
" 3657 | \n",
" 3711 | \n",
"
\n",
" \n",
" | none | \n",
" 3636 | \n",
" 3720 | \n",
" 3719 | \n",
"
\n",
" \n",
" | down | \n",
" 3606 | \n",
" 3700 | \n",
" 3785 | \n",
"
\n",
" \n",
" | down | \n",
" up | \n",
" 3745 | \n",
" 3743 | \n",
" 3774 | \n",
"
\n",
" \n",
" | none | \n",
" 3606 | \n",
" 3810 | \n",
" 3688 | \n",
"
\n",
" \n",
" | down | \n",
" 3782 | \n",
" 3801 | \n",
" 3718 | \n",
"
\n",
" \n",
"
\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",
" up | \n",
" none | \n",
" down | \n",
"
\n",
" \n",
" | BB1 | \n",
" BB2 | \n",
" | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" | up | \n",
" down | \n",
" 3682 | \n",
" 3621 | \n",
" 3766 | \n",
"
\n",
" \n",
"
\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",
" up | \n",
" none | \n",
" down | \n",
"
\n",
" \n",
" | BB1 | \n",
" BB2 | \n",
" | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" | up | \n",
" up | \n",
" 3673 | \n",
" 3602 | \n",
" 3728 | \n",
"
\n",
" \n",
" | none | \n",
" 3712 | \n",
" 3700 | \n",
" 3715 | \n",
"
\n",
" \n",
" | down | \n",
" 3683 | \n",
" 3621 | \n",
" 3766 | \n",
"
\n",
" \n",
" | none | \n",
" up | \n",
" 3600 | \n",
" 3657 | \n",
" 3711 | \n",
"
\n",
" \n",
" | none | \n",
" 3636 | \n",
" 3720 | \n",
" 3719 | \n",
"
\n",
" \n",
" | down | \n",
" 3606 | \n",
" 3700 | \n",
" 3785 | \n",
"
\n",
" \n",
" | down | \n",
" up | \n",
" 3745 | \n",
" 3743 | \n",
" 3774 | \n",
"
\n",
" \n",
" | none | \n",
" 3606 | \n",
" 3810 | \n",
" 3688 | \n",
"
\n",
" \n",
" | down | \n",
" 3782 | \n",
" 3801 | \n",
" 3718 | \n",
"
\n",
" \n",
"
\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
}