Skip to content

Instantly share code, notes, and snippets.

@va2577
Created February 5, 2019 15:11
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save va2577/e35dc0b283150761122300debc6f06c6 to your computer and use it in GitHub Desktop.
Save va2577/e35dc0b283150761122300debc6f06c6 to your computer and use it in GitHub Desktop.
タープ博士のトレード学校 ポジションサイジング入門 ランダムな仕掛け(マネーマネジメント)
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# タープ博士のトレード学校 ポジションサイジング入門 ランダムな仕掛け\n",
"\n",
"(マネーマネジメント)\n",
"\n",
"> 仕掛け\n",
">\n",
"> トム・バッソとのシステムワークショップでは、私たちは心理、手仕舞い、ポジションサイジングの重要性を強調してきた。\n",
"> すると、ワークショップの参加者のひとりが次のように言った。\n",
"> 「あなたはランダムに仕掛けるだけで金儲けができるのでしょうね」。\n",
"> そんなことは考えてみたこともなかったバッソは家に帰るとさっそく自分の手仕舞いとポジションサイジングをランダムな仕掛けのシステムで試してみた。\n",
"> すると、思ったとおり利益が出たのだ。\n",
">\n",
"> このアイデアに魅力を感じた私は、それを自分で証明してみることにした。\n",
"> 私は10の商品をトレードするシステムを10年分のデータを用いて検証してみた。\n",
"> このシステムは常に10の商品でポジションが建っている状態のシステムだ。\n",
"> つまり、ポジションを手仕舞いすると同時に、コイン投げによって買いか売りのポジションを仕掛けるというわけだ。\n",
"> 手仕舞いのポイントは過去20日の真の値幅の平均の3倍に設定し、1ポジション当たりのリスクとしては100万ドル口座の1%に設定した。\n",
"> このシステムでは常に10の先物ポジションが建っている状態でなければならない。\n",
"> さらに、1ポジション当たりのスリッページと手数料として100ドルを加えたため、ランダムな仕掛けに加えて多額のコストも克服する必要があった。\n",
">\n",
"> ランダムな仕掛けでは、何らかの優位性を持っていたとしてもすべてあきらめなければならない。\n",
"> お金を稼ぐ唯一の方法は、時折発生する強いトレンドをとらえ、損失をある程度の大きさに抑え、正しいポジションサイジングを用いることのみである。\n",
">\n",
"> こうして自分のシステムを検証した結果、トム・バッソの結果と一致した。\n",
"> つまり、ランダムに仕掛けても着実にお金を稼ぐことができるということである。\n",
"> 大金を稼ぎ出すわけではなく、ドローダウンも乗り切らなければならないが、10年間という期間で見れば利益が出た。\n",
">\n",
"> <cite>タープ博士のトレード学校 ポジションサイジング入門 第3部 自分がトレードするそれぞれの市場タイプに合うトレーディングシステムの開発</cite>"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"%matplotlib inline\n",
"import matplotlib.pyplot as plt\n",
"import math\n",
"import numpy as np\n",
"import pandas as pd\n",
"import random"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>open</th>\n",
" <th>high</th>\n",
" <th>low</th>\n",
" <th>close</th>\n",
" </tr>\n",
" <tr>\n",
" <th>time</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>2017-12-27</th>\n",
" <td>113.226</td>\n",
" <td>113.379</td>\n",
" <td>113.147</td>\n",
" <td>113.347</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2017-12-28</th>\n",
" <td>113.346</td>\n",
" <td>113.348</td>\n",
" <td>112.664</td>\n",
" <td>112.866</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2017-12-29</th>\n",
" <td>112.866</td>\n",
" <td>112.969</td>\n",
" <td>112.472</td>\n",
" <td>112.658</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2018-01-01</th>\n",
" <td>112.658</td>\n",
" <td>112.658</td>\n",
" <td>112.658</td>\n",
" <td>112.658</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2018-01-02</th>\n",
" <td>112.594</td>\n",
" <td>112.789</td>\n",
" <td>112.570</td>\n",
" <td>112.773</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" open high low close\n",
"time \n",
"2017-12-27 113.226 113.379 113.147 113.347\n",
"2017-12-28 113.346 113.348 112.664 112.866\n",
"2017-12-29 112.866 112.969 112.472 112.658\n",
"2018-01-01 112.658 112.658 112.658 112.658\n",
"2018-01-02 112.594 112.789 112.570 112.773"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"def read(filepath):\n",
" names = ['time', 'open', 'high', 'low', 'close']\n",
" dtype = { 'time': str, 'open': float, 'high': float, 'low': float, 'close': float }\n",
" df = pd.read_csv(filepath, header=0, names=names, index_col='time', usecols=names, dtype=dtype, parse_dates=['time'])\n",
" return df\n",
"\n",
"df = read('~/Documents/1/data/D/USDJPY.csv')\n",
"df.head()\n",
"df.tail()"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"time\n",
"2017-12-27 0.455752\n",
"2017-12-28 0.486185\n",
"2017-12-29 0.487627\n",
"2018-01-01 0.422610\n",
"2018-01-02 0.395462\n",
"Name: atr, dtype: float64"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"def atr(df, periods=14):\n",
" close = df['close'].shift(1)\n",
" high = df['high']\n",
" low = df['low']\n",
" s1 = high - low\n",
" s2 = high - close\n",
" s3 = close - low\n",
" tr = pd.concat([s1, s2, s3], axis=1).max(axis=1)\n",
" atr_ = tr.ewm(span=periods).mean()\n",
" return atr_.rename('atr')\n",
"\n",
"atr(df).head()\n",
"atr(df).tail()"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>open</th>\n",
" <th>high</th>\n",
" <th>low</th>\n",
" <th>close</th>\n",
" </tr>\n",
" <tr>\n",
" <th>time</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>2017-12-25</th>\n",
" <td>113.260</td>\n",
" <td>113.350</td>\n",
" <td>113.219</td>\n",
" <td>113.225</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2017-12-26</th>\n",
" <td>113.225</td>\n",
" <td>113.352</td>\n",
" <td>113.119</td>\n",
" <td>113.227</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2017-12-27</th>\n",
" <td>113.226</td>\n",
" <td>113.379</td>\n",
" <td>113.147</td>\n",
" <td>113.347</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2017-12-28</th>\n",
" <td>113.346</td>\n",
" <td>113.348</td>\n",
" <td>112.664</td>\n",
" <td>112.866</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2017-12-29</th>\n",
" <td>112.866</td>\n",
" <td>112.969</td>\n",
" <td>112.472</td>\n",
" <td>112.658</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" open high low close\n",
"time \n",
"2017-12-25 113.260 113.350 113.219 113.225\n",
"2017-12-26 113.225 113.352 113.119 113.227\n",
"2017-12-27 113.226 113.379 113.147 113.347\n",
"2017-12-28 113.346 113.348 112.664 112.866\n",
"2017-12-29 112.866 112.969 112.472 112.658"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"def drop(df):\n",
" df2 = df.dropna()\n",
" df3 = df2[(2005 <= df2.index.year) & (df2.index.year <= 2017)]\n",
" s1 = df3['open'] == df3['high']\n",
" s2 = df3['open'] == df3['low']\n",
" s3 = df3['open'] == df3['close']\n",
" df4 = df3[~(s1 & s2 & s3)]\n",
" return df4\n",
"\n",
"df2 = drop(df)\n",
"df2.head()\n",
"df2.tail()"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"# def lot(money, entry, stop, unit=10000, ratio=0.01):\n",
"# r = math.floor(round(money * ratio / abs(entry - stop), 2) / unit) * unit\n",
"# return r\n",
"\n",
"# lot(1000000, 112.60, 112.40, 10000) # 50000\n",
"# lot(1000000, 112.61, 112.40, 10000) # 40000\n",
"# lot(10000, 1.1990, 1.1970, 10000) # 50000\n",
"# lot(10000, 1.1991, 1.1970, 10000) # 40000"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"time\n",
"2017-09-14 -8.699360e+05\n",
"2017-09-27 -1.079048e+06\n",
"2017-11-20 -3.240375e+05\n",
"2017-12-08 -3.142683e+05\n",
"2017-12-29 4.051100e+05\n",
"dtype: float64"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"def test(df, pip=0.01, spread=0.3, unit=10000, periods=20, x=3.0, money=100000000, ratio=0.01):\n",
" lot = lambda money, entry, stop, unit, ratio: math.floor(round(money * ratio / abs(entry - stop), 2) / unit) * unit\n",
" sp = pip * spread * unit\n",
" m = money\n",
" df2 = pd.concat([df, df['close'].shift(1), atr(df, periods=periods).shift(1)], axis=1)\n",
" pl = pd.Series(np.full(df2.index.size, np.nan), index=df2.index)\n",
" ls = entry = stop = lot_ = np.nan\n",
" for row in df2.itertuples():\n",
" time, open_, high, low, close, close2, atr_ = row\n",
" if np.isnan([close2, atr_]).any():\n",
" continue\n",
" if np.isnan(ls):\n",
" # entry\n",
" ls = random.choice([-1, 1])\n",
" entry = open_\n",
" stop = istop = close2 - (atr_ * x * ls)\n",
" lot_ = lot(m, entry, stop, unit, ratio)\n",
" if lot_ <= 0:\n",
" ls = entry = stop = lot_ = np.nan\n",
" if not np.isnan(ls):\n",
" tmp = close2 - (atr_ * x * ls)\n",
" if (0 < ls and stop < tmp) or (ls < 0 and tmp < stop):\n",
" # trailing stop\n",
" stop = tmp\n",
" if (0 < ls and low <= stop) or (ls < 0 and stop <= high):\n",
" # exit\n",
" p = (stop - entry) * lot_ * ls - sp\n",
" pl[time] = p\n",
" m += p\n",
" ls = entry = stop = lot_ = np.nan\n",
" if not np.isnan(ls):\n",
" p = (close - entry) * lot_ * ls - sp\n",
" pl[time] = p\n",
" m += p\n",
" ls = entry = stop = lot_ = np.nan\n",
" return pl\n",
"\n",
"s = test(df2)\n",
"s.dropna().head()\n",
"s.dropna().tail()"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7fc55c64c7b8>"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAX8AAAEHCAYAAABGNUbLAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAIABJREFUeJzt3Xd4XNW1+P3vGvXeiy1Zxb3IDReMMcVUU2JDYggkIRBaCpBcCMkNuTckl9wQfm8KXJJAQgIESOgJmGI6GGMw2DK2cZeberF6rzP7/eOMZNmWrDaaolmf59Hj0ZlzdJbt0Zo96+yzthhjUEop5V9sng5AKaWU+2nyV0opP6TJXyml/JAmf6WU8kOa/JVSyg9p8ldKKT/k9clfRB4TkSMisnMQ+94vItucX3kiUueOGJVSyteIt8/zF5EzgSbgSWNMzhCOuw2Yb4y5ftSCU0opH+X1I39jzHqgpvc2EZkkIm+KyBYR+UhEpvdx6NXAM24JUimlfEygpwMYpkeA7xhj9ovIqcBDwDndT4pIJpANvO+h+JRSyqv5XPIXkUhgKfCCiHRvDjlut6uAF40xdnfGppRSvsLnkj9WqarOGDPvJPtcBdzipniUUsrneH3N/3jGmAbgsIhcASCWud3PO+v/ccBGD4WolFJez+uTv4g8g5XIp4lIsYjcAHwduEFEtgO7gFW9DrkKeNZ4+zQmpZTyIK+f6qmUUsr1vH7kr5RSyvU0+SullB/y2tk+iYmJJisry9NhKKWUT9myZUuVMSZpoP28NvlnZWWRm5vr6TCUUsqniEjBYPbTso9SSvkhTf5KKeWHNPkrpZQf0uSvlFJ+SJO/Ukr5IZck/4FW2xKRs0WkvtcqW3e74rxKKTUaSutacTjGdvcDV438/w6sGGCfj4wx85xf97jovEop5TLtXXbueXU3S+97nxe2FHk6nFHlkuTf12pbSinlS/Krmln98EYe+/gwATZhS0EtAMYYfv3GHj45WOXhCF3LnTX/00Rku4i8ISKz3HhepZQ6qQNHmrj0DxsorGnhL9csYMnEePaWNwLw2eEa/vLhId7YUe7hKF3LXcn/cyDTGDMX+APwcl87icjNIpIrIrmVlZVuCk0p5U/K6lvZsP/YUfxbu8ppau9izS2nc+GsVGakRrOvvBG7w/DnDw8C0NIxthYGdEvyN8Y0GGOanI/XAkEiktjHfo8YYxYaYxYmJQ3YmkIppYbs92/n8Z1/bDlm2+b8GqYkR5KVGAHA9HHRtHc5eHNnOev2WQPRlo4ut8c6mtyS/EUkVZwL7orIYud5q91xbqWU6m1LQS1N7V3YnbN57A7DloJaFmbF9+wzPTUKgJ+/souI4AAmJkbQPMZG/i5p7OZcbetsIFFEioGfA0EAxpg/A6uB74pIF9AKXKUrbSml3K2muYNDVc0AtHbaiQwJZF95I41tXSzOjuvZb3JyJAE2oaqpnRuXZbO7rIHWfkb+DoehvrWTqNBAAgN859YplyR/Y8zVAzz/R+CPrjiXUkoN19bC2p7HLe1dRIYEkltgTVRcmHl05B8aFMCkpAgOVTZz/bJs7l6zk9K6zp7nN+yv4pev7aaqqZ3alg4cBs6bkcLfrl3ovr/MCHltS2ellHK17umbQE8ZZ3N+LanRoaTHhR2z743LJtLQ1sn42DDCgwNp7Txa9nns48NUNrWzIieVhIhgPth3hANHGt3zl3ARTf5KKb9xTPJv78IYw+bDNSzMisN5WbLHlYsm9DyOCAmgud0q+zS0dfLR/kquW5rFf10y0/mz7Dy3udANfwPX8Z0ClVJKjUCn3cH24jqmpkQC1tTN4tpWyhvaWJwdf9Jjw4MDe5L/e3sq6LQbVuSM63k+MSqY5g67T80I0uSvlPILe8saaet0cMYUaxp5c0dXn/X+vkSEBNLSacfhMLyxo5zU6FDmT4jteT4pMgSAqsaOUYre9TT5K6X8whZnoj9rqpX8a5s72JxfS1RIINOcUzv7ExUSiDFQ2dTOurxKVuSkYrMdLRMlRVnJv7KpbZSidz2t+Sul/MKWwjrGx4SydFICMWFBfHygmh0ldZySGUeATU56bESIlSpf3V5KR5eDi3JSj3m+J/k3to9O8KNAR/5KKb/weUEt8zPjCAywcfa0JN7ZXU5eRROLsuIGPDYy1Er+L+QWkxgZcswNYaDJXymlvFJ5fRslda0syLAS/TnTk2losy7OLso6eb0frLIPwL6KRlbkpJzwSSEhIoTgABvFta0ujnz0aNlHKTXmfe68uWtBppX8z5qahE0gwCbM7XXhtj/dZR+Ai3vN8ukWYBMmJ0f2dAL1BZr8lVJj3paCWkKDbMwcHw1AbHgwSycl4jCG0KCAAY+PdCb/uPCgfqeFTh8XxccHfKfnvyZ/pdSYt6WgljlpsQT16r3z8DdOYbANxqKcNf8LZ6X2279nRmo0//68hJrmDuIjgkca8qjTmr9SakzosjuobmrnSOOx0y3bOu3sKq3nlMxjL+xGhQYRHRo0qJ89LiaU1QvSuX5Zdr/7TB9nTRfdW94wxMg9Q0f+SimfZIxha1Edz3xWyDt7KqhrOdp47dVblzE7PQaAHSX1dNpNT71/OAIDbPz2irkn3Wd6qlVS2lPWyNJJJyxX4nU0+SulfEqn3cEzmwp5+rNC9pY3Eh4cwIqcVDLiw4kKDeLetXt4Y2dZT/Lv7udzSsbAF3ZHIikqhMTIYPaW6chfKaVc7qEPDnL/u3nMTovh3stns3Le+J4LsgDv7C7nvT1H+PGK6YA1vz87MYIEZwuG0TRjXLTPzPjRmr9Symc0t3fx2MeHOW9GCq/etoyvnZpxTOIHq6/+vopGimpaMMbweWEt80d51N9tSnIUB4404QtrVWnyV0qNqprmDpraj3a7/O4/tnDB/R/yw+e388Qn+WwpqKWjy9Hnsc3tXaz608e8ubMcgGc2FVLf2sn3lk/q93znzUgB4N09FRTWtFDV1DGiev9QZCaE09pp94k7fbXso5QaVdc9vomEiGAe/9Zimtq7eHNXOZnx4XyYd4R/fV4MwOLseJ69ackxzdIA/vlZAduL6vj1G3s4a2oSf/3oEEsmxnNKRv/JPCsxgklJEbyzu4KYMGs2jzuTP0BBTQvJ0aFuOedwafJXSo0au8Owt6yRDruDopoWimtbMQZ+vnIWZ09NoryhjRdzi/ndO3m8sr2Uy+an9Rzb1mnnrx8dJjkqhILqFm5+KpeKhnZ+s/rks24ALpuXxu/eyeNIYztRIYFMST55105XyUyIAKCgumVQbSM8Scs+SqlRU1rXSofdKuk8u7mQHSV1AMxJi0FEGBcTxi3LJ5OTFs3/e3MvrR1Hl0p8YUsxlY3tPPDVecwcF81H+6uYNT6aM6YMPI3yO2dPYn5GLAeONDEvI3bArp2ukhYbhk2gsLrZLecbCU3+SqlRc7jKSoLJUSH8a0sJ24vrSYsNO2bmjc0m3H3pLMrq23hmk7UUYqfdwZ/XHeSUjFhOm5TA7edPBeC2cyafsNxiX4ICbPzh6vkkRgb39O93h+BAG+Njw8ivbnHbOYdLyz5KqVGT7xwBnzk1iZe3lvBFcR1zJ8ScsN/i7HjGx4Syo6QegDXbSimpa+WXl81CRDh/Zgof/Xg5E+LDB33u9LhwNt517jEtHdwhIz6colrvT/468ldKjZpDlc1EBAcwLiaULoehqKaVOel9T7ucnBLF/iON2B2Gh9YdYMa4aJZPS+55fiiJv5u7Ez/AuJgwyuuPtpjYX9HY01XUm2jyV0qNmsNVzWQlRhBoO5pq5qSfOPIHmJIcyYEjTbyxs4xDlc3csnzSoEo83mZ8bCgVDW102R102h3c8EQu33x0EzXN3rW+ryZ/pdSoya9uJjsxgsAAK4mLwOy0vpP/5ORI2jod/Or1PUxMiuCiPvrm+4LUmFAczvV+X8gtprCmhab2Lv70wQFPh3YMTf5KqVHR0WVN75yYGNEz22ZiYgRR/XTSnJIcCUBZfRvfPWuS22bouNr4mDDA+tTzh/f3Mz8jlisXpvPUxoJjykGepslfKTUqimpbcBicZR8rkc/tp94P1sgfrOmSvef7+5rUGOvmrt+/nUdZfRs/unAa1y7NosPuYHN+jYejO0pn+yilRsXhSmumT3ZiBPWtVrvl2f3U+8FaXesrp6Rz/sxkj1yodZXukX9uQS2nT05g6aRE2rvsBNiEvArvafqmyV8pNSq6p3lmJ0aw0zmFs7+ZPt1+d+XAd+96u+iwQMKCAmjttHPnBdMACAkMIDsxgn1e1PHTJW+vIvKYiBwRkZ39PC8i8qCIHBCRL0TkFFecVynlvQ5VNRMXHkRseDCnTUpg9YL0fi/2jiUiwrTUKC7KSWV+rx5E01KixuTI/+/AH4En+3n+ImCK8+tU4GHnn0qpMSq/yprpAzA5OWrAlbDGkmduWnLCBeupKVGs3VlGa4edsOCBF40fbS4Z+Rtj1gMnu5KxCnjSWD4FYkXEN+dxKeUnjDFsKagddm/67jn+/igsOIDgwGPT67TUSIyBA0eaPBTVsdx1VSUNKOr1fbFz2zFE5GYRyRWR3MrKSjeFppTqy7p9lXzl4U94cmPBkI9t7bBTVt/GRD9N/n2ZmmJ1Ft3nJaUfr7qkbox5xBiz0BizMCnJfc2YlFIn2lpkdeB8c2d5v4ut9Kf7Yq+/jvz7kpkQQXCgzWvq/u6a7VMCTOj1fbpzm1LKS33uXPh846Fqpv73GyREBJMcHUpKdAiTkyJZMjGBRdnxPQum9NbdzTNbk3+PAJswNz2GN3aWcecF004oC7mbu5L/K8CtIvIs1oXeemNMmZvOrZQaoi67g88La1k5dzynT06gvL6disY2KurbKG9o45OD1fxtw2FsArPGx3DapAROm5jAwqw4okKDepJ/VoIm/95uWT6Z6x7fzHO5RVyzJNOjsbgk+YvIM8DZQKKIFAM/B4IAjDF/BtYCFwMHgBbgW644r1JqdOwpa6Slw855M1NYOXf8Cc+3ddrZWljHp4eq2Xiomr9/nM8j6w8RYBOWTIwnOcr6hBARorcS9XbW1CQWZ8Xzh/f2s/qUdI/O+nHJ/4wx5uoBnjfALa44l1Jq9HW3IViU1ffat6FBAdZof1ICt2O9GXxeUMs/NxXy+hdlpESHaMmnDyLCnRdO48q/bOSlrSV87dQMj8XiVRd8lVLeIbeghrTYMMY5WxUMJDQogKWTE1nl/JRQ0dCuyb8fi7LiCA6weXzBF03+SqljGGPYnF/b76j/ZOIignsea/Lvm4gQHRZEXUunR+PQ5K+UOkZhTQuVje0syo4f8rFx4Udn/ujF3v7FhgdR3+rZxV00+Ss1xlzy4Eec+7t1wz5+c741xXNR1tCTf2z40ZH/xCRN/v2J9YKRv16KV2qM2VXaMKLjc/NriAkLYnJS5JCPjXXO+bfJ8Nbc9Rex4UGU1nl2YRcd+Ss1htgdw+vD09vm/BoWZsZhG8ZKWoEBNqJCA0mLCyMk0PPNy7xVdFhQzxoHnqLJX6kxpLxhZKPJ6qZ2DlY2s3AYJZ9u8RHBWu8fQHx4MNXN7cNumucKWvZRagwpcPbUGa4tBd31/qHP9On2s0tmEh8ZPPCOfiwlOpS2TgcNbV19tsdwB03+So0hhdUjmzueW1BLcKDtpMstDuS8mSkjisEfpDjX+a1oaPNY8teyj1JjSL4z+SdGhgzr+M35NcxNj9F6/ShLjbaSf3m95y76avJXagwprLHKPk3tnRxpHFpiae2ws7OkfkT1fjU4KdHWm3PFCK/RjIQmf6XGkPyqFtJirZYM976+Z0jHbi+uo9NuRlTvV4OTEn207OMpWvNXaowwxlBY08JXTkmjucPOO7srsDtMz1qyByubOFTZTGCAEGSzERQg1LZ0cqjK2v55oXWxd0GGjvxHW2hQALHhQSOenTUSmvyVGiOqmztoau8iMyGChMhgXtxSzK7Seuakx7KtqI4r/7Kx3xW5kqNCmJgUweoF6cSEe+YCpL9JjQ6lzIM3emnyV2qMKHBe7M1MCGdOeiwAH+2vIikqhJuezCUlOoQHvjofEeiyGzrtDqJCA8lOjCAqVBO+u+WkxfDilmLuXrOTuy6a4fbe/pr8lRojuuf4ZyZEkBQVwvTUKN7bU8EbO8toae/inzee3rOIuPK8/70sh5iwIB7dcJgN+6u4/6vzmDshlvvfyaOlo4ufXjwDkaHfZT1YesFXqTGioLoFEZgQb13wPWNKIp8X1rGrtIEHr56vid/LhAYF8LNLZ/L0jafS2mnnKw9/wvq8Sh7bcJjyhvZRTfygyV+pMaOgupnxMUd76iyflgzAXRdN59wZeuOVt1o6OZE3f3AmseFBfOcfW2hs7+LGZdmjfl5N/kqNEQU1LWT06qS5dHIi6+48m5vPnOTBqNRgxIQHcdMZE2npsLM4K565E2JH/Zya/JUaIwqqW8hKPLaNcpaupuUzvrEkk7OnJXHnhdPccj694KvUGNDQ1klNcwcZ8ZrsfVVESCB//9Zit51PR/5KjQHdDd2yEnQBFTU4mvyVGgO65/hnaPJXg6TJX6kxoKDm6Bx/pQZDk79SY0BBVQuJkcFEhuhlPDU4mvyVGgMKapp11K+GRJO/UmNAQXULmfFa71eDp8lfKR/X1mmnrL5NR/5qSFyS/EVkhYjsE5EDIvKTPp6/TkQqRWSb8+tGV5xXKQVFNUe7eSo1WCO+OiQiAcCfgPOBYmCziLxijNl93K7PGWNuHen5lFLH6t3KWanBcsXIfzFwwBhzyBjTATwLrHLBz1VKDUJ+tU7zVEPniuSfBhT1+r7Yue14XxGRL0TkRRGZ0NcPEpGbRSRXRHIrKytdEJpSY19hTQtRIYHE6QpcagjcdcH3VSDLGDMHeAd4oq+djDGPGGMWGmMWJiUluSk0pXxbfnULmYnho97/XY0trkj+JUDvkXy6c1sPY0y1Mabd+e3fgAUuOK9SCiisbiZTG7qpIXJF8t8MTBGRbBEJBq4CXum9g4iM6/XtSmCPC86rlN/rsjsorm3Vi71qyEY828cY0yUitwJvAQHAY8aYXSJyD5BrjHkF+L6IrAS6gBrgupGeVykFpXVtdDmMJn81ZC5pBGKMWQusPW7b3b0e3wXc5YpzKaWO0pk+arj0Dl+lfFiB3uClhkmTv1I+rLC6mZBAGylRoZ4ORfkYTf5K+bD8amvRdptNp3mqodHkr5QPK6xu0Xq/GhZN/kr5KGOMs4+/1vvV0GnyV8pHHWlsp63ToYu2q2HR5K+Uj8qvsqZ5ZmjZRw2DJn+lfFT3NE8d+avh0OSvlI8qqG4mwCaMjw3zdCjKB2nyV8pHFVS3kB4XRlCA/hqrodNXjVI+qsA5x1+p4dDkr5QPMsaQX63TPNXwafJXygfVtXTS2NZFls70UcOkyV8pH9Q900fLPmq4NPkr5YMKnK2csxJ15K+GR5O/Uj6ooFpH/mpkNPkr5YMKqltIjQ4lNCjA06EoH6XJXykfVFDdTIbO9FEjoMlfKR9UUNOibR3UiGjyV8rHNLd3UdnYrn381Yho8lfKxxTqur3KBTT5K+Vjuqd5ZsbryF8NnyZ/pXxMzzRPHfmrEdDkr5SPya9uIS48iJiwIE+HonyYJn+lfExhTbNe7FUjpslfKR+TX9WiF3vViGnyV8qHtHfZKatv1ZG/GjFN/kr5kOLaVhwGMrWnjxohTf5K+ZDCap3jr1zDJclfRFaIyD4ROSAiP+nj+RARec75/GcikuWK8yrlb/K75/hr2UeN0IiTv4gEAH8CLgJmAleLyMzjdrsBqDXGTAbuB/7fSM+rlD8qqG4hPDiAxMhgT4eifJwrRv6LgQPGmEPGmA7gWWDVcfusAp5wPn4ROFdExAXnVmpMaG7v4rENh2lo6zzpfoU1LWQmRKC/PmqkAl3wM9KAol7fFwOn9rePMaZLROqBBKCq904icjNwM0BGRoYLQlPK+xXVtHDTk7nsLW+krcvO986e3O+++dXNTE2OcmN0aqzyqgu+xphHjDELjTELk5KSPB2OUqPuk4NVrPzjBkrrWkmJDmHD/qp+97U7DMU1rWQm6sVeNXKuSP4lwIRe36c7t/W5j4gEAjFAtQvOrZRPMsbw1MZ8rnl0EwmRIay5dRkr544nN7+W1g57n8eU1bfSYXdoQzflEq5I/puBKSKSLSLBwFXAK8ft8wpwrfPxauB9Y4xxwbmV8km/eGUXP1uzi7OnJvHS95aSnRjBsilJdNgdfHa473FR9zRPXcRFucKIk78xpgu4FXgL2AM8b4zZJSL3iMhK526PAgkicgC4AzhhOqgrtXf1PXJSyhsU1bTwxMYCrl6cwSPfXEhUqNWgbXFWPMGBtn5LP/nazVO5kCsu+GKMWQusPW7b3b0etwFXuOJcA6luaueyhz7mpjMmcs2STJ0VobzOrtJ6AL66aAIBtqOvz7DgABZlxfFRP8m/oKaZ4AAb42LC3BKnGtu86oKvK9hEmJwUyd1rdnHL058POHVuNBhjeOrTAr7+t0+58i8bqWpqH9LxdodWxMaynSUNBNiE6aknztpZNjmJfRWNvLK9lOMrowVVLaTHhx3zhqHUcI255B8XEcyj1y7iroum89auCi558CP2VzS67fx1LR3c9OQWfvbyTo40tLPpcA1v7iwf9PF/+fAg8+95m02Ha0YxSuVJu0rrmZwUSWhQwAnPXbEwnZy0aL7/zFaufXxzz6pd0L1ou17sVa4x5pI/gM0mfPusSTz/7dNobrfzXy/tPGEUNRqKalq45MENfJh3hLsvncnbt59JZkI47+89MqjjNx6s5tdv7KWhrYsb/r6ZveUNoxyx8oRdpQ3MSovu87nEyBDW3LKMn39pJp8X1HLB/evZUlCLMYaC6mYytKGbcpExmfy7LciM4/bzprApv6bfOqqrNLd3cdOTuTS2dfLid5Zy/bJsRIRzpifz8YGqfqfvdatsbOf7z25lYlIE795xJhEhgVz72CZK6lpHNW7lXkca2zjS2M6s8TH97hNgE751ejbv3nEWxsBbu8qpauqgpcOuM32Uy4zp5A9w5aIJpMWG8bu3943a6N/hMPzw+e3kVTTyx6+dwtwJsT3PnTs9hfYuB58cPPnNO7c/t42G1k4e+vopTE6O4u/XL6Klw861j22ivtX91y3GqrL6Vq7/+2be3jX4UtxQtHWe/E1+V6n1aW7W+L5H/r2lxoQyY1wUO4rrjy7armUf5SJjPvmHBAbw/XMns724ftDll+MN9Kbx4Pv7eXNXOT+9eAZnTj32zuTF2fFEBAfw7p7+z/3H9w+w4UAV96yaxfRUKylMT43mkWsWcqiyiT+8t39YcasTPfjeAd7fe4Sbn9rCHc9to77FNW+sFQ1t/MezW5n187f484cH+33N7HYm/5mDSP4As9Nj2FFSz/q8SkBbOSvXGfPJH+DLp6STHhfGg+8fGPLo/0hjG3P/5+1+L9q+saOMB97dz+oF6dywLPuE54MDbZw5NYn391b0ee4P8yp54L08Lp+fxpULJxzz3GmTEli9IJ0nNxZQVNMypLjViUrqWnlxSxFXL57AD86dwivbS7nggQ95c2c5jmHOsOrocvDI+oOc89t1rN1Rztz0GO57Yy93/XsHnXbHCfvvLKknMyGc6NDBLb6+al4aDmN48P0D2ATS4zT5K9fwi+QfFGDje2dPZntR3ZBr/69sK6WhrYtXt5f2bGvvsvPq9lI+PVTNHc9vZ35GLL+6PKffewrOmZ5MRUP7Cedeu6OMm57IZWpyFP97Wd/H337+VGw2+O3b+4YUtzrRQx8cAOC2c6Zw+/lTefmW04kNC+Y7/9jCefd/yNOfFQ5pcPDR/kou+r/13Lt2L0smJvD27Wfy4neWcuvyyTy7uYhvPb75hJLdrtIGck5S7z/eoqx4PvzRcq5bmsU3lmQSHOgXv7LKDfzmlfSVBWkkR4Xw6IbDQzrupa1Wm6L1+yvptDvotDu49emt3PbMVq565FNiwoL4yzcWEBJ44rS9bpfOGU92YgQ/fWkHTe1dADy1MZ9bnv6cnLRonvv2EiJC+r7fblxMGDcsy2bNtlJ2ltQPKXZ1VGldK8/nFnHlwgmMj7VukspJi+G17y/jga/OIzw4gJ++tIMNBwYeHBhjuPOF7Vzz6Ca6HIbHrlvIo9ctIisxAptNuPPCafz2irl8dria1Q9/Qm1zBwD1rZ0U1rQMuuTTLSkqhF+snMU9q3KG/hdXqh9+k/xDAgP42qkZfJhXSX5V88AHAHkVjewqbWDJxHga27rYnF/D7c9t453dFdx2zmSuXpzBo9ctJDk69KQ/Jyw4gN+snkNJXSv3rt3Db9/ax8/W7OLc6cn888YlxIaffGGOb581ibjwIO57Y++g/77qWA+vOwjA95Yf2y45KMDGZfPTeOp6qwv5vvKB7wn59FANL24p5vrTs3nrP87knOkpJ+yzekE6T3xrMQXVLdz+/DYcDtNT7x/MxV6lRpvfJH+Ary3OINAm/OPTgkHt/9LWEgJswn1fnkOgTfj+M1t57Ysy7rpoOj+8YBq//vLsk07Z621hVjw3Lsvm6c8K+eMHB7hq0QT+/I0FhAX3/4mhW3RoEDeeMZENB6q09j8MZfWtPLe5iNULrJlffYmLCCYmLIjDgxgYPLL+IImRwfx4xbQ+b9TqtnRyInd/aSbr9lXy4Pv7e9o6DPY1o9Ro8qvknxwdyoU5qTyfWzTgvHuHw7BmawlnTkkkKzGChVlxVDV18INzp/DtsyYN6/w/vGAay6cl8cPzp/LrL88mMGDw//yXzhkHWHO+1dD8ed1BHMbwvbNP/v+WlRjRs0Zuf/IqGvlgXyXXnpZ10sTf7eunZnD5/DT+7739fJhXSUp0CElRIUOKX6nR4FfJH+CbSzJPuIDbl88O11Ba38blp6QD8N+XzOS3V8zlP86bMuxzhwYF8Pi3FnPbuVOG3HAuMyGCGeOiNfkPUUtHFy9sKWbVvDQmDHB3bFZCOPlVJ/9k9df1hwgLCuAbSzIHdX4RYeXc8RgDnxysHtLFXqVGk98l/8XZ8WTEh/PmAEn0pa3FRIYEcv4Mq56bkxbD6gXpHu0SeuGsFHILaqlsHFqjOH/2zu4KWjqpk9GNAAAXJ0lEQVTsXLEwfcB9sxIiKK1v7fdGrSMNbby8rYQrF6YTFzH4BdTHxVrXhOwOo/V+5TX8LvmLCMunJfHJwap+f8nbOu28saOcFTmpg6rJu8uKnFSMsRKaGpyXt5YwPiaUxVnxA+47a3w0xsC6fZV9Pv/4J/nYHYbr+7if42TGRR+9zjBTR/7KS/hd8gdYPj2Ztk4Hnx7qe8Wkd/dU0NjexZfnp7k5spOblhJFVkI4a3eUeTqUUWGM4cmN+ZTVu6afUXVTO+v3V/GleeOxDaIN8jnTk8lOjODB9/afMN+/qb2Lf35awIqc1CG3WIgOCyTcOYjI6aehm1Lu5pfJf8nEBEKDbHyY1/cI7+WtJaRGh3LqxAQ3R3ZyIsKqeWl8fLCK4tqxN+vn00M13L1mF89tLnLJz3t9Rxl2h+HyQb6JBwbYuHX5ZHaXNZzQCuT5zUU0tHVx0xkThxyHiDAuJpSYsKB+Zxsp5W5+mfxDgwKYkxbLF8Un3jRV3dTOun2VrJo/3isXzeiuXb+QW+zhSAZne1Edz24qHNS+3VNwe0+3bGzrJDe/hrd2lQ+5NcdLW0uYnhrV0y9pMFbOG09qdCh//yS/Z1uX3cGjGw6zOCue+RlxQ4qh2ykZcZw9LUlXllNewyXLOPqiWWnRPLupCLvDHJPkX/uijK4hjBbdLT0unGWTE/nX58Xcfv5UT4fTL7vD8PC6A9z/7n7sDkNWYgRLTvJJ6khDW89MpsNVzWw6XMNP/vUFh3q9ETz09VO4ePa4QZ2/oLqZrYV1/OeK6UOKOyjAxjWnZfKbt/ZxuKqZ7MQI1u4sp6Sulf9ZOWtIP6u331wxd9jHKjUa/HLkD5AzPobWTjuHKpuO2f7S1hJmjIse0mjR3c6ckkRxbWtP2wBvU1TTwtf++im/fTuPi3JSSYoK4d61e0569+yzm4vochjOmprEvvJGrn1sEwb40YXTePTahWTEhw+pNceabdZU3lXzxg85/jOmJAJw4EgTxhgeWX+QSUkRnDM9ecg/Sylv5bcj/9np1qyLnaX1TEmx1lLdU9bAtqI6fnrx0EaL7jYlJRKwbjjyhusST23MZ1N+LQkRwQTahKc3FWIT4Ter57B6QTqvbC/lRy9+wYUPrGdRVhzfWJLJxbPHEeS8ya3L7uCZTYWcMSWRc6Yn82FeJVOSI3n6piU9N0QVVLdwz2u72VZUx7xe6yX0xRjDy9tKODU7vqePz1DEOdtt1LZ0sPFQNTtLGrjvy7MHddFYKV/ht8l/YmIEoUE2dpY0MGNcA4+sP8Qr20qJCA5g1TzvLPl0m+Zc+Nsbkn9LRxe/WruH4AAbBmhs6+LsaUn86vLZPRc3V81L48wpSbywpYh/flbID57dxs6Sev7rkpkAvL/3CGX1bfxi5Sxy0mLYV9HIHedPJTHy6J2wVy6awP3v5PHohsP84er5J41pR0k9hyqbh3VxFiA23Gq3XN/SydodZSRGBnOZl5YBlRouv03+gQE2ZoyL5unPCnl0w2HCg627Nm9Ylk3KAI3aPC01OpSI4AAOVg6uQd1o+mBvJW2dDh6/bjGnTUqgy+7os21FXEQwN585iRuXTeTGJ3N57YsyfnrxDESEpz4tYFxMKOdOTyYwwMa9l88+4fjIkEC+umgCj3+Sz10XTT/piP7lraUEB9i4OGdw1wf6OlegTfjscA3r9lXyw/OnDqqVg1K+xG9r/gDnzUghNjyIH104jU9+cg6/WDlrwBYA3kBEmBAfTnGt59f3tUbGISzOtm6iGqhfkc0mrJiVSll9G3vKGsmvauaj/VVctShjwGOvXZqFMYanTtKYz+4wvPpFKcunJxETPrgFU44nIsSGB/HunoohtXJQypf47cgf4Jblk7nluBa/viI9Lszjc/1bO+y8v/cIX1mQNqRpscudF07f31tBfWsngTbhqsUTBjgKJsSHc9bUJNZsLeFHF0zrswb/ycEqKhvbuWyEpbuYsCCqmjqG3MpBKV/h1yN/X5YeZ438R2tR+sH4YN8RWjvtg55+2S0pKoS5E2J5Y2c5L2wp5oJZKYMuta2al0ZpfRtbCmv7fP6lrSVEhQb2vMEMV2x4MDaBG5YN77qBUt5Ok7+PSo8Lo6m964RlAt3p9R1lJEQED6pvzvHOnZ7MrtIG6lo6+capgy+rnD8zhdAgG69sO7Era2uHnbd2lnNxzrgR1+gvmT2OW5dPJkMXTFdjlCZ/H9W9kLen6v6tHXbe33OEC3NSh7QuQbfuOfMTkyI4bdLgZyxFhARy3owUXt9RdsIC6e/uqaC5w86q+UOf23+865dlc8cF00b8c5TyViNK/iISLyLviMh+55993vsuInYR2eb8emUk51SW9DhrtounVvZa5yz5XDLEkk+3WeOjuXBWCnecP3XILQ9Wzh1PTXMHd6/ZSU2vG926ezItyfb8vQ9KebuRjvx/ArxnjJkCvOf8vi+txph5zq+VIzyngp6pjmX1bR45/+s7yoiPCObU7KGXfMCaUfOXaxZy6Zyhj9LPnZHCtadl8nxuMd/9xxYAapo7+DCvkpWD7OCplL8b6WyfVcDZzsdPAOuA/xzhz1SDEB1q/dd5oubf1mnN8lk1L21YJZ+RCrAJ/7Mqh8AAG//8rACHw/D6Dqsn00hn+SjlL0b6m5tijOluLl8OpPSzX6iI5IrIpyJyWX8/TERudu6XW1nZd7tlZQkMsBEZEkhDm/uT/7p9R2jpGH7Jx1UmJUXS1umgtL6VNVtLmJoSyYxxUR6NSSlfMeDIX0TeBVL7eOq/en9jjDEi0t+8w0xjTImITATeF5EdxpiDx+9kjHkEeARg4cKFnpvD6CNiwoJOOvI3xlDb0km8i+epr91RTnxEMEsmDq/k4yqTkqxFVdbtqyS3oJYfXThNWyYrNUgDjvyNMecZY3L6+FoDVIjIOADnn0f6+Rklzj8PYZWGTt6cRQ1KdFgQDa1d/T7/wpZilt73HtVNrlvzt63Tznt7KrhwVopHSj69TUq2Gtz96YMDwPA6eCrlr0b62/sKcK3z8bXAmuN3EJE4EQlxPk4ETgd2j/C8CogJC6ThJCP/9/ccoa3TwZaCvm+IGo4P8ypp7hj6jV2jISEimOjQQMrq21icFd8z/VUpNbCRJv/7gPNFZD9wnvN7RGShiPzNuc8MIFdEtgMfAPcZYzT5u0B0aFC/NX+Hw/DpYWuN4q1FdS4759odZcSFB3GaF7SSFpGe0b8r5vYr5U9GNNvHGFMNnNvH9lzgRufjT4AT2zSqEUuIDGFzfk2fz+0tb6SuxXpj+NxFI3+r5HOES+eM83jJp9vkpEh2ltR7/OKzUr7Grxu7+brJyZHUtnRS1dR+TO97gE8PWaP+C2elsD6vqt9Wy0OxPq+SpvYuryj5dPv+uVNYNS+N2HBtvqbUUHjH8E0NyxRnyWN/RdMJz208VE1mQjgXzx5Ha6edfRX9L6E4WGt3lBEbHjSkdgyjbUJ8OMucyy4qpQZPk78Pm+pcfnL/kWMTu91h+OxQNadNTCArwZoOWT7CO4HbOu28u+cIF85M7Vl+USnlu/S32IelRIcQFRJI3nGj+j1lDTS0dbFkYkLPkoTd9f/h+mh/lVXymeM9JR+l1PBpzd+HiQhTUiLJKz+27NNd7z9tUkJPa+Palo4Tjh+KtTvKiAkLYqkXlXyUUsOnI38ft3RSIpvya9hScHTWz8aD1UxMjCAlOpSokEBsMrIeQO1ddt7dXcEFM1O05KPUGKG/yT7uu2dPYnxMKHf9ewcdXQ667A42Ha7hVOc8fJtNiA0PHtHI/6O8Khq15KPUmKLJ38dFhARyz6oc8iqa+OtHh9hV2kBje9cxM3Jiw4KGVPM3xrC7tIGOLmuxlLU7yogODeT0STqrRqmxQmv+Y8B5M1O4KCeV/3tvf8/KXr2brkWFBtLU3n8PoG7GGNblVfLAu/vZXlTHPatm8dVFE3hndwUX5qQSHKhjBaXGCk3+Y8QvVs7io/1VPLOpkMnJkSRHHV0QPTjQ1jOK74sxhvX7q7j/nTy2FdWRFhtGaJCN/RVNbNhvlXz0DlqlxhYdyo0RKdGh/HiFtebs8a2WgwNttPeR/I0xbNhfxeo/b+TaxzZxpKGNey+fzQd3ns2U5CgKalp4vbvkM1lLPkqNJTryH0O+fmomNc0dXHrchdmQwIA+Wz//8Pnt/HtrCeNiQvnlZTlcuTCdkEBramhGfDjbiurYWtjJBTO15KPUWKPJfwwJsAn/cd7UE7YHB9ho77Ifs+3DvEr+vbWEG5dl86MV03qSfreMhHBe32Et0nbJnL7W8lFK+TIdzvmB42v+XXYHv3xtN5kJ4X0mfrBG/mBdLF42OcltsSql3EOTvx8ICbTR1nk0+f/zs0IOHGnipxfP6DPxw9Hkf/7MFC35KDUGadnHDyRHh1DV1E6n3UFzexf3v5vH0kkJXDAzpd9jZo6LJiM+nK8tznBjpEopd9Hk7weyEiLochiKa1t54pN8Glo7+dmlM0+62HlcRDDrf7zcjVEqpdxJP8/7gYlJVlvnd3dX8NSnBVy1OIMZ46I9HJVSypM0+fuB7ERr0ZffvL2P8KAA7jj/xBlBSin/osnfD8SFBxETFkRHl4PvnzvlhCUflVL+R2v+fkBEmJYSxZHGNq5dmuXpcJRSXkCTv5/4w9fmI4JO21RKAZr8/UZKdOjAOyml/IYOA5VSyg9p8ldKKT+kyV8ppfyQJn+llPJDmvyVUsoPafJXSik/JMYYT8fQJxGpBAo8HcdxEoEqTwcxTBq7Z/hy7ODb8ftr7JnGmAEX4fDa5O+NRCTXGLPQ03EMh8buGb4cO/h2/Br7yWnZRyml/JAmf6WU8kOa/IfmEU8HMAIau2f4cuzg2/Fr7CehNX+llPJDOvJXSik/pMlfKaX8kCZ/pZTyABERT55fk/9xRGSSp2MYLhEJ8nQMwyUiAc4/PfoLMRy+GHNvIhLj/NPn8oGIzBIRX12sIsyTJ/e5/+zRIiKniMh64D4RifZ0PEMhIktE5FngNyKS4+l4hkJETheRJ4D/FpF440MzEERksYj8FfhPERnwjkpvIiI2EYkWkdeABwGMMQ4PhzVoIjJHRDYA/wskeDqeoXD+vv4L+JOIXNA98HE3Tf6AiARjvYieM8ZcYYxpcG73+hGdiFwBPAy8BoQCdzi3+0LsE4GHgA+ATOCXInKJZ6MamIgEiMivsabjfQycAvxcRFI8G9ngORN9IxAEpInIV8GnRv//DbxojLncGFMCPvOaPxvrNf9vYB/wDSDOE7H4yn/0aDsFqDbG/AlARE4TkRAfGYVOAV41xvwDuB+s8o+PxL4A2GOM+TvwQ2AbcKmITPBoVAOzAYXAlc7Y/wNYgoc/xg/DdKz+MQ8AXxeRKGOMw5uTqPMTy0SgyRjzgHPb+SISC/hC6XA2sNkY80/gKaw33yZPBOKXyV9ErhSRO0TkNOemAmCaiHxJRN4Bfg78VUSu9lyUfesj9n3Al0Xkx8BGYDzWx0mv62ni/Lg7tdemzUC6iEwwxtRijaLrgC97JMCTOC52B/CMMSbPOUgoBYqxmnF5pd7x90qOB4AO4LDz61oRyfC2gUPv2J2fWKqAM0TkEhF5GbgTq3T1I+c+XhN/H6/5j4ArRORu4HNgHPCQ8xO8W/lV8nd+XL8b+E/npkdE5CtAJfAqVsnkPmPMCqxSxDkiMt0z0R6rj9j/KiIrsT4+/gA4E/imM/ZKYLWIpHom2mOJSKyIvA68A1wpIpHOp9qADcCVzu/3AbuBeG+5iNdX7MYYuzGmDsAY0y4iUUA2UOrJWPvSR/wRvZLjQqDBGLML2IU16HlYRIK8ofzTV+wAzrLs48AvgceMMRcCfwOWiMgSjwXcS3+veWPMNmAFkAV8zxhzNtagZ4WIzHBnjB7/D3YnY4wdmAb80Bjze+AXwHexPv5uB2Zh1c0B3geigGb3R3qiPmL/OXA7MNUY8x5WIt3n3H0NMAcviR2IAN4CbnM+PtO5vRL4FJgtIoudf8cS4HRjTJtHIj3R8bGf0cc+pwK7jDGlIhIpIlPcGeAA+vu3B6t0FSUizwE/BrYAecaYTi+5+Huy2F/DSqDd9fJcoAJod2N8J9Pv68YYswlIAvKdmzySa8Z88heRb4rIWc6aIFgvkDgRCTTG/AvIA1ZijUD/P+AHzlHP+UA8VlL1iEHEvgu42jnCPwisdu43Hw/GDcfEHu28IPcI8LwzrsUikuZM9huBrcD9ztHRLKBQRMK9NPZTRWS8c79A5yGxQJGIfAurlDXPE3F3G2z8WIkzCSjHes18F6v86dYRaG+DiD0NwBjzBVaZ51YRScS6cJoDVHso9KG8bkKAT4BbnIeeizVjya2/s2Oyt4+zppkKPI1Vnz2I9e77beD7QCDwoDGmzlnWeQ5YYYwpc87iGA9MAG4xxuzx8tifxXqjmoP1YhqPdQHpVmPMXi+J/QfGmCrnPqdjlXlyjTFP9Tr290A61qyfbxpj9uFGQ4x9s/MCe/exTwFfB54A7ncmJrca7r+9iCT2ej4SCDbG1PhC7M7tdwATsSY+3G6M2e0LsYvILKxP76lAJ9bvq1tzDcaYMfUFBDj/nAr8o3sb1nTIx7BGaW9ifYQMdz7/HHCH87EAkT4U+wtYtUOASGC2l8X+B+Dfx+17O9bU2hggqte+UT4Ue3T36wS4CljtidhH+G8f0Wtfm4/FHtVre5APxR4LhDm3hQETPfW6GTNlH+cF0XuBe0XkLKz6uB166uW3ApcCaVjv0lcBX3Ie3oV10QVjcevUqxHG3oFVq8UY02SM2eFlsf8AWOp8rttfsd6o3gEOiMh4Y11EbfSh2N8DDorIOGPMs8aYF90ZO7jk3/5Qr397t9b4XfW6ce7f6WOx5zvLnq3GmEPujL23MZH8nf/IW7BqmAewZgF0AstFZDH0/Kf8D/AbY8yTwNvAN0VkK1Ypxa1J049id2BdWP9Fr0MvAb6HdZF9trGmSrqVC2LfhhV7mfuiPsrP/+19Ofbu102J+6Luh6c+crj449cZwDW9vn8I6+LVdcAW5zYbVn3tRWCCc1sqHvzY5WexPw9kObetAs7U2P0zfo3dO77GxMgf6534eTnaI+NjIMNYd18GiMhtxno3Tgc6jTFFAMaYcuPBj11O/hK73RiTD2CMWWOMWe+JgHvx5djBt+PX2L3AmEj+xpgWY0y7scojYM1+qXQ+/hYwQ6wGVs9g3VXnNfwtdufsCI/z5djBt+PX2L1D4MC7+A7nu7EBUoBXnJsbgZ9izQE+bLyh1tYHf4ndOD8Dewtfjh18O36N3bPGxMi/FwdWo6QqYI7zHfhngMMYs8Fbk6eTxu4Zvhw7+Hb8Grsnefqig6u/sLorOrDu2L3B0/Fo7N7/5cux+3r8GrvnvsbcHb4ikg5cA/zeGOMtfT4GRWP3DF+OHXw7fo3dc8Zc8ldKKTWwsVbzV0opNQia/JVSyg9p8ldKKT+kyV8ppfyQJn+lnMRaeu97zsfjRcTtnTqVched7aOUk4hkAa8ZY3I8HIpSo25MtXdQaoTuAyaJyDZgPzDDGJMjItcBl2Gt0DQF+C0QjDXHux242BhTIyKTgD9hLY3YAtxk3LyamlKDpWUfpY76CXDQGDMPa33Y3nKALwOLgF8BLcaY+VhrEH/Tuc8jwG3GmAXAnVjtfpXySjryV2pwPjDWSmONIlIPvOrcvgOrt0sksBR4oVcTxxD3h6nU4GjyV2pwet++7+j1vQPr98gG1Dk/NSjl9bTso9RRjUDUcA40xjQAh0XkCrB6uIvIXFcGp5QrafJXyskYUw18LCI7gd8M40d8HbhBRLYDu7CW7lPKK+lUT6WU8kM68ldKKT+kyV8ppfyQJn+llPJDmvyVUsoPafJXSik/pMlfKaX8kCZ/pZTyQ5r8lVLKD/3/yVwd3MijpJEAAAAASUVORK5CYII=\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"s.dropna().cumsum().plot()"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{'トレード数': 121,\n",
" '勝率(%)': 33.88,\n",
" '平均利益': 1351396.51,\n",
" '平均損失': 604317.89,\n",
" '平均利益÷平均損失': 2.24,\n",
" '1トレード当たりの平均損益': 58362.19,\n",
" '最大損失額': -8624878.06,\n",
" '総損益': 7061825.56,\n",
" '期待値': 0.1}"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"def mdd(s):\n",
" s2 = s.dropna()\n",
" s3 = s2.cumsum()\n",
" s4 = s3.cummax()\n",
" s5 = s4 - s3\n",
" r = s5.max()\n",
" return r\n",
"\n",
"def stat(s):\n",
" r = lambda x: round(x, 2)\n",
" p = lambda x: r(x * 100)\n",
" s2 = s.dropna()\n",
" s3 = s2[0 < s2]\n",
" s4 = s2[s2 < 0]\n",
" profit_probability = s3.count() / s2.count()\n",
" risk_reward_ratio = abs(s3.mean() / s4.mean())\n",
" expected_value = (profit_probability * risk_reward_ratio) - (1 - profit_probability)\n",
" d = {\n",
" 'トレード数': s2.count(),\n",
" '勝率(%)': p(profit_probability),\n",
" '平均利益': r(s3.mean()),\n",
" '平均損失': r(abs(s4.mean())),\n",
" '平均利益÷平均損失': r(risk_reward_ratio),\n",
" '1トレード当たりの平均損益': r(s2.mean()),\n",
" '最大損失額': r(-mdd(s2)),\n",
" '総損益': r(s2.sum()),\n",
" '期待値': r(expected_value),\n",
" }\n",
" return d\n",
"\n",
"stat(s)"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [],
"source": [
"# 0: symbol\n",
"# 1: pip\n",
"# 2: spread\n",
"data = [\n",
" ('AUDJPY', 0.01, 0.6, 100000000),\n",
" ('AUDNZD', 0.0001, 6.0, 1000000),\n",
" ('AUDUSD', 0.0001, 0.8, 1000000),\n",
" ('CADJPY', 0.01, 3.8, 100000000),\n",
" ('CHFJPY', 0.01, 3.8, 100000000),\n",
" ('EURAUD', 0.0001, 2.3, 1000000),\n",
" ('EURGBP', 0.0001, 2.0, 1000000),\n",
" ('EURJPY', 0.01, 0.4, 100000000),\n",
" ('EURUSD', 0.0001, 0.3, 1000000),\n",
" ('GBPAUD', 0.0001, 4.9, 1000000),\n",
" ('GBPJPY', 0.01, 0.9, 100000000),\n",
" ('GBPUSD', 0.0001, 0.8, 1000000),\n",
" ('HKDJPY', 0.01, 2.8, 100000000),\n",
" ('NZDJPY', 0.01, 1.0, 100000000), # 仮\n",
" ('NZDUSD', 0.0001, 2.0, 1000000),\n",
" ('SGDJPY', 0.01, 3.5, 100000000),\n",
" ('USDCAD', 0.0001, 1.0, 1000000), # 仮\n",
" ('USDCHF', 0.0001, 1.0, 1000000), # 仮\n",
" ('USDHKD', 0.0001, 1.0, 1000000), # 仮\n",
" ('USDJPY', 0.01, 0.3, 100000000),\n",
" ('USDSGD', 0.0001, 1.0, 1000000), # 仮\n",
"]"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [],
"source": [
"d = { x[0]: read(f'~/Documents/1/data/D/{x[0]}.csv') for x in data }\n",
"d2 = { x[0]: drop(d[x[0]]) for x in data }\n",
"d3 = { x[0]: test(d2[x[0]], pip=x[1], spread=x[2], money=x[3]) for x in data }\n",
"d4 = { x[0]: stat(d3[x[0]]) for x in data }"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7fc55cbb3da0>"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"d3['EURUSD'].dropna().cumsum().plot(title='EURUSD')"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7fc55ca95908>"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"d3['USDJPY'].dropna().cumsum().plot(title='USDJPY')"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7fc55cb49240>"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"d3['EURJPY'].dropna().cumsum().plot(title='EURJPY')"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"scrolled": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>トレード数</th>\n",
" <th>勝率(%)</th>\n",
" <th>平均利益</th>\n",
" <th>平均損失</th>\n",
" <th>平均利益÷平均損失</th>\n",
" <th>1トレード当たりの平均損益</th>\n",
" <th>最大損失額</th>\n",
" <th>総損益</th>\n",
" <th>期待値</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>AUDJPY</th>\n",
" <td>110</td>\n",
" <td>44.55</td>\n",
" <td>1062923.49</td>\n",
" <td>700608.31</td>\n",
" <td>1.52</td>\n",
" <td>84964.95</td>\n",
" <td>-9151615.39</td>\n",
" <td>9346144.51</td>\n",
" <td>0.12</td>\n",
" </tr>\n",
" <tr>\n",
" <th>AUDNZD</th>\n",
" <td>97</td>\n",
" <td>35.05</td>\n",
" <td>8713.89</td>\n",
" <td>5780.46</td>\n",
" <td>1.51</td>\n",
" <td>-699.97</td>\n",
" <td>-93455.65</td>\n",
" <td>-67896.85</td>\n",
" <td>-0.12</td>\n",
" </tr>\n",
" <tr>\n",
" <th>AUDUSD</th>\n",
" <td>130</td>\n",
" <td>30.77</td>\n",
" <td>9038.00</td>\n",
" <td>5614.07</td>\n",
" <td>1.61</td>\n",
" <td>-1105.74</td>\n",
" <td>-189945.95</td>\n",
" <td>-143746.01</td>\n",
" <td>-0.20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>CADJPY</th>\n",
" <td>109</td>\n",
" <td>31.19</td>\n",
" <td>1106369.71</td>\n",
" <td>595416.33</td>\n",
" <td>1.86</td>\n",
" <td>-64583.99</td>\n",
" <td>-12369262.86</td>\n",
" <td>-7039654.81</td>\n",
" <td>-0.11</td>\n",
" </tr>\n",
" <tr>\n",
" <th>CHFJPY</th>\n",
" <td>114</td>\n",
" <td>39.47</td>\n",
" <td>832445.49</td>\n",
" <td>608384.92</td>\n",
" <td>1.37</td>\n",
" <td>-39636.07</td>\n",
" <td>-12314499.71</td>\n",
" <td>-4518512.47</td>\n",
" <td>-0.07</td>\n",
" </tr>\n",
" <tr>\n",
" <th>EURAUD</th>\n",
" <td>107</td>\n",
" <td>32.71</td>\n",
" <td>10968.02</td>\n",
" <td>6173.44</td>\n",
" <td>1.78</td>\n",
" <td>-566.42</td>\n",
" <td>-105460.64</td>\n",
" <td>-60607.06</td>\n",
" <td>-0.09</td>\n",
" </tr>\n",
" <tr>\n",
" <th>EURGBP</th>\n",
" <td>122</td>\n",
" <td>36.07</td>\n",
" <td>8063.96</td>\n",
" <td>5801.42</td>\n",
" <td>1.39</td>\n",
" <td>-800.79</td>\n",
" <td>-126822.72</td>\n",
" <td>-97696.40</td>\n",
" <td>-0.14</td>\n",
" </tr>\n",
" <tr>\n",
" <th>EURJPY</th>\n",
" <td>132</td>\n",
" <td>34.85</td>\n",
" <td>1036875.61</td>\n",
" <td>667343.65</td>\n",
" <td>1.55</td>\n",
" <td>-73449.06</td>\n",
" <td>-18969912.58</td>\n",
" <td>-9695276.15</td>\n",
" <td>-0.11</td>\n",
" </tr>\n",
" <tr>\n",
" <th>EURUSD</th>\n",
" <td>114</td>\n",
" <td>35.09</td>\n",
" <td>12065.54</td>\n",
" <td>5484.08</td>\n",
" <td>2.20</td>\n",
" <td>673.68</td>\n",
" <td>-100194.08</td>\n",
" <td>76799.57</td>\n",
" <td>0.12</td>\n",
" </tr>\n",
" <tr>\n",
" <th>GBPAUD</th>\n",
" <td>105</td>\n",
" <td>40.00</td>\n",
" <td>10379.03</td>\n",
" <td>6638.73</td>\n",
" <td>1.56</td>\n",
" <td>168.37</td>\n",
" <td>-97375.27</td>\n",
" <td>17679.31</td>\n",
" <td>0.03</td>\n",
" </tr>\n",
" <tr>\n",
" <th>GBPJPY</th>\n",
" <td>120</td>\n",
" <td>35.83</td>\n",
" <td>1338024.69</td>\n",
" <td>637445.07</td>\n",
" <td>2.10</td>\n",
" <td>70431.59</td>\n",
" <td>-8016954.33</td>\n",
" <td>8451790.77</td>\n",
" <td>0.11</td>\n",
" </tr>\n",
" <tr>\n",
" <th>GBPUSD</th>\n",
" <td>124</td>\n",
" <td>31.45</td>\n",
" <td>10097.97</td>\n",
" <td>5471.78</td>\n",
" <td>1.85</td>\n",
" <td>-574.84</td>\n",
" <td>-135377.08</td>\n",
" <td>-71280.30</td>\n",
" <td>-0.11</td>\n",
" </tr>\n",
" <tr>\n",
" <th>HKDJPY</th>\n",
" <td>99</td>\n",
" <td>31.31</td>\n",
" <td>1395856.10</td>\n",
" <td>688266.23</td>\n",
" <td>2.03</td>\n",
" <td>-35662.26</td>\n",
" <td>-10232481.46</td>\n",
" <td>-3530564.16</td>\n",
" <td>-0.05</td>\n",
" </tr>\n",
" <tr>\n",
" <th>NZDJPY</th>\n",
" <td>106</td>\n",
" <td>43.40</td>\n",
" <td>1239166.30</td>\n",
" <td>691216.98</td>\n",
" <td>1.79</td>\n",
" <td>146496.52</td>\n",
" <td>-5257997.72</td>\n",
" <td>15528630.86</td>\n",
" <td>0.21</td>\n",
" </tr>\n",
" <tr>\n",
" <th>NZDUSD</th>\n",
" <td>114</td>\n",
" <td>36.84</td>\n",
" <td>11075.89</td>\n",
" <td>5595.58</td>\n",
" <td>1.98</td>\n",
" <td>546.54</td>\n",
" <td>-86988.10</td>\n",
" <td>62305.32</td>\n",
" <td>0.10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>SGDJPY</th>\n",
" <td>78</td>\n",
" <td>39.74</td>\n",
" <td>1373167.22</td>\n",
" <td>569303.07</td>\n",
" <td>2.41</td>\n",
" <td>202704.35</td>\n",
" <td>-5358410.63</td>\n",
" <td>15810939.49</td>\n",
" <td>0.36</td>\n",
" </tr>\n",
" <tr>\n",
" <th>USDCAD</th>\n",
" <td>112</td>\n",
" <td>34.82</td>\n",
" <td>11269.43</td>\n",
" <td>5628.40</td>\n",
" <td>2.00</td>\n",
" <td>255.67</td>\n",
" <td>-97621.22</td>\n",
" <td>28634.69</td>\n",
" <td>0.05</td>\n",
" </tr>\n",
" <tr>\n",
" <th>USDCHF</th>\n",
" <td>117</td>\n",
" <td>36.75</td>\n",
" <td>8295.43</td>\n",
" <td>5976.40</td>\n",
" <td>1.39</td>\n",
" <td>-731.20</td>\n",
" <td>-150825.95</td>\n",
" <td>-85550.13</td>\n",
" <td>-0.12</td>\n",
" </tr>\n",
" <tr>\n",
" <th>USDHKD</th>\n",
" <td>62</td>\n",
" <td>38.71</td>\n",
" <td>12422.21</td>\n",
" <td>6913.51</td>\n",
" <td>1.80</td>\n",
" <td>571.28</td>\n",
" <td>-87422.25</td>\n",
" <td>35419.49</td>\n",
" <td>0.08</td>\n",
" </tr>\n",
" <tr>\n",
" <th>USDJPY</th>\n",
" <td>116</td>\n",
" <td>37.93</td>\n",
" <td>1248358.30</td>\n",
" <td>622388.72</td>\n",
" <td>2.01</td>\n",
" <td>87204.98</td>\n",
" <td>-10851268.05</td>\n",
" <td>10115777.60</td>\n",
" <td>0.14</td>\n",
" </tr>\n",
" <tr>\n",
" <th>USDSGD</th>\n",
" <td>91</td>\n",
" <td>42.86</td>\n",
" <td>14143.33</td>\n",
" <td>6212.77</td>\n",
" <td>2.28</td>\n",
" <td>2511.28</td>\n",
" <td>-61372.84</td>\n",
" <td>228526.23</td>\n",
" <td>0.40</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" トレード数 勝率(%) 平均利益 平均損失 平均利益÷平均損失 1トレード当たりの平均損益 \\\n",
"AUDJPY 110 44.55 1062923.49 700608.31 1.52 84964.95 \n",
"AUDNZD 97 35.05 8713.89 5780.46 1.51 -699.97 \n",
"AUDUSD 130 30.77 9038.00 5614.07 1.61 -1105.74 \n",
"CADJPY 109 31.19 1106369.71 595416.33 1.86 -64583.99 \n",
"CHFJPY 114 39.47 832445.49 608384.92 1.37 -39636.07 \n",
"EURAUD 107 32.71 10968.02 6173.44 1.78 -566.42 \n",
"EURGBP 122 36.07 8063.96 5801.42 1.39 -800.79 \n",
"EURJPY 132 34.85 1036875.61 667343.65 1.55 -73449.06 \n",
"EURUSD 114 35.09 12065.54 5484.08 2.20 673.68 \n",
"GBPAUD 105 40.00 10379.03 6638.73 1.56 168.37 \n",
"GBPJPY 120 35.83 1338024.69 637445.07 2.10 70431.59 \n",
"GBPUSD 124 31.45 10097.97 5471.78 1.85 -574.84 \n",
"HKDJPY 99 31.31 1395856.10 688266.23 2.03 -35662.26 \n",
"NZDJPY 106 43.40 1239166.30 691216.98 1.79 146496.52 \n",
"NZDUSD 114 36.84 11075.89 5595.58 1.98 546.54 \n",
"SGDJPY 78 39.74 1373167.22 569303.07 2.41 202704.35 \n",
"USDCAD 112 34.82 11269.43 5628.40 2.00 255.67 \n",
"USDCHF 117 36.75 8295.43 5976.40 1.39 -731.20 \n",
"USDHKD 62 38.71 12422.21 6913.51 1.80 571.28 \n",
"USDJPY 116 37.93 1248358.30 622388.72 2.01 87204.98 \n",
"USDSGD 91 42.86 14143.33 6212.77 2.28 2511.28 \n",
"\n",
" 最大損失額 総損益 期待値 \n",
"AUDJPY -9151615.39 9346144.51 0.12 \n",
"AUDNZD -93455.65 -67896.85 -0.12 \n",
"AUDUSD -189945.95 -143746.01 -0.20 \n",
"CADJPY -12369262.86 -7039654.81 -0.11 \n",
"CHFJPY -12314499.71 -4518512.47 -0.07 \n",
"EURAUD -105460.64 -60607.06 -0.09 \n",
"EURGBP -126822.72 -97696.40 -0.14 \n",
"EURJPY -18969912.58 -9695276.15 -0.11 \n",
"EURUSD -100194.08 76799.57 0.12 \n",
"GBPAUD -97375.27 17679.31 0.03 \n",
"GBPJPY -8016954.33 8451790.77 0.11 \n",
"GBPUSD -135377.08 -71280.30 -0.11 \n",
"HKDJPY -10232481.46 -3530564.16 -0.05 \n",
"NZDJPY -5257997.72 15528630.86 0.21 \n",
"NZDUSD -86988.10 62305.32 0.10 \n",
"SGDJPY -5358410.63 15810939.49 0.36 \n",
"USDCAD -97621.22 28634.69 0.05 \n",
"USDCHF -150825.95 -85550.13 -0.12 \n",
"USDHKD -87422.25 35419.49 0.08 \n",
"USDJPY -10851268.05 10115777.60 0.14 \n",
"USDSGD -61372.84 228526.23 0.40 "
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"result = pd.DataFrame(list(d4.values()), index=d4.keys(), columns=d4[data[0][0]].keys())\n",
"result"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.02857142857142857"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"result['期待値'].mean()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## マネーマネジメントを適用しない場合とする場合との比較"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [],
"source": [
"def test2(df, pip=0.01, spread=0.3, unit=10000, periods=20, x=3.0):\n",
" sp = pip * spread * unit\n",
" df2 = pd.concat([df, df['close'].shift(1), atr(df, periods=periods).shift(1)], axis=1)\n",
" pl = pd.Series(np.full(df2.index.size, np.nan), index=df2.index)\n",
" ls = entry = stop = np.nan\n",
" for row in df2.itertuples():\n",
" time, open_, high, low, close, close2, atr_ = row\n",
" if np.isnan([close2, atr_]).any():\n",
" continue\n",
" if np.isnan(ls):\n",
" # entry\n",
" ls = random.choice([-1, 1])\n",
" entry = open_\n",
" stop = close2 - (atr_ * x * ls)\n",
" if not np.isnan(ls):\n",
" tmp = close2 - (atr_ * x * ls)\n",
" if (0 < ls and stop < tmp) or (ls < 0 and tmp < stop):\n",
" # trailing stop\n",
" stop = tmp\n",
" if (0 < ls and low <= stop) or (ls < 0 and stop <= high):\n",
" # exit\n",
" pl[time] = (stop - entry) * unit * ls - sp\n",
" ls = entry = stop = np.nan\n",
" if not np.isnan(ls):\n",
" pl[time] = (close - entry) * unit * ls - sp\n",
" ls = entry = stop = np.nan\n",
" return pl"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7fc55ca697b8>"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"test2(df2).dropna().cumsum().plot()"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"CPU times: user 22.7 s, sys: 344 ms, total: 23 s\n",
"Wall time: 24 s\n"
]
},
{
"data": {
"text/plain": [
"[-0.01, -0.02, -0.01, -0.01, -0.04, -0.02, 0.04, 0.02, -0.02, -0.01]"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"r = lambda v: round(v, 2)\n",
"mean = lambda l: sum(l) / len(l)\n",
"# マネーマネジメントを適用しない場合\n",
"%time result2 = [r(mean([stat(test2(d2[x[0]], pip=x[1], spread=x[2]))['期待値'] for x in data])) for i in range(10)] \n",
"result2"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"CPU times: user 22.7 s, sys: 422 ms, total: 23.1 s\n",
"Wall time: 24.2 s\n"
]
},
{
"data": {
"text/plain": [
"[0.05, 0.04, -0.02, 0.11, 0.06, -0.0, 0.08, 0.05, 0.01, 0.04]"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# マネーマネジメントを適用する場合\n",
"%time result3 = [r(mean([stat(test(d2[x[0]], pip=x[1], spread=x[2], money=x[3]))['期待値'] for x in data])) for i in range(10)] \n",
"result3"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"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.6.5"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment