{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import pandas as pd\n", "import matplotlib.pyplot as plt\n", "import seaborn as sns\n", "sns.set()" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
DateOpenHighLowCloseAdj CloseVolume
02016-11-02778.200012781.650024763.450012768.700012768.7000121872400
12016-11-03767.250000769.950012759.030029762.130005762.1300051943200
22016-11-04750.659973770.359985750.560974762.020020762.0200202134800
32016-11-07774.500000785.190002772.549988782.520020782.5200201585100
42016-11-08783.400024795.632996780.190002790.510010790.5100101350800
\n", "
" ], "text/plain": [ " Date Open High Low Close Adj Close \\\n", "0 2016-11-02 778.200012 781.650024 763.450012 768.700012 768.700012 \n", "1 2016-11-03 767.250000 769.950012 759.030029 762.130005 762.130005 \n", "2 2016-11-04 750.659973 770.359985 750.560974 762.020020 762.020020 \n", "3 2016-11-07 774.500000 785.190002 772.549988 782.520020 782.520020 \n", "4 2016-11-08 783.400024 795.632996 780.190002 790.510010 790.510010 \n", "\n", " Volume \n", "0 1872400 \n", "1 1943200 \n", "2 2134800 \n", "3 1585100 \n", "4 1350800 " ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df = pd.read_csv('../dataset/GOOG-year.csv')\n", "df.head()" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [], "source": [ "def abcd(trend, skip_loop = 4, ma = 7):\n", " ma = pd.Series(trend).rolling(ma).mean().values\n", " x = []\n", " for a in range(ma.shape[0]):\n", " for b in range(a, ma.shape[0], skip_loop):\n", " for c in range(b, ma.shape[0], skip_loop):\n", " for d in range(c, ma.shape[0], skip_loop):\n", " if ma[b] > ma[a] and \\\n", " (ma[c] < ma[b] and ma[c] > ma[a]) \\\n", " and ma[d] > ma[b]:\n", " x.append([a,b,c,d])\n", " x_np = np.array(x)\n", " ac = x_np[:,0].tolist() + x_np[:,2].tolist()\n", " bd = x_np[:,1].tolist() + x_np[:,3].tolist()\n", " ac_set = set(ac)\n", " bd_set = set(bd)\n", " signal = np.zeros(len(trend))\n", " buy = list(ac_set - bd_set)\n", " sell = list(list(bd_set - ac_set))\n", " signal[buy] = 1.0\n", " signal[sell] = -1.0\n", " return signal" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CPU times: user 1.08 s, sys: 8 ms, total: 1.09 s\n", "Wall time: 1.09 s\n" ] } ], "source": [ "%%time\n", "signal = abcd(df['Close'])" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [], "source": [ "def buy_stock(\n", " real_movement,\n", " signal,\n", " initial_money = 10000,\n", " max_buy = 1,\n", " max_sell = 1,\n", "):\n", " \"\"\"\n", " real_movement = actual movement in the real world\n", " delay = how much interval you want to delay to change our decision from buy to sell, vice versa\n", " initial_state = 1 is buy, 0 is sell\n", " initial_money = 10000, ignore what kind of currency\n", " max_buy = max quantity for share to buy\n", " max_sell = max quantity for share to sell\n", " \"\"\"\n", " starting_money = initial_money\n", " states_sell = []\n", " states_buy = []\n", " states_money = []\n", " current_inventory = 0\n", " \n", " def buy(i, initial_money, current_inventory):\n", " shares = initial_money // real_movement[i]\n", " if shares < 1:\n", " print(\n", " 'day %d: total balances %f, not enough money to buy a unit price %f'\n", " % (i, initial_money, real_movement[i])\n", " )\n", " else:\n", " if shares > max_buy:\n", " buy_units = max_buy\n", " else:\n", " buy_units = shares\n", " initial_money -= buy_units * real_movement[i]\n", " current_inventory += buy_units\n", " print(\n", " 'day %d: buy %d units at price %f, total balance %f'\n", " % (i, buy_units, buy_units * real_movement[i], initial_money)\n", " )\n", " states_buy.append(0)\n", " return initial_money, current_inventory\n", " \n", " for i in range(real_movement.shape[0]):\n", " state = signal[i]\n", " if state == 1:\n", " initial_money, current_inventory = buy(\n", " i, initial_money, current_inventory\n", " )\n", " states_buy.append(i)\n", " elif state == -1:\n", " if current_inventory == 0:\n", " print('day %d: cannot sell anything, inventory 0' % (i))\n", " else:\n", " if current_inventory > max_sell:\n", " sell_units = max_sell\n", " else:\n", " sell_units = current_inventory\n", " current_inventory -= sell_units\n", " total_sell = sell_units * real_movement[i]\n", " initial_money += total_sell\n", " try:\n", " invest = (\n", " (real_movement[i] - real_movement[states_buy[-1]])\n", " / real_movement[states_buy[-1]]\n", " ) * 100\n", " except:\n", " invest = 0\n", " print(\n", " 'day %d, sell %d units at price %f, investment %f %%, total balance %f,'\n", " % (i, sell_units, total_sell, invest, initial_money)\n", " )\n", " states_sell.append(i)\n", " states_money.append(initial_money)\n", " \n", " invest = ((initial_money - starting_money) / starting_money) * 100\n", " total_gains = initial_money - starting_money\n", " return states_buy, states_sell, total_gains, invest, states_money" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "day 6: buy 1 units at price 762.559998, total balance 9237.440002\n", "day 7: buy 1 units at price 754.020020, total balance 8483.419982\n", "day 8: buy 1 units at price 736.080017, total balance 7747.339965\n", "day 9: buy 1 units at price 758.489990, total balance 6988.849975\n", "day 10: buy 1 units at price 764.479980, total balance 6224.369995\n", "day 11: buy 1 units at price 771.229980, total balance 5453.140015\n", "day 12: buy 1 units at price 760.539978, total balance 4692.600037\n", "day 13: buy 1 units at price 769.200012, total balance 3923.400025\n", "day 14: buy 1 units at price 768.270020, total balance 3155.130005\n", "day 15: buy 1 units at price 760.989990, total balance 2394.140015\n", "day 19: buy 1 units at price 758.039978, total balance 1636.100037\n", "day 21: buy 1 units at price 750.500000, total balance 885.600037\n", "day 22: buy 1 units at price 762.520020, total balance 123.080017\n", "day 23: total balances 123.080017, not enough money to buy a unit price 759.109985\n", "day 24: total balances 123.080017, not enough money to buy a unit price 771.190002\n", "day 25: total balances 123.080017, not enough money to buy a unit price 776.419983\n", "day 26: total balances 123.080017, not enough money to buy a unit price 789.289978\n", "day 27: total balances 123.080017, not enough money to buy a unit price 789.270020\n", "day 43: total balances 123.080017, not enough money to buy a unit price 794.020020\n", "day 148, sell 1 units at price 980.940002, investment 23.540966 %, total balance 1104.020019,\n", "day 149, sell 1 units at price 983.409973, investment 23.852038 %, total balance 2087.429992,\n", "day 239, sell 1 units at price 992.000000, investment 24.933878 %, total balance 3079.429992,\n", "day 240, sell 1 units at price 992.179993, investment 24.956546 %, total balance 4071.609985,\n", "day 241, sell 1 units at price 992.809998, investment 25.035890 %, total balance 5064.419983,\n", "day 242, sell 1 units at price 984.450012, investment 23.983021 %, total balance 6048.869995,\n", "day 243, sell 1 units at price 988.200012, investment 24.455302 %, total balance 7037.070007,\n", "day 244, sell 1 units at price 968.450012, investment 21.967959 %, total balance 8005.520019,\n", "day 245, sell 1 units at price 970.539978, investment 22.231172 %, total balance 8976.059997,\n", "day 248, sell 1 units at price 1019.270020, investment 28.368302 %, total balance 9995.330017,\n", "day 249, sell 1 units at price 1017.109985, investment 28.096264 %, total balance 11012.440002,\n", "day 250, sell 1 units at price 1016.640015, investment 28.037076 %, total balance 12029.080017,\n", "day 251, sell 1 units at price 1025.500000, investment 29.152915 %, total balance 13054.580017,\n" ] } ], "source": [ "states_buy, states_sell, total_gains, invest, states_money = buy_stock(df.Close, signal)" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "image/png": "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NhtgrPQ5c+YsEhOTSEpqzfz585tVtg8k8KMg38n2X1MA2P7rUQrzXbVS78iRQyksLKyVugDefns63323pNbqK8/27Vt56qnH6qz+L7/8nMcee6jO6hdCCCGEEKIinnxj/0dbdFQDt6R+tfihnutX7ce/ib3P52Pdqv2MvrBnA7fqZHfeeU+9XKd377488cTUermWEEIIIYQQ9c2TXwCALVICvxbDn+3zeozAz+vxsf3Xowwd0aVW5vrNnv0hK1cux+ks5u67/8SYMWM5cuQwd975exYv/g7guO//9a/nadeuHTfeeAsAO3Zs54knHuXjj+czbdpT9O7dh2uuGc8777zJgQP7KSjI5/DhQ3To0JGnn36esLAw8vPzefbZp9i7dw9JSa1JTEwiLi6eP//5vuPaVlxczNSpT7Bv3x5sNjudO3fh6aefY8OGdbz22ku8886HAMyfP4dPPvkvUVHRDB8+ggUL5rJ48XeBdo8bdzVr1qyiuLiYhx9+nAEDBuJ2u3noofvIycnB6XTSt28/Hnzw0cAyuUIIIYQQQjSUQMYvqmUFfi16qGfpbJ+fP+tXG6xWK++99zHPP/9vXnhhGllZmRWWv+aa6/jsswWBNs2fP5errvodFsvJ20tqvY0nnniGjz6ah9vtZsmSrwB4990ZREe34uOP5/P008+xefOmMq+1du1qCgsLmDXrE95/fzYPPvjoSWV27drJhx++xxtvzOTttz8gLy/vuOM5OTmcemp/3n33Y26//S6mT38ZAJvNxhNPTOWddz7kww/n4PF4WLz4s8rfMCGEEEIIIeqYpyAfaHmBX6UZP6XUP4FrgK7AaVrr38zXewHvAwlABnCL1npnTY7VpxOzfX61mfW77LIrAOjcuSu9eim2bPmV7t3LH0batWs32rfvwJo1P9Kv32msWrWCe+/9S5llTz/9TKKjowHo2/dUDh06CMDGjeu4774HAWjVKoZRo84u8/wePXqyb99e/vWv5xk0aAhnnTXypDIbN65n+PARxMXFAXDppeP45puvAsfDwyMYMWIUAP36ncarr74IgNfrZfbsWaxZ8yNer4e8vDzCwsLKf6OEEEIIIYSoJ548M/BrYUM9g8n4LQRGAyemwaYDr2mtewGvAW/WwrF6U1a2z682s34nstlseL3HrutyHb+YzLXXXs+nn85j8eJFjB59DlHlfBIR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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "close = df['Close']\n", "fig = plt.figure(figsize = (15,5))\n", "plt.plot(close, color='r', lw=2.)\n", "plt.plot(close, '^', markersize=10, color='m', label = 'buying signal', markevery = states_buy)\n", "plt.plot(close, 'v', markersize=10, color='k', label = 'selling signal', markevery = states_sell)\n", "plt.title('total gains %f, total investment %f%%'%(total_gains, invest))\n", "plt.legend()\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig = plt.figure(figsize = (15,5))\n", "plt.plot(states_money, color='r', lw=2.)\n", "plt.plot(states_money, '^', markersize=10, color='m', label = 'buying signal', markevery = states_buy)\n", "plt.plot(states_money, 'v', markersize=10, color='k', label = 'selling signal', markevery = states_sell)\n", "plt.legend()\n", "plt.show()" ] }, { "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.8" } }, "nbformat": 4, "nbformat_minor": 2 }