Skip to content

Instantly share code, notes, and snippets.

@yhilpisch
Last active May 17, 2024 16:51
Show Gist options
  • Save yhilpisch/ffd0cf431e04228ce3408959ec1a0fdf to your computer and use it in GitHub Desktop.
Save yhilpisch/ffd0cf431e04228ce3408959ec1a0fdf to your computer and use it in GitHub Desktop.

Algorithmic Trading

In Less Than 100 Lines of Python Code

Dr. Yves J. Hilpisch | The Python Quants GmbH

Online, February 2021

(short link to this Gist: http://bit.ly/algo_100_code)

Article & Slides

You find the article under http://bit.ly/100_algo

You find the slides under http://certificate.tpq.io/algo_100_slides.pdf

Resources

This Gist contains selected resources used during the webinar.

Dislaimer

All the content, Python code, Jupyter Notebooks and other materials (the “Material”) come without warranties or representations, to the extent permitted by applicable law.

None of the Material represents any kind of recommendation or investment advice.

The Material is only meant as a technical illustration.

Leveraged and unleveraged trading of financial instruments, and of contracts for difference (CFDs) in particular, involves a number of risks (for example, losses in excess of deposits). Make sure to understand and manage these risks.

Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<img src='http://hilpisch.com/taim_logo.png' width=\"350px\" align=\"right\">"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Algorithmic Trading\n",
"\n",
"**In Less Than 100 Lines of Code**"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Dr Yves J Hilpisch | The AI Machine\n",
"\n",
"http://aimachine.io | http://twitter.com/dyjh"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## The Article\n",
"\n",
"You find the Medium article under http://bit.ly/100_algo"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Oanda API "
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import tpqoa\n",
"oanda = tpqoa.tpqoa('../oanda.cfg')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## The Data "
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"<class 'pandas.core.frame.DataFrame'>\n",
"DatetimeIndex: 1424 entries, 2021-02-24 00:00:00 to 2021-02-24 23:59:00\n",
"Data columns (total 6 columns):\n",
" # Column Non-Null Count Dtype \n",
"--- ------ -------------- ----- \n",
" 0 o 1424 non-null float64\n",
" 1 h 1424 non-null float64\n",
" 2 l 1424 non-null float64\n",
" 3 c 1424 non-null float64\n",
" 4 volume 1424 non-null int64 \n",
" 5 complete 1424 non-null bool \n",
"dtypes: bool(1), float64(4), int64(1)\n",
"memory usage: 68.1 KB\n"
]
}
],
"source": [
"data = oanda.get_history(\n",
" instrument='EUR_USD',\n",
" start='2021-02-24',\n",
" end='2021-02-25',\n",
" granularity='M1',\n",
" price='M'\n",
")\n",
"data.info()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## The Strategy "
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"data['r'] = np.log(data['c'] / data['c'].shift(1)) \n",
"cols = []\n",
"for momentum in [15, 30, 60, 120, 150]:\n",
" col = f'p_{momentum}'\n",
" data[col] = np.sign(data['r'].rolling(momentum).mean())\n",
" cols.append(col)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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aAj/X1lZyVlnncXs2bMpKSlh8+bN/Ty6viEkY3p6OoqioCgKl19+OTfddBOPPvrooFichGT0eDyUl5dz/vnnc/rppzN9+nTKy8v7eXR9w/bt28OPly5dyrx589izZw9LliwBBo4rubeE5lOPx8OuXbs499xzOeGEEzjmmGP417/+RXV1db+NbVCXMV2xYgV/+MMf0HWd008/nblz5+J2u8nPz+f+++9nxYoVDBkyhBNOOIGTTz4Zq9Xa30PuMWYZTzvtNGbPns1rr73G+vXrueWWW7Db7TzyyCPMmTOHM888MylX+WYZzzjjDEpKSnjvvfcoLS3lO9/5DkuWLOHdd9/lxz/+MePGjevv4faIkCtx8eLFqKrKd7/7XRwOB+vXr2fChAm0t7dz6623cvvtt1NYWNjfw+0VsTJecMEFuFwu7rvvPr766iueeeYZbDYbixYtYuLEiSxcuDDprtOOZLzrrrvw+XysWLGC3NxccnJyOO200zj22GOx2Wz9Pewes2LFChYvXkxbWxuTJ0/mrLPOQpZlCgoK+Oabb3jggQd4++23k+73CxGrMyZPnszLL7/M2LFjOfPMM6mqquLhhx/mkksuYerUqf0yxuT8ZrvJK6+8wsknn8xll13GunXreO6558jPzwfgkksu4a9//Svz589n+fLlWCzJub1vlnHDhg0888wzFBUVsXLlSgKBALm5uUybNo0vv/wyaW+kkIyXXnopGzdu5O2332bu3Ln89a9/5aabbuKLL76gsLCQf/7zn/091B4jSRK6rvPOO++watUq1q5dC8CECRMA+OSTT7BarRQWFlJXV5eU3oRYGVevXg3AtddeyyWXXEJhYSHZ2dlMmDCB1atXJ+V12tHveOeddyJJEmeffTavvPIKxxxzDP/973+TUkZN0/jjH//ImWeeyUMPPYTFYmHlypUMHToUu93O4YcfTmlpKU899VT4+cmGea7ZsGEDixcvZty4cWzevJl9+/ZRUFDAkCFDwh6F/iD5rpxusmfPHjweD6eccgrTp0/n5JNPpqamhqVLl4bPg7HvlJqa2p9D7TWxMp5wwgm43W5aW1u54IILwoFM1dXVFBYWJuVNZJZxxowZHH/88bS2tiLLMs8++yyzZ8/mgQceYMSIEcyYMaO/h9sr1q1bx4QJExg7diyrV68Ou+bA2L8/+uijeeONN7j22mvD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\n",
"text/plain": [
"<Figure size 576x396 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"from pylab import plt\n",
"plt.style.use('seaborn')\n",
"strats = ['r']\n",
"for col in cols:\n",
" strat = f's_{col[2:]}' \n",
" data[strat] = data[col].shift(1) * data['r']\n",
" strats.append(strat)\n",
"data[strats].dropna().cumsum().apply(np.exp).plot(cmap='coolwarm');"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Trading Code"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"\u001b[0;31mSignature:\u001b[0m \u001b[0moanda\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mon_success\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtime\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mbid\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mask\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;31mSource:\u001b[0m \n",
" \u001b[0;32mdef\u001b[0m \u001b[0mon_success\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtime\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mbid\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mask\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\n",
"\u001b[0;34m\u001b[0m \u001b[0;34m''' Method called when new data is retrieved. '''\u001b[0m\u001b[0;34m\u001b[0m\n",
"\u001b[0;34m\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtime\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mbid\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mask\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;31mFile:\u001b[0m ~/Python/envs/work/lib/python3.8/site-packages/tpqoa/tpqoa.py\n",
"\u001b[0;31mType:\u001b[0m method\n"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"oanda.on_success??"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"2021-02-25T16:44:57.304585016Z 50975.9 51011.9\n",
"2021-02-25T16:44:57.864612452Z 50964.9 51000.9\n",
"2021-02-25T16:44:58.036683827Z 50965.6 51001.6\n",
"2021-02-25T16:44:58.215585154Z 50967.4 51003.4\n",
"2021-02-25T16:44:58.563950637Z 50966.4 51002.4\n",
"2021-02-25T16:44:59.120027642Z 50973.1 51009.1\n",
"2021-02-25T16:44:59.509768844Z 50966.6 51002.6\n",
"2021-02-25T16:45:00.313233905Z 50968.0 51004.0\n",
"2021-02-25T16:45:00.729725425Z 50975.4 51011.4\n",
"2021-02-25T16:45:00.808304792Z 50975.8 51011.8\n"
]
}
],
"source": [
"oanda.stream_data('BTC_USD', stop=10) # streaming data"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"\n",
" {'id': '2494', 'time': '2021-02-25T16:48:33.171733529Z', 'userID': 13834683, 'accountID': '101-004-13834683-001', 'batchID': '2493', 'requestID': '24785144815916370', 'type': 'ORDER_FILL', 'orderID': '2493', 'instrument': 'EUR_USD', 'units': '-10.0', 'gainQuoteHomeConversionFactor': '0.813979173911', 'lossQuoteHomeConversionFactor': '0.822159869126', 'price': 1.22233, 'fullVWAP': 1.22233, 'fullPrice': {'type': 'PRICE', 'bids': [{'price': 1.22233, 'liquidity': '10000000'}], 'asks': [{'price': 1.22245, 'liquidity': '10000000'}], 'closeoutBid': 1.22233, 'closeoutAsk': 1.22245}, 'reason': 'MARKET_ORDER', 'pl': '-0.0025', 'financing': '0.0', 'commission': '0.0', 'guaranteedExecutionFee': '0.0', 'accountBalance': '98042.0149', 'tradesClosed': [{'tradeID': '2492', 'units': '-10.0', 'price': 1.22233, 'realizedPL': '-0.0025', 'financing': '0.0', 'guaranteedExecutionFee': '0.0', 'halfSpreadCost': '0.0005'}], 'halfSpreadCost': '0.0005'} \n",
"\n"
]
}
],
"source": [
"oanda.create_order('EUR_USD', units=10) # opening long position"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"\n",
" {'id': '2494', 'time': '2021-02-25T16:48:33.171733529Z', 'userID': 13834683, 'accountID': '101-004-13834683-001', 'batchID': '2493', 'requestID': '24785144815916370', 'type': 'ORDER_FILL', 'orderID': '2493', 'instrument': 'EUR_USD', 'units': '-10.0', 'gainQuoteHomeConversionFactor': '0.813979173911', 'lossQuoteHomeConversionFactor': '0.822159869126', 'price': 1.22233, 'fullVWAP': 1.22233, 'fullPrice': {'type': 'PRICE', 'bids': [{'price': 1.22233, 'liquidity': '10000000'}], 'asks': [{'price': 1.22245, 'liquidity': '10000000'}], 'closeoutBid': 1.22233, 'closeoutAsk': 1.22245}, 'reason': 'MARKET_ORDER', 'pl': '-0.0025', 'financing': '0.0', 'commission': '0.0', 'guaranteedExecutionFee': '0.0', 'accountBalance': '98042.0149', 'tradesClosed': [{'tradeID': '2492', 'units': '-10.0', 'price': 1.22233, 'realizedPL': '-0.0025', 'financing': '0.0', 'guaranteedExecutionFee': '0.0', 'halfSpreadCost': '0.0005'}], 'halfSpreadCost': '0.0005'} \n",
"\n"
]
}
],
"source": [
"oanda.create_order('EUR_USD', units=-10) # closing long position"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"class MomentumTrader(tpqoa.tpqoa):\n",
" def __init__(self, config_file, momentum):\n",
" super(MomentumTrader, self).__init__(config_file)\n",
" self.momentum = momentum\n",
" self.min_length = momentum + 1\n",
" self.position = 0\n",
" self.units = 10000\n",
" self.tick_data = pd.DataFrame()\n",
" def on_success(self, time, bid, ask):\n",
" trade = False\n",
" print(self.ticks, end=' ')\n",
" self.tick_data = self.tick_data.append(\n",
" pd.DataFrame({'b': bid, 'a': ask, 'm': (ask + bid) / 2},\n",
" index=[pd.Timestamp(time).tz_localize(tz=None)])\n",
" )\n",
" self.data = self.tick_data.resample('5s', label='right').last().ffill()\n",
" self.data['r'] = np.log(self.data['m'] / self.data['m'].shift(1))\n",
" self.data['m'] = self.data['r'].rolling(self.momentum).mean()\n",
" self.data.dropna(inplace=True)\n",
" if len(self.data) > self.min_length:\n",
" self.min_length += 1\n",
" if self.data['m'].iloc[-2] > 0 and self.position in [0, -1]:\n",
" o = oanda.create_order(self.stream_instrument,\n",
" units=(1 - self.position) * self.units,\n",
" suppress=True, ret=True)\n",
" print('\\n*** GOING LONG ***')\n",
" self.print_transactions(tid=int(o['id']) - 1)\n",
" self.position = 1\n",
" if self.data['m'].iloc[-2] < 0 and self.position in [0, 1]:\n",
" o = oanda.create_order(self.stream_instrument,\n",
" units=-(1 + self.position) * self.units,\n",
" suppress=True, ret=True)\n",
" print('\\n*** GOING SHORT ***')\n",
" self.print_transactions(tid=int(o['id']) - 1)\n",
" self.position = -1 "
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 \n",
"*** GOING LONG ***\n",
"2496 | 2021-02-25T16:53:25.85 | EUR_USD | 10000.0 | 0.0\n",
"97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 \n",
"*** GOING SHORT ***\n",
"2498 | 2021-02-25T16:53:45.25 | EUR_USD | -20000.0 | -1.0684\n",
"134 135 136 137 138 139 140 141 \n",
"*** GOING LONG ***\n",
"2500 | 2021-02-25T16:53:50.36 | EUR_USD | 20000.0 | -1.4793\n",
"142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 "
]
}
],
"source": [
"mt = MomentumTrader('../oanda.cfg', momentum=5)\n",
"mt.stream_data('EUR_USD', stop=200)"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"*** POSITION CLOSED ***\n",
"2502 | 2021-02-25T16:54:33.76 | EUR_USD | -10000.0 | -0.1643\n",
"\n",
"\n",
"{'accountBalance': '98039.3029',\n",
" 'accountID': '101-004-13834683-001',\n",
" 'batchID': '2501',\n",
" 'commission': '0.0',\n",
" 'financing': '0.0',\n",
" 'fullPrice': {'asks': [{'liquidity': '10000000', 'price': 1.22306}],\n",
" 'bids': [{'liquidity': '10000000', 'price': 1.22294}],\n",
" 'closeoutAsk': 1.22306,\n",
" 'closeoutBid': 1.22294,\n",
" 'type': 'PRICE'},\n",
" 'fullVWAP': 1.22294,\n",
" 'gainQuoteHomeConversionFactor': '0.813573182661',\n",
" 'guaranteedExecutionFee': '0.0',\n",
" 'halfSpreadCost': '0.4906',\n",
" 'id': '2502',\n",
" 'instrument': 'EUR_USD',\n",
" 'lossQuoteHomeConversionFactor': '0.821749797562',\n",
" 'orderID': '2501',\n",
" 'pl': '-0.1643',\n",
" 'price': 1.22294,\n",
" 'reason': 'MARKET_ORDER',\n",
" 'requestID': '24785146322700309',\n",
" 'time': '2021-02-25T16:54:33.762498826Z',\n",
" 'tradesClosed': [{'financing': '0.0',\n",
" 'guaranteedExecutionFee': '0.0',\n",
" 'halfSpreadCost': '0.4906',\n",
" 'price': 1.22294,\n",
" 'realizedPL': '-0.1643',\n",
" 'tradeID': '2500',\n",
" 'units': '-10000.0'}],\n",
" 'type': 'ORDER_FILL',\n",
" 'units': '-10000.0',\n",
" 'userID': 13834683}\n"
]
}
],
"source": [
"from pprint import pprint\n",
"o = mt.create_order('EUR_USD', units=-mt.position * mt.units,\n",
" suppress=True, ret = True)\n",
"print('\\n*** POSITION CLOSED ***')\n",
"mt.print_transactions(tid=int(o['id']) - 1)\n",
"print('\\n')\n",
"pprint(o)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<img src='http://hilpisch.com/taim_logo.png' width=\"350px\" align=\"right\">"
]
}
],
"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.8.6"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Display the source blob
Display the rendered blob
Raw
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
[oanda]
access_token = c71f59_YOURACCESSTOKEN_13da5b8f60fac1397232
account_id = 101-004-YOURID-001
account_type = practice
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment