Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
{
"cells": [
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"import math\n",
"import matplotlib.pyplot as plt\n",
"%matplotlib inline"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x115990eb8>]"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x114725940>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# 平均0,分散50の正規分布\n",
"normal = lambda x: (math.exp(-x**2/(2*(50**2)))) / math.sqrt(2*math.pi)\n",
"x = range(-100,101,1)\n",
"plt.plot(x, [normal(i) for i in x])"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"51\n",
"150\n",
"26\n",
"-50\n",
"-149\n",
"17\n",
"[51, 26, 17, 13, 11, 9, 8, 7, 6, 6, 5, 5, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]\n",
"[0.51, 0.52, 0.51, 0.52, 0.55, 0.54, 0.56, 0.56, 0.54, 0.6000000000000001, 0.55, 0.6, 0.52, 0.56, 0.6, 0.64, 0.51, 0.54, 0.5700000000000001, 0.6000000000000001, 0.63, 0.66, 0.6900000000000001, 0.72, 0.75, 0.52, 0.54, 0.56, 0.58, 0.6, 0.62, 0.64, 0.66, 0.68, 0.7, 0.72, 0.74, 0.76, 0.78, 0.8, 0.82, 0.84, 0.86, 0.88, 0.9, 0.92, 0.94, 0.96, 0.98, 1.0, 0.51, 0.52, 0.53, 0.54, 0.55, 0.56, 0.57, 0.58, 0.59, 0.6, 0.61, 0.62, 0.63, 0.64, 0.65, 0.66, 0.67, 0.68, 0.69, 0.7, 0.71, 0.72, 0.73, 0.74, 0.75, 0.76, 0.77, 0.78, 0.79, 0.8, 0.81, 0.82, 0.83, 0.84, 0.85, 0.86, 0.87, 0.88, 0.89, 0.9, 0.91, 0.92, 0.93, 0.94, 0.95, 0.96, 0.97, 0.98, 0.99, 1.0]\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x1162bb668>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# 端数処理の逆\n",
"# lot(BTC)でprofit_jpy(円)を得るために必要な値幅を計算する関数\n",
"def calculate_min_diff(lot, profit_jpy):\n",
" if profit_jpy % 2 == 0:\n",
" return math.ceil(50 * 0.01 / lot) + math.ceil((profit_jpy-1)/lot)\n",
" else:\n",
" return math.ceil(51 * 0.01 / lot) + math.ceil((profit_jpy-1)/lot)\n",
"print(calculate_min_diff(0.01, 1))\n",
"print(calculate_min_diff(0.01, 2))\n",
"print(calculate_min_diff(0.02, 1))\n",
"print(calculate_min_diff(0.01, 0))\n",
"print(calculate_min_diff(0.01, -1))\n",
"print(calculate_min_diff(0.03, 1))\n",
"# lot = 0.01-1までで試す\n",
"lots = [i/100 for i in range(1,101,1)]\n",
"# 各ロットでの最低必要値幅を計算\n",
"min_diff = [calculate_min_diff(l, 1) for l in lots]\n",
"plt.plot(lots, min_diff)\n",
"print(min_diff)\n",
"# lot x price_diff\n",
"print([lots[i]*min_diff[i] for i in range(len(lots))])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"- ある値幅で,ある額の利益を得たいという見地にたった場合,最小枚数で取引した方が良い.(マーケットインパクトが小さくなるため指値が刺さりやすくなるし,損切りをするとしても滑りづらくなる.)\n",
"- あるいはロット固定である額の利益を得体場合に,値幅を端数最適化するべき?ただしここは微妙で,例えばリスク回避的に指値幅を広げているのに,端数最適化によって指値幅を狭めてしまうことになったりする."
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x1165b84e0>]"
]
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x11e234b00>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAXcAAAD8CAYAAACMwORRAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvNQv5yAAAIABJREFUeJzt3Xt8nGWd9/HPbybnc3Nq0yQ9JG1p03MSauMRRBAQW5SmAnV33XXXFajnw4K4rII+CuqyKgXFZ33c55GKLSBUQVAQBYVCj7S0pbRNS5u2tOkx6SGHmbmeP+6ZZJJOMneSOd7ze79evF7J5G7musk9v/xy3ddcXzHGoJRSyllc8R6AUkqpyNPirpRSDqTFXSmlHEiLu1JKOZAWd6WUciAt7kop5UBa3JVSyoG0uCullANpcVdKKQdKi9cTl5aWmkmTJsXr6ZVSKilt2LDhmDGmLNxxcSvukyZNYv369fF6eqWUSkoi8pad43RaRimlHMhWcReRK0Vkp4jsFpFbQ3z9EyLSJiKb/f/9c+SHqpRSyq6w0zIi4gZWAJcDrcA6EVljjNk+4NBfG2OWR2GMSimlhslO574A2G2MaTHGdAMPA4ujOyyllFKjYae4VwIHgj5v9T820HUiskVEHhGR6lDfSEQ+JSLrRWR9W1vbCIarlFLKDjvFXUI8NjDh47fAJGPMHOBZ4H9CfSNjzIPGmEZjTGNZWdiVPEoppUbITnFvBYI78SrgUPABxpjjxpgu/6c/AxoiMzyllFIjYae4rwOmishkEckArgfWBB8gIhVBny4CdkRuiP3taTvD3U+/wcB4wPbOHlatO0CXxxutp46YHq+Ph1/dj8fri/dQ1CA27j/J2pbj8R6GUiMWtrgbYzzAcuAZrKK9yhizTUTuFJFF/sM+KyLbROQ14LPAJ6I14OffOMoDf97DL17a1/uYz2f4wsOb+eqjW/jW76L2eyViXtpznFsf28oftx+J91DUIH7wh538/c9fZduh0/EeilIjYmuduzHmKWPMNGNMrTHm2/7H7jDGrPF/fJsxZqYxZq4x5lJjzBvRGvAn3z2ZD8wYy7ef3MHG/ScB+OkLLTz3xlFmVxby/9a+xZrXDoX5LvF16lw3AC9rZ5iwuj0+uj0+bn5oI+2dPfEejlLDlnTvUBURftA8l3GFWSx/aCNPv/423//DTj40u4LHbn4njRPHcOujW9h99Ey8hzqojk4PAC/v0eKeqDw+w7iCLFpPnuerq7dcMA2oVKJLuuIOUJiTzgPLGjh2pptP/3IDE4pz+O51s0l3u7jvxnqy093c/NAGznfHZv794Knz/G33MdvHn+myivuuo2do6+gKc/To7T9+jpeGMT4FXp9hRkU+/3blRTy97W1+/rd98R6SUsOSlMUdYHZVIXddO5OxBZncv6ye/Kx0AMYVZnHPkjm8eeQMf9wRmzntn/x5D//4i3X02LxB2hH0Z34sbtr95IU9fOL/rOudDlLheX0Gt8vFv7ynhsvrxvKdp3aw4a2T8R6WUrYlbXEH+NjFE1h722XMqCjo9/glF5WTn5UWs2mPt9s76fb4bE8FdXR6yM9KIy8zLSbz7ue6PHR7fTyxObHvRSQSr8+Q5hJEhO83z6WiKIvlKzdy4qz+glTJIamLO1hz8AO5XcI7JhfHbCnbUf/UyrZD7baO7+j0UJSTzoLJxayNwS+gzh7rL4rVGw6EOVIFeHwGt9u6tgqz07n/xgaOn+nm87/ejM+n8+8q8SV9cR/MwpoS9h47y9unO6P+XMd6i7u9ZXMdnT3kZ6bTVFNCy7GzHGmP7hgDa/9fP9iuS/tsCnTuAbOrCrnjw3W88GYb9z2/O44jU8oexxb3ptoSAF5uie6NRGNM701Ru517u39apneMUe7eO3t8TC3PI8PtYvX61qg+l1N4fD7crv5/FS57xwSunTeee599c1g30JWKB8cW9xnjCijKSY964Tx9vodur490t7DjULutJXPWnHs6MyoKKIjBvYEuj5dxhVlcXjeWJzYfTIp38cab19u/cwdrCvDbH5lNbVken3t4U9T/4lJqNBxb3F3+efdo37AMdO0XTyqmo8vDgRPnw/6bjs4eCrLScLuEBZNLoj7Gzh4fmWkumhurOHmuh+d2HI3q8zmBx79aZqDczDQeWFbP2S4vn1m5SbeQUAnLscUdoKmmhAMnznPgxDnAmkJ5ac8xOnuG7lxfP3iag6fCF2noK+7vm2btcmlnTjuwWgas6aP9J87Zfr6R6PJ4yUx3856pZYwryGL1er2xGs7AOfdgU8fm852PzubVfSf43h92xnhkStnj7OJeWwr0vc3/V68e4MafvcIPn9s16L853+3lhp+t5e7f29tBIbBS5t1TS3G7JOy8uzGGM12e3nX5TTXRn3cPdO5ul3BdQyV/ebMtJjeak5nVuYcu7gDXzq/kxndM4Kd/adE9glRCcnRxnzY2j5LcDNbuOc7rB0/zjd9uQwQe29g66J/Tz2x7m45OD28dP2vrOQKde3VxDlPK8sJ27ue6vXh9prdznz4unzFRvjfQ5fGRle4GoLmhGp+BxzbpjdWhDNW5B9xxTR2zKgv40qrNvX8dKpUoHF3cRYSFNSX8dfcxbn5oI8U5GXz72tkcae/ixV2hVzus8k9ZHDhpc1rmTBeZaS7yM9OYOb6A7YeH7twD+8oEOnfr3kAJa1uOR23/kq4eL5lp1o96UmkuCyYVs3p9q+6XMgSPz9e7zn0wWelu7r+xAQPcsnKj3qhWCcXRxR1gYW0JRzu6OHTqPCuWzWdJQxXFuRm9RTzYgRPneGnPcUpyMzhxtpuz/j1gAlpPnmPfsf4d/dH2TsryMxER6sYXcKS9i2NnBt8vJrD1QKBzB3jnlBIOnjpv62bsSAR37gDNjVXsPXZW304/BDudO8CEkhy+3zyXLa2nk2K7aZU6HF/c3ze1jHS38LWrZ9AwsZiMNBfXzqvk2R1HLngr+SMbWhGBT723BoDWAd37bY9t5bMPb+r3WNuZLsrzMwGoG29tgzDUvHt7b+feV9x7592jsCbf6zN0e329nTvA1bMryMlwh/wFpyyDrZYJ5YMzx/Ev75mcFNtNq9Th+OI+oSSHzXdcwT+9e3LvY0svrqLHa3h808Hex3w+wyMbWnn3lFIWTC4GuGAe9c0jHbx5pKPf28/bOroo8xf3mRWFwNArZvo69/Tex6aU51GalxmVefduj3VvIbhzz81M45o5FTy55fAFf50o61owBtwhtrYYzFevnJ4U202r1OH44g5WMQs2fVwBc6oKWbX+QO+888stxzl46jzNjdVUF+cA1jRMwJkuD0fau+js8XE46M0rRzu6KM/PAqytiKvGZLN9iM49MOdeENS5W/cGrDX5kZ4HDyz7DO7cAZY2VnO228tTWw9H9PmcwOP/5Z0WZs49WLrbxY9vnE+Wf7vpc936S1PFV0oU91CaG6p44+0O/uelffxuyyF+8pc9FGSlcUXdWEpyM8hOd/e7qbq3rW+uvaXN6sy6PF5Onevp7dwB66aqjeIe3LmDtd79SHsXe4/ZW6VjV1eIzh2gYeIYakpzdTuCELz+4j7UUshQKgqz+eH189h19Axff/x1vWGt4ipli/uiuZXkZrj5xm+3s3zlJl7cdYyP1leRle5GRKgak92vc2851vendou/0B8/Y83ZBxf3uopC9h4/2xvIMVCoG6oQPO8e2amZwTp3EWFJYxWv7jsR8V8oyc7js34h2rmhOtB7ppbxucum8tjGg/x6nd7TUPGTFv4QZyrMSecvX72Uk/6bqiIwsSS39+tVY7L7rV7Z03YWl1gdcKBzD7yBqXxA524MvHG4ncZJxRc8b0enB7dLyMno30lPLs1lbIE1777sHRMjdp6Bzj0zzX3B166rr+L7z+zkkQ0H+MoHp0fsOZPdSDv3gM+8fyob3jrJHWu2MbuqkJnjCyM5PKVsSdnOHaA0L5OpY/OZOjafKeX5pLv7/ndUF+f079zbzlA1Jocp5Xns8XfugTcw9ZuWqbRWzAy23r2js4e8zLQL9qEXEZpqSljbciKif84H1l5npV/4ox5bkMX7ppXx6IaDvQVNBc25j7C4u13Cf31sHsU5GRqwreImpYv7UKrGZNPe6eH0eeuF2dJ2ltqyXGpKc4M6d+vGanBxH1eQRXFuBtsODlbcPRdMyQQ01ZZw7ExXRFdbBII6QnXuAM2N1bzd3smLu9oi9pzJrq9zH/nLoyQvk/tunK8B2yputLgPonpM34oZn8+w99hZasryqCnL49DpTs51e3o799K8vuIuIswcX8C2w6GXQ7Z3ei64mRrQVNN/L5xIGKpzB7hsRjljctJZvUFvrAaMtnMPaJxUzK1XTteAbRUXWtwHUeUv7gdOnOft9k7O93ipKculpsyal9977CxtHV0U52b0m84BqKso4M23z4QMzO7o7Bm0c68uzqayKDui693Dde6ZaW4Wz6vkj9uOaIC2n9c7ujn3YP/8nslcoQHbKg60uA+iujgbsDr3wOqYmtI8akrzAGuaxlrjnnnBv60bX0C318euIxdOr3R0evqtcQ8W2AtnbcvxiOV0huvcwVrzrgHafXpXywxjnftgRITvNc9lfFG2BmyrmNLiPojC7HTyMtNoPXm+dxlkbVkuk0utzr2l7Wy/d6cGC6yOCHVTtaOrZ9BpGbDm3U+e62HnkY5InEbYzh2sX0YzxxfodgR+o10tM1Bhdjr3L6vn+FkN2Faxo8V9EMFr3VvazpKXmUZZfibZGW4qi7JpOXbGKu55Fxb3yaW5ZKe7Q25DMNQNVSDiuap2OnewuvdthzRAGyI35x5sVmUh/6EB2yqGtLgPoWpMDgdOnGdP2xlqynJ7ly/WlOWyp81f3AsuLO5ulzC9Iv+CDcSMMWGLe2VRNhNLciJ2U9VO5w6weN54DdD2i8RqmVBuXDCBj8yv1IBtFRNa3IdQXdzXudeU9r3BqaY0l51vd9Dt9YXs3MF6M9OOQ+39/gQ/3xMI6hh8Wgasd6u+0nI8ImvPA517ZpjOvSgng8tnjuVxDdCOSucO1l+D37p2FlM0YFvFgBb3IVSNyeFst5eDp85TU5bX+3hNWR49/hUVoebcwZp37+jy9Ns2uCPEdr+hNNWW0N7pYUeY4A87+jr38D/qpY3VnNIAbbz+G6qRmnMPlpuZxgMfr+dctwZsq+jS4j6E6jHZvR8HlkAO/DiwI+RAM3v3du+bww613W8okcxV7fJYKUwD3xEbyrunlFJRmJXyN1Y93uh07gFTyjVgW0WfreIuIleKyE4R2S0itw5x3BIRMSLSGLkhxk9grTvQuwQS6NfFD9a5Txubf0FgdqigjlDKC7KoKcvlpT2jn5ft6vHZ6trB6lSvq6/ihRQP0I70aplQFs+rZJkGbKsoCvuqFxE3sAK4CqgDbhCRuhDH5QOfBV6J9CDjpaq4r3OfHDTnXlGQ1bv6pDzEDVWwNhgbGJgdai/3wTTVlLBu38lR/9ne5fFesN3vUJY0VOEz8OjG1L2xOpL93Efi3zVgW0WRnZZuAbDbGNNijOkGHgYWhzjuLuAewDEtX0FWOoXZ6VQWZZMdtIujyyXUlOb1BmMPZmBgtt1pGbDm3c90edh6cHRLEzt7fGFvpgabVJrLgsnFPLIhdQO0o7VaZqCsdDcPLGsANGBbRZ6dq7cSCJ6EbfU/1ktE5gPVxpjfRXBsCWFqeR4zKvIveHxGRQETinOGnMsOBGYH9qCxe0MVYGGE9nfv8njJCrMMcqDmBitAe32Kvl0+WqtlQqkuzuEHS+expfU0d/1ue9SfT6UOO8U91BXe29KJiAu4F/hS2G8k8ikRWS8i69vakmMXwhXL6vnudXMuePzfr5nBL/5pwZD/duA7VYfTuZfmZTJtbN6ob6oOt3MHK0A7N8PN6hS9sRrN1TKhXF43ln99bw2/XLufJzYfDP8PlLLBzqu+FagO+rwKCN6EJB+YBfxZRPYBC4E1oW6qGmMeNMY0GmMay8rKRj7qGBpbkNVv18eAopwMKouyQ/yLPnUV/VfMdHR6cAnkZtjrpJtqSli/72RvyPVIjKRzz81M40NzKvhdigZox7JzD/jyBy/i4kljuO2xrew+GpmtJ1Rqs1Pc1wFTRWSyiGQA1wNrAl80xpw2xpQaYyYZYyYBa4FFxpj1URlxEgkEZgdWzHR0ekIGdQymqbaE8z1etrSeGvEYRtK5g7Xm/VyKBmjHYrXMQOluFz++oZ7sdDc3/XKjBmyrUQv7qjfGeIDlwDPADmCVMWabiNwpIouiPcBkFxyY3d459KZhA71jcgkio1vvPpLOHVI7QLtvnXts3wYyrjCLH14/n91tZ/j6bzRgW42OravXGPOUMWaaMabWGPNt/2N3GGPWhDj2Eu3a+8wcX8g+f2B2uH1lBhqTm8H0cQWjuqk60s49lQO0ezv3KC+FDOXdU0v5/GXTeGzTQR7WgG01CvoO1Sirq+gLzO7o7KFgGJ07WPPuG946OeJlciPt3MEK0HYJPLIhtYpMPObcg33m/VN4z9RS/mPNNl4f5VJYlbq0uEdZIDB726H2YXfuYM27d3l8bNo/snn3kXbukLoB2rFeLTOQKyhg+5aVG3tzfJUaDi3uUdYbmH3o9IiK+4LJxbhGMe/e1eMNu93vUJb6A7RfSKEA7Xh37mAFbK9YNp+DJ8/zldWv6fy7GjYt7lHWG5h9qN2fnzq8aZnC7HRmji8c8bx7p2fknTvAZTPGMiYnnUdS6MZqPFbLhNIwsZhbr5rOH7Yf4b//ujeuY1HJR4t7DNRVFPDmkY4Rde5gTc1s3n+Kzp7hzbsbY+j2+EbVuWekubh2fiV/3H6EkymS/9nXucf/5fHJd0/mgzPH8t3fv8GGt07EezgqicT/6k0BdeML6PEaPDaCOkJpqimh2+tjwzC3A+jyv/kpXMReOM0NgQDt1Hj3ZKJ07mD95XfPEitg+5aHNnH8TFe8h6SShBb3GAhsQwD29pUZ6OLJxbhdMux59y6bEXvh1I0vYFZlAas3pMbUTLT3cx+uQMD2iXNWwHYq3dxWI6fFPQYCgdkwsuKel5nG7Mrhz7vbDce2o7khdQK0vT4fItaqlUQxq7KQb3x4Ji/uOsZ9f9KAbRWeFvcYcLukd2fJguzhT8uANe/+2oFTw9rrxW44th2pFKDt8ZmE6dqD3bCgmo/Or+S/nnuTv+7SgG01NC3uMVLnj92zE9QRSlNNCR6fGdY2vJHs3ItyMrgiRQK0vT6TEPPtA4kI3/rILKaWWwHbqZyWpcLT4h4jcyqLABiTkzGif984aQzp7uHNu0eycwdo9gdoP7vd2QHaXp9JiJUyoeRkpHH/snrO93hZvnIjPRqwrQaRmFewA107v5IH/66hX/7qcORkpDG3qmhY8+6R7NyhL0B7tcO3I/AkaOceEAjYXv/WSb73jAZsq9C0uMdIRpqLK2aOG9X3aKot4fWDp3tDP8KJdOeeKgHa3gSdcw+2eF4lf7dwIg++0MIftr0d7+GoBKTFPYk01ZTg9RnW7bP3ZpZId+6QGgHaid65B3z9mhnMqSrkS6tfY/9xDdhW/WlxTyL1E8eQ4XbZnnePdOcOfQHaq9cfcOx+J16fL+E7d7B+riturEeAm1duGPY7mJWzaXFPIlnpbuZPsD/vHo3OHazNxPYdP+fYAG2Pz8RlL/eRCARsv36wXQO2VT9a3JNMU20J2w61c/pc+Hn3aHTuAFfPHkduhptVDg2TSOTVMqEEArYfekUDtlWf5LmCFWDNuxsDr+wN371Hq3PPyUjjmjnjeXKrMwO0k2XOPZgGbKuBtLgnmXkTishKd9mamolW5w7Q3FjFuW4vTzowQNvrTfzVMgNpwLYaSIt7kslMc9MwcYytm6qBzj0zLfI/5kCAthP3eU/Gzh2sgO0f3WAFbN+uAdspT4t7EmqqKeGNtzs4EWZ/9c4eHxluV1Q2wHJygHayrJYJ5V1TSvnCB6bxm00HWfnq/ngPR8WRFvck1FRbAsDaMFMzXR7vqFKYwnFqgHaydu4Byy+dwnunlfHNNds1YDuFaXFPQnOqisjJcIedmunsGV0KUzhODdBOttUyAwUCtkvyMrjpoQ0asJ2ikvcKTmHpbheNk4rD3lTt8nijMt8eLBCg/aKDArSTvXMHKM7N4L4b6zl8qlMDtlOUFvck9c7aEnYfPcPRjsH3eOnq8UV8GeRAgQBtJ+3znqhb/g5Xw8Qx3Hb1DP6w/Qj/+0UN2E41WtyTVFNNYN598H1mrM49etMy4MwAbSd07gH/9K5JXDlzHN99+g3W29yTSDmDFvckNXN8AfmZaUPOu3fGoHOHvgDtxx3y7shkXi0zkIhwT/McqsZks3ylBmynEi3uSSrN7WLB5OIhV8zEonOHoABth0zNeLzO6dwBCrI0YDsVaXFPYk21Jew9dnbQvdVj1bmDdWN1++F2Ryy98/oMaUmycZhdM8cX8s1FVsD2j/+0K97DUTGgxT2JLfTPu7/cEjosOVadO8CiuVaA9iMbkr97t26oOu+lcf3F1Xy0vpIfPrfLUaubVGjOu4JTSF1FAYXZ6YPOu3d5Yte5OylA25MESUwjISJ869pAwPZmDp8+H+8hqSiy9coXkStFZKeI7BaRW0N8/dMislVENovIX0WkLvJDVQO5XMI7Jg++3r2zJ3adOzgnQNspSyFDsQK2G+jq8bJ85SYN2HawsMVdRNzACuAqoA64IUTxXmmMmW2MmQfcA/xnxEeqQmqqLeHAifO0nrwwZi2WnTs4J0Db46DVMqFMKc/jO9fNYcNbJ7nn6TfiPRwVJXZe+QuA3caYFmNMN/AwsDj4AGNMe9CnuYDejo+RwD4zoaZmOnu8ZKbHrnN3SoC2kzv3gEVzx/N3Cyfysxf38owGbDuSneJeCQS3Yq3+x/oRkVtEZA9W5/7ZyAxPhTOtPJ/i3IwLpmaMMVbnHuXtBwZyQoC2U+fcBwoEbH959Wu8ddxZO3sqe8U91FV+QWdujFlhjKkF/g34eshvJPIpEVkvIuvb2vRufSS4XMLCmmLW7jneb/+Qbq8PY4hp5w5WgPY7kjxA2+t15mqZgfoFbD+0UQO2HcbOFdwKVAd9XgUcGuL4h4FrQ33BGPOgMabRGNNYVlZmf5RqSE01JRw63cn+E33z7l2eQApT7ItUc5IHaHscuM59MNXFOfzn0nlsO9TOnRqw7Sh2XvnrgKkiMllEMoDrgTXBB4jI1KBPPwTouyRiKNS8e6ALi3XnDskfoJ0Kc+7BPlA3ln99Xw0rX9nP45ucsYWEslHcjTEeYDnwDLADWGWM2SYid4rIIv9hy0Vkm4hsBr4I/EPURqwuUFuWR1l+Zr959y5/fmqs59wh+QO0nb5aJpSvXHERCyYVc9tjW9l1RAO2ncDWK98Y85QxZpoxptYY823/Y3cYY9b4P/6cMWamMWaeMeZSY8y2aA5a9SciLKwp4eWgeffe/NQ4dO4ASy9OzgBtn8/gM6RU5w7WXkU/vnE+uZlubnpoY1L+Ulb9Of+uUYpoqinhaEcXLf480844du4A9RPGUFOWy+r1yTU14/X/cky1zh2sZK0fXj+fPW1nuP03W5P2hriyaHF3iIHz7vHu3EWE5oZq1u07SUvbmbiMYSQCOyamwmqZUAIB249vPqQB20kuNa9gB5pUksO4gqzeefd4zrkHfLS+0h+gnTxr3j2+1O3cA4IDtre2Jv8un6lKi7tDiAhNtSW80mLNu3fGuXMH68/8Sy4q59GNrUmzh7jXG+jcU7e4Bwds37xyA6fPacB2MtLi7iBNNSUcO9PNrqNn+jr3GO4tE0pzQxVH2rt4IUm2mPX4rP9vqbLOfTDBAdtffkQDtpORFncHCZ537+3cY7grZCiXzRhLcW4GjyRJSlPfnHtqF3foC9j+4/Yj/OzFlngPRw2TFncHqS7OobIom5f3HO/t3OPxDtVgGWkuFs8bnzQB2jrn3t8/vWsSV80ax91P72SdBmwnFS3uDtNUW8Lavcc512117llxnHMPCARoP5EEAdqpvlpmIBHh7iVzqB6TzfKVGzmmAdtJQ69gh2mqKeHUuR62tJ4C4t+5gxWgPbuykFVJMDWjnfuFCrLSWbGsnpPnevj8wxqwnSzi/8pXERWYd39hl5WrmgjFHaC5sSopArS9/huqOufe38zxhdy5aCZ/3X2MHz2nW0clg8R45auIGV+UzcSSHE6c7SbNJaS5E+NHvGjueDLSXAn/jlXt3Af3MX/A9o/+tIsX3kyO1U+pLDFe+Sqimmqs7j0R5tsDinIyuKJuLE+8diihA7Q9us59UMEB25//tQZsJzot7g4UmJpJlCmZgKVJEKAdmE9O9XXug8nJSOOBj2vAdjJIrFe/iohE7NzB2rekojCLVQk8NePR1TJh1Zbl8V1/wPbdv9eA7USlV7ADlRdkUVOWm3Cdu9slLGmo4sVdbQn7J71X59xt+fDc8fx900T+91/38vTrGrCdiBLr1a8i5tPvreUj8y/IMY+7QID2YxsTc827R1fL2Hb7h2Ywt6qQr2jAdkLS4u5QSy+u5jOXTQ1/YIxNLEnsAG3t3O3LTHNz3431uFyiAdsJSIu7irlAgPa6fYkXoK17ywyPFbA9l22H2vnmbzVgO5FocVcx1xugnYA3Vvs6d31p2HXZjLF8+n21/OrV/fxmU+K/CzlV6BWsYi4nI40Pzx3PU1sPcybBsjo92rmPyJevmMaCycV87bHXeVMDthOCFncVF82NVoD2U1sSK0Bb17mPTJrbxX03+AO2f7lBA7YTgBZ3FRe9AdobEmtqRjv3kSsvyOJH189n77Gz3PaYBmzHmxZ3FReJGqAd2DhMV8uMzDunlPLFy6ex5rVD/PIVDdiOJy3uKm6uq6/E7ZKECtDWvWVG7+ZLpnDJRWXc9dvtvVtPq9jT4q7iprwgi/dNK0uoAG1dLTN6Lpdw79J5lOZlcPNDGzVgO070ClZxtbQxsQK0dc49MsbkZnDfsnqOtHfypdUasB0PWtxVXL1/uhWgnSj7vOs7VCOnfsIYbrtqBs/uOMKDL2jAdqxpcVdxlZHm4tp5lfxx+xFOJECAdm/nrkshI+If3zWJq2evv5Q/AAASOUlEQVSP455ndvLqXg3YjiUt7irumhur6PGahAjQ1tUykSUi3H3dHCYU5/CZX2nAdixpcVdxN6MicQK0dc498vKz0rl/WT2nzvXwuYc3JczNc6fT4q4SQnNjFTsSIEDb69XVMtEwo6KAuxbP4m+7j/NDDdiOCb2CVUJIlADtQOeujXvkLb24miUNVfxYA7ZjwlZxF5ErRWSniOwWkVtDfP2LIrJdRLaIyHMiMjHyQ1VOVpSTwQdnjuPxzYfiui+412dwuwQRre7RcNfiWVw0Np/PPbyJQ6cSM43LKcIWdxFxAyuAq4A64AYRqRtw2Cag0RgzB3gEuCfSA1XO19xQxenzPTy740jcxuDxF3cVHdkZblYsq6fb42P5yo0asB1Fdjr3BcBuY0yLMaYbeBhYHHyAMeZ5Y8w5/6drgarIDlOlgndNKWV8YVZcb6x6fT5dKRNltWV53L1kDhv3n+K7GrAdNXaKeyUQPBHa6n9sMJ8Efh/qCyLyKRFZLyLr29p0zk3153YJ18U5QFs799i4Zs54/qFpIv/91708/XpibfvsFHaKe6grPeRaJhH5ONAIfC/U140xDxpjGo0xjWVlZfZHqVLGkoYqTBwDtL0+o517jHytN2B7C/uOacB2pNkp7q1AddDnVcChgQeJyAeA24FFxhh9p4IakXgHaFuduy4ii4XMNGv+XQO2o8POVbwOmCoik0UkA7geWBN8gIjMB36KVdiPRn6YKpUsjWOAtternXssVY3J4d6PzWX74Xa++dtt8R6Oo4Qt7sYYD7AceAbYAawyxmwTkTtFZJH/sO8BecBqEdksImsG+XZKhXXV7HHkZabFJUBb59xj7/3Tx3LzJbX86tUDPLYx/u9Sdoo0OwcZY54Cnhrw2B1BH38gwuNSKSwnI41r5lTwxOZDfGPRTPIybV2mEeH1+TQ/NQ6+ePk0Nrx1ktt/8zqzKguZNjY/3kNKejq5qBJSc2MV53tiH6CtnXt8pLld/PiG+eRmpmnAdoRocVcJKRCgHeupGV0tEz/lBVn8+AYN2I4ULe4qIQUCtNe/FdsAbV0tE19NtSV86YqLNGA7AvQqVgkrEKC9OoYB2tq5x99N76vlUg3YHjUt7iphlRdkccm0Mh7b2IonRnuQ6Jx7/Llcwn8unUdZfqYGbI+CFneV0Jr9Adov7joWk+fTvWUSw5jcDO67cb4GbI+CFneV0HoDtDfE5saqx6ude6KYP2EMt1+tAdsjpcVdJbRYB2h7fUbXuSeQf3jnJD40u4J7ntnJKy3H4z2cpKLFXSW8pRfHLkBbV8skFhHhu9fN9gdsb6KtQ7etskuvYpXwpo+zArR/vS76m4npapnEEwjYPn1eA7aHQ4u7SgpLG6t44+0Oth1qj+rz6GqZxDSjooC7rp3FS3uO88Nn34z3cJKCFneVFBbNrYxJgLaulklcSxuraW6o4sfP7+YvGrAdlhZ3lRQKc9JjEqCtnXtiu9MfsP15DdgOS4u7ShqxCNDWOffElp3h5v5l9fR4DctXbqTbowHbg9HirpJGLAK0rXXu+rJIZDVledx9nRWwfffTGrA9GL2KVdJwu4Ql/gDtaP1Jrp17cvjQnAo+8c5JGrA9BC3uKqksaaj2B2hHp3v3+AxufRNTUvja1TOYW12kAduD0OKuksqEkhwW1hSzekNrVNa862qZ5JGR5mLFjfNxuYSbNGD7AlrcVdJpbqjmrePneHXviYh/b10tk1yqxuTwXx+bx47D7XxjjQZsB9PirpJOIEA7Gvu865x78rl0ejk3X1LLw+sO8GgM9/5PdFrcVdIJBGg/ueUwZyKctal7yySnL14+jYU1xdz++FZ2vt0R7+EkBL2KVVJqbqyOSoC2du7JKc3t4kc3zCc/K52bHtoQ8V/6yUiLu0pK9ROKIh6gbYzBq3PuSas83wrY3qcB24AWd5WkRISljVaA9p4IBWgHdhvUzj15LayxArZ/+9ohfrn2rXgPJ660uKuk9dH5VoD2IxG6ieb1d3q6zj259QZs/25HSgdsa3FXSSsQoP3ohsgEaGvn7gzBAds3/XIjp85FP8ErEWlxV0mtubGaox1dvLBr9FvAevzFXVfLJL8xuRmsWFbP0Y5OvrTqNXwpGPChV7FKau+fXm4FaEdgMzGvVzt3J5lXXcTtV8/guTeO8tMUDNjW4q6SWkaai4/Mr+TZHaMP0O7r3LW4O0UgYPv7f0i9gG0t7irpNTdaAdqPbxpdgLbOuTtPKgdsa3FXSW/6uALmVBWyav3oArQ9PuumrHbuzpKflc4DH6+nvTO1ArZtFXcRuVJEdorIbhG5NcTX3ysiG0XEIyJLIj9MpYbW3DD6AO3ezl2XQjrO9HEF3LnYCtj+rxQJ2A5b3EXEDawArgLqgBtEpG7AYfuBTwArIz1ApeyIRIC2rpZxtt6A7T/t5s87j8Z7OFFn5ypeAOw2xrQYY7qBh4HFwQcYY/YZY7YAGmio4iISAdo65+58dy6exfRx+Xzh15sdH7Btp7hXAsHtUKv/MaUSytJGK0D7j9tHFqDt8epqGacLDti+xeEB23aKe6grfUR3JETkUyKyXkTWt7WN/k0nSgV7Z60VoD3Sfd61c08NNWV53LNkDpv2n+K7v3duwLad4t4KVAd9XgUcGsmTGWMeNMY0GmMay8rKRvItlBrUaAO0dbVM6rh6thWw/fO/7eX3W50ZsG2nuK8DporIZBHJAK4H1kR3WEqNzGgCtPs6d72hmgq+dvUM5lUX8dVHnBmwHfYqNsZ4gOXAM8AOYJUxZpuI3CkiiwBE5GIRaQWagZ+KiIYZqrgYTYC2vkM1tWSkuVixrB6325kB27ZaFGPMU8aYacaYWmPMt/2P3WGMWeP/eJ0xpsoYk2uMKTHGzIzmoJUaytLGkQVo6zr31FNZlM29Dg3Y1r8/leNcNauCvMw0Vg1zM7FA5+4SLe6p5NKLyrnlUitgO1LZAIlAi7tynOwMNx+eW8FTW4cXoO3131DV1TKp5wsfsAK2v/74Vt54e+Tvck4kWtyVIy1psAK0n9xif2GXrnNPXcEB2zf/ciMdnT3xHtKoaXFXjlQ/oYjastxh7fOuc+6prTdg+/hZbnVAwLYWd+VIIwnQ9uibmFLewpoSvvzBi3hyy2H+78vJHbCtxV051kfqhxeg7dWNwxTw6ffWctn0cr715HY2H0jegG29ipVjledncelF9gO0tXNXYAVs/2DpXMrzs7jloeQN2NbirhxtSYP9AG2vbj+g/Ipy+gK2v5ikAdta3JWjvX96OSU2A7S1c1fB5lUX8fUP1fGnN47ykxf2xHs4w6bFXTnacAK0vbr9gBrg75sm8qE5FXz/mZ2sTbKAbS3uyvGaG6vp8Rp+EyZAO7DOXTcOUwEiwt3XzWFSSS6f+dUmjnZ0xntItulVrBzvonH5zK0qZHWYAO3ezl3XuasgeZlp3P/xejo6e/jcrzYnTcC2FneVEpobq8MGaOucuxrM9HEF3LV4Fi+3HOfePyZHwLYWd5USPjx3PJlpLlYNEaCtq2XUUJobq1naWMV9z+/m+SQI2NbirlJCYXY6V84axxNDBGj37ueuu0KqQQQHbB9M8IBtLe4qZTQ3VA8ZoO31GVxivYlFqVCy0t088PEGPF7DLQ8ldsC2FneVMt5ZW0JlUfagAdoen9GVMiqsyaW5fG/JHDYfOMX/empHvIczKL2SVcpwuYTrhgjQ9vqMzrcrW66aXcE/vmsSv3hpH09uScyAbS3uKqU0N1RhDDwaonv3eI2ulFG23XbVDOZPKOLfHt1Ci82dR2NJi7tKKdXFOTTVlLB6Q+sF+4V4fT5d465sy0hzcd+N9aS5hZsTMGBbi7tKOUsvrmL/iXO8uq9/gLY1567FXdkXCNh+4+0O7nji9XgPpx8t7irlXDmzgvzMtAs2E9M5dzUSl15UzvJLp7BqfSurh3gfRaxpcVcpJzvDzTVzx18QoK2rZdRIfeHyaTTVlPD1x19nx+HECNjWK1mlpKWNVRcEaGvnrkbK7RJ+dMN8CrLTueWhxAjY1uKuUtK86iKmlOexKmhqRufc1WiU5WcmVMC2FneVkqwA7So2BAVoe30+7dzVqCysKeErH5zOk1sO8z8v7YvrWLS4q5R17XwrQDtwY9Xj1WkZNXr/+t4aLptezref2hHXgG0t7iplWQHa5Ty20QrQ9voMabrOXY3SwIDtk2ESwKI2jrg8q1IJormxqjdA2+MzuHW1jIqAopwM7l9WT1tHF19ctTkuAdt6JauU9v7p5ZTmZbBqXavVueu0jIqQudVFfP2aGTy/s40H/hL7gG0t7iqlpbv7ArSPdnTqnLuKqL9bOJEPzx3PD/6wk5f3xDZg21ZxF5ErRWSniOwWkVtDfD1TRH7t//orIjIp0gNVKlqaG6vx+AxvHjmjnbuKKBHhOx+dzaTS2Adshy3uIuIGVgBXAXXADSJSN+CwTwInjTFTgHuBuyM9UKWiZdrYfOZWFwEasaciLy8zjQeWNXCmq4fP/moTHm9sAj7sdO4LgN3GmBZjTDfwMLB4wDGLgf/xf/wIcJmIZpWp5NHcUAVoOLaKjovG5fOta2eztuUE9z4bm4BtO8W9EgjeDafV/1jIY4wxHuA0UBKJASoVC4EAbe3cVbQsaajiY43VrHh+D8+/Ef2A7TQbx4S62geu67FzDCLyKeBTABMmTLDx1ErFRmF2Ot+6dhZl+ZnxHopysG8unsnRjk7ysuyU3tGx8wytQHXQ51XAoUGOaRWRNKAQODHgGIwxDwIPAjQ2NsZ34wWlBmhurA5/kFKjkJXu5v/844KYPJedaZl1wFQRmSwiGcD1wJoBx6wB/sH/8RLgTybeu+YopVQKC9u5G2M8IrIceAZwAz83xmwTkTuB9caYNcB/A/9PRHZjdezXR3PQSimlhmZr4scY8xTw1IDH7gj6uBNojuzQlFJKjZS+Q1UppRxIi7tSSjmQFnellHIgLe5KKeVAWtyVUsqBJF7L0UWkDXhrGP+kFDgWpeEkslQ871Q8Z0jN807Fc4bRnfdEY0xZuIPiVtyHS0TWG2Ma4z2OWEvF807Fc4bUPO9UPGeIzXnrtIxSSjmQFnellHKgZCruD8Z7AHGSiuediucMqXneqXjOEIPzTpo5d6WUUvYlU+eulFLKpoQr7qkYxm3jnL8oIttFZIuIPCciE+MxzkgLd95Bxy0RESMiSb+qws45i8hS/897m4isjPUYo8HGNT5BRJ4XkU3+6/zqeIwzkkTk5yJyVEReH+TrIiI/8v8/2SIi9REdgDEmYf7D2lJ4D1ADZACvAXUDjrkZ+In/4+uBX8d73DE450uBHP/HNyX7Ods9b/9x+cALwFqgMd7jjsHPeiqwCRjj/7w83uOO0Xk/CNzk/7gO2BfvcUfgvN8L1AOvD/L1q4HfYyXZLQReieTzJ1rnnoph3GHP2RjzvDHmnP/TtVhpWMnOzs8a4C7gHqAzloOLEjvn/C/ACmPMSQBjTPTDNqPPznkboMD/cSEXpr0lHWPMC4RIpAuyGPi/xrIWKBKRikg9f6IV91QM47ZzzsE+ifXbPtmFPW8RmQ9UG2N+F8uBRZGdn/U0YJqI/E1E1orIlTEbXfTYOe9vAB8XkVas7IjPxGZocTXc1/6wRD+ldXgiFsadRGyfj4h8HGgE3hfVEcXGkOctIi7gXuATsRpQDNj5WadhTc1cgvUX2osiMssYcyrKY4smO+d9A/ALY8wPRKQJK9ltljHGF/3hxU1Ua1mide7DCeNmqDDuJGLnnBGRDwC3A4uMMV0xGls0hTvvfGAW8GcR2Yc1J7kmyW+q2r2+nzDG9Bhj9gI7sYp9MrNz3p8EVgEYY14GsrD2X3EyW6/9kUq04p6KYdxhz9k/PfFTrMLuhDlYCHPexpjTxphSY8wkY8wkrHsNi4wx6+Mz3Iiwc30/jnUDHREpxZqmaYnpKCPPznnvBy4DEJEZWMW9LaajjL01wN/7V80sBE4bYw5H7LvH+47yIHeQ38S6u367/7E7sV7YYP3QVwO7gVeBmniPOQbn/CxwBNjs/29NvMcci/MecOyfSfLVMjZ/1gL8J7Ad2ApcH+8xx+i864C/Ya2k2QxcEe8xR+CcfwUcBnqwuvRPAp8GPh30s17h/3+yNdLXt75DVSmlHCjRpmWUUkpFgBZ3pZRyIC3uSinlQFrclVLKgbS4K6WUA2lxV0opB9LirpRSDqTFXSmlHOj/A+0salnnfu28AAAAAElFTkSuQmCC\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x11e1f3208>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# 上の値幅で取引した場合に本来値幅によって得られる利益と実際の利益の比較\n",
"profit = [lots[i] * min_diff[i] for i in range(len(lots))]\n",
"\n",
"plt.figure()\n",
"plt.plot(lots, profit)\n",
"plt.plot(lots, [1]*len(lots))\n",
"plt.figure()\n",
"plt.plot(lots, [1-p for p in profit])"
]
},
{
"cell_type": "code",
"execution_count": 65,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[-349, -250, -149, -50, 51, 150, 251]"
]
},
"execution_count": 65,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x11e4a4400>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# lot0.01固定で得られる損益を変化させたときの最低必要値幅\n",
"profits = range(-3, 4, 1)\n",
"diffs = [calculate_min_diff(0.01, p) for p in profits]\n",
"# 本来p円の利益を得るために必要な値幅\n",
"original_diff = [p/0.01 for p in profits]\n",
"plt.figure()\n",
"plt.scatter(diffs,profits, label='real')\n",
"plt.plot(range(-350,300,1), [round(i*0.01) for i in range(-350,300,1)])\n",
"plt.scatter(original_diff, profits, label='original')\n",
"plt.hlines([0], -300, 300, linestyle='dashed')\n",
"plt.vlines([0], -3,3, linestyle='dashed')\n",
"plt.legend()\n",
"plt.ylabel('pl')\n",
"plt.xlabel('price diff')\n",
"diffs"
]
},
{
"cell_type": "code",
"execution_count": 58,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.legend.Legend at 0x11e353400>"
]
},
"execution_count": 58,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x115b726d8>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# lot固定で得られる損益を変化させたときの最低必要値幅\n",
"lot = 0.02\n",
"profits = range(-int(lot*300), int(lot*400), 1)\n",
"diffs = [calculate_min_diff(lot, p) for p in profits]\n",
"# 本来p円の利益を得るために必要な値幅\n",
"original_diff = [p/lot for p in profits]\n",
"plt.figure()\n",
"plt.scatter(diffs,profits, label='real')\n",
"plt.plot(range(-350,300,1), [round(i*lot) for i in range(-350,300,1)])\n",
"plt.scatter(original_diff, profits, label='original')\n",
"plt.hlines([0], -300, 300, linestyle='dashed')\n",
"plt.vlines([0], -3,3, linestyle='dashed')\n",
"plt.legend()"
]
},
{
"cell_type": "code",
"execution_count": 59,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.legend.Legend at 0x1160f33c8>"
]
},
"execution_count": 59,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x11e749630>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# lot固定で得られる損益を変化させたときの最低必要値幅\n",
"lot = 0.05\n",
"profits = range(-int(lot*300), int(lot*400), 1)\n",
"diffs = [calculate_min_diff(lot, p) for p in profits]\n",
"# 本来p円の利益を得るために必要な値幅\n",
"original_diff = [p/lot for p in profits]\n",
"plt.figure()\n",
"plt.scatter(diffs,profits, label='real')\n",
"plt.plot(range(-350,300,1), [round(i*lot) for i in range(-350,300,1)])\n",
"plt.scatter(original_diff, profits, label='original')\n",
"plt.hlines([0], -300, 300, linestyle='dashed')\n",
"plt.vlines([0], -3,3, linestyle='dashed')\n",
"plt.legend()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"- 0.02で26円幅を取るのはあまりお勧めではない.なぜなら部分約定で0.01で約定させられると利益が0円になるから.\n",
"- 期待値 = 51円幅の指値が約定する確率 x 1円 - (マイナス150円からマイナス250円幅以下になる確率 x 1円 + マイナス251円幅からマイナス349円幅になる確率x2円+マイナス350円幅からマイナス450円幅になる確率x4円) \n",
"\n",
"### 儲かる条件:①-150円以下の約定が発生する確率(損切り発生確率)が51円幅が約定する確率(利確発生確率)に比べて十分に低く,②損切り幅が十分に小さいことが多い(=大きな損切りの発生確率が十分に小さい)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"例として,次のような場合を考える.\n",
"- +51円幅の指値が刺さる確率が0.7(PL=1)\n",
"- エントリーも利確も刺さらない確率が0.08(PL=0)\n",
"- -150円から-250円幅の損切りが発生する確率が0.2(PL=-1)\n",
"- -251円から-349円幅の損切りが発生する確率が0.01(PL=-2)\n",
"- -350円から-450円の損切りが発生する確率が0.001(PL=-3)\n",
"- それ以下の損切りが発生する確率が0.009でこのときの平均損切り幅は800円(PL=-8)\n",
"(上記の確率を全部足すと1になる.)\n",
"この場合の1取引あたりの期待値を計算すると,\n",
"E = 1 x 0.7 + 0 x 0.08 -1 x 0.2 - 2 x 0.01 - 3 x 0.001 -8 x 0.009 = 0.404\n",
"となり,1取引あたり平均0.404円儲かることになる.\n",
"そして重要なのは,端数botterが増えることで①の条件と②の条件の両方が悪化し,期待値が下がることだ.51円幅の指値を出すユーザーが増えれば約定確率は下がり(=損切り発生確率が上がり),さらに損切りは滑りやすくなる(=大きい額の損切りが発生しやすくなる)ためである."
]
},
{
"cell_type": "code",
"execution_count": 64,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.4049999999999999"
]
},
"execution_count": 64,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"E = 1 * 0.7 + 0 * 0.08 -1 * 0.2 - 2 * 0.01 - 3 * 0.001 -8 * 0.009\n",
"E"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# 誰が得をして,誰が損しているのか.\n",
"50円以下の約定は損益が0円になり,この値幅分はBFが得をしていることになる一方で,51円幅の端数最適化された約定分はBFが支払っている.\n",
"端数を意識しているユーザーが増えるほどBFは損をすることになる.金の流れとしてどうなっているかを整理すると,\n",
"\n",
"a. 端数を意識していないユーザー⇄b. BF→c. 端数を意識しているユーザー\n",
"\n",
"となる.aとcの間の端数による損益のやり取りはあるのか考えてみたが,それは直接は生じていない.ただし,端数botterが増えることによって端数を意識していないユーザーの約定数について「端数的に有利な約定数<端数的に不利な約定数」となり,間接的に通常ユーザの取引の期待値が下がると思われる."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"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.4"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.