"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"Initial = 10000 # 初期資産\n",
"display_charts(pd.DataFrame({'Equity':Equity+Initial}), chart_type=\"stock\", title=\"資産曲線\", figsize=(640,480), grid=True)"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"\n",
" "
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"def PositionLine(trade):\n",
" PosPeriod = 0 #ポジションの期間\n",
" Position = False #ポジションの有無\n",
" Line = trade.copy()\n",
" for i in range(len(Line)):\n",
" if trade[i] > 0: Position = True \n",
" elif Position: PosPeriod += 1 # ポジションの期間をカウント\n",
" if trade[i] < 0:\n",
" if PosPeriod > 0:\n",
" Line[i] = -trade[i]\n",
" diff = (Line[i]-Line[i-PosPeriod])/PosPeriod\n",
" for j in range(i-1, i-PosPeriod, -1):\n",
" Line[j] = Line[j+1]-diff # ポジションの期間を補間\n",
" PosPeriod = 0\n",
" Position = False\n",
" if trade[i] == 0 and not Position: Line[i] = 'NaN'\n",
" return Line\n",
"\n",
"df = pd.DataFrame({'Open': ohlc['Open'],\n",
" 'Long': PositionLine(Trade['Long'].values),\n",
" 'Short': PositionLine(Trade['Short'].values)})\n",
"display_charts(df, chart_type=\"stock\", title=\"トレードチャート\", figsize=(640,480), grid=True)"
]
}
],
"metadata": {
"anaconda-cloud": {},
"kernelspec": {
"display_name": "Python [Root]",
"language": "python",
"name": "Python [Root]"
},
"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.5.2"
}
},
"nbformat": 4,
"nbformat_minor": 0
}