diff --git a/README.md b/README.md index 8fd7a3be..98033821 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ --- -# Contents +# Contents and Tutorials - **[The New API](https://github.com/matplotlib/mplfinance#newapi)** - **[Basic Usage](https://github.com/matplotlib/mplfinance#usage)** diff --git a/examples/using_lines.ipynb b/examples/using_lines.ipynb index fe926027..c8398fc5 100644 --- a/examples/using_lines.ipynb +++ b/examples/using_lines.ipynb @@ -6,7 +6,7 @@ "source": [ "---\n", "\n", - "# mplfinance: using lines for trends, support, and trading\n", + "# mplfinance: using lines for trends, support, resistance, and trading\n", "\n", "---" ] @@ -22,15 +22,15 @@ "\n", "#### `mpf.plot()` supports the drawing of straight lines on top of an ohlc or candlestick chart using one or more of the following four kwargs:\n", "\n", - "| keyword | argument | action |\n", + "| keyword | argument value | action |\n", "|:---|:---|:---|\n", "| **`hlines`** | price, or sequence of prices | draw horizontal line(s) at a specified price level(s). |\n", "| **`vlines`** | date[time], or sequence of date[time] | draw vertical line(s) at a specified date(s) or time(s). |\n", - "| **`alines`** | two or more date/price pairs, or
a sequence of two or more date/price pairs, or
a sequence of sequences of two or more date/price pairs | draw an arbitrary line by specifying two or more x,y pairs,
for example: (dateA,priceA),(dateB,priceB) to draw a line from point (dateA,priceA) to point (dateB,priceB).
this may be done for various reasons, including to highlight a trend or trends. |\n", - "| **`tlines`** | a list of one or more pairs of date[time]s | - calculate and draw a trend line between each pair of user specified date[time]s
- value used at each date[time] may be open ,close, high, or low,
  or the average of any combination thereof
- trend line may be 'point-to-point' or 'least-squares' fit |\n", + "| **`alines`** | a sequence of two or more date/price pairs, or
a sequence of sequences of two or more date/price pairs | draw an arbitrary line by specifying two or more x,y pairs,
for example: (dateA,priceA),(dateB,priceB) to draw a line from point (dateA,priceA) to point (dateB,priceB).
this may be done for various reasons, including to highlight a trend or trends. |\n", + "| **`tlines`** | a list of one or more pairs of date[time]s | - calculate and draw a trend line between each date[time] in each date[time] pair
- value used at each date[time] may be open ,close, high, low,
   or the average of any combination thereof
- trend line calculation method may be:
    - a simple 'point-to-point' (from value at one date[time] to value at the other date[time]), or
    - linear 'least-squares' fit of all values from one date[time] through and including the other date[time]. |\n", "\n", "---\n", - "In every case, the argument may be either as specified in the above table
**OR the argument may be a dict** containing the above mentioned keyword and argument specified above,
**plus** any or all of the following keywords to modify the line(s) being drawn:\n", + "In every case, the kwarg argument value may be either as specified in the above table
**OR the argument may be a dict** containing the above mentioned keyword and argument as specified above,
**plus** any or all of the following keywords to modify the line(s) being drawn:\n", "\n", "- `colors`\n", "- `linestyle`\n", @@ -310,6 +310,245 @@ "mpf.plot(daily,hlines=dict(hlines=[3080,3121],colors=['g','r'],linestyle='-.'))\n", "mpf.plot(daily,hlines=dict(hlines=[3080,3121],colors=['g','r'],linestyle='-.'),type='candle')" ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n", + "\n", + "**Use vertical lines to show days on which I made a trade:**" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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kv77v/9b69at0/jx4694GAZ8g32kPlRWVqaamhrdeeed6tq1q9566y3t3LlTkpxhitbr3LmzevbsqdLSUknSXXfdpcrKSj377LNas2aNCgoKfFxh21VeXi6Hw6E777xTp0+f1vr16/Xb3/5We/bs0euvv67nn39eX3zxha/LbLNsNpvCwsJ0+vRpSdKkSZNks9lUWlrK54IfYmjXhzp06KC4uDiNGjVK4eHh+uqrr7R371517tzZuc+0vLxcwcHBvi61Taqvr9fatWt16tQpffnll8rIyNCPf/xjRURE6PDhw/rmm2902223yWq1snnzFv0AAAnaSURBVIXaQsHBwYqKitK+ffv00Ucf6c9//rNeeuklTZgwQTfddJO+/vprFRcX64c//KEkJsu4yjAMWSwWBQQEKCAgQDfffLOCgoJkGIY2b96su+++W507d5bFYlFlZSVbp36CoV0vW7FihU6ePKnrr79ew4YN07BhwyRJN998s6xWqzZt2qS3335b1113nY4fP64DBw5o1qxZCgoK8nHlbcP5/vbq1Utjx47V6tWrlZ2drYMHD2r48OGaPXu2JGnTpk364IMP+CBqoc8++0yJiYmSpD59+uiBBx7Qf/7nf6pv374KDQ1VQ0ODEhISFB0drT179shqZdDLVb/+9a/17bffqkePHrr33nv1wAMPSGr8g7CsrEx1dXXOEN26dauOHDmixx57jM8GP8C73IuefPJJFRQUKDExUQ0NDVq4cKHeeOMN5/0DBw7UxIkTFRcXp9mzZ+vZZ5/Vvffeyy+Kiy7sr2EYmj59ug4cOKAZM2ZozJgx6tz57+dcDgwMlMPhUGVlpQ8rbltWrVql9PR0vfLKK85lAwcO1Ny5c3X//ferY8eOCggIkNQ4rB4aGqra2lpfldumPPnkk/rmm29kt9tltVr16quv6uTJk5IazxkeGBgom82mzp07691339XKlSuVnJzMZ4OfYIvUS06ePKnTp0/rv/7rvyRJtbW1GjBggObNmyfDMDR58mRJjR9Mubm5qqys1CuvvKKEhARflt1mNNff/v37a/78+aqtrdVtt92mjIwM51bTjh07tGLFCnXs2NHHlbcdhmFo6tSp2rJli+rq6vTzn/9ckhQbGytJOn78uLZv366ysjLt2LFDL774Ilv8Ljhx4oSKioqUlZUlSYqKitKSJUtUVVUl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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "mpf.plot(daily,type='candle',vlines=dict(vlines=['2019-11-06','2019-11-15','2019-11-25'],linewidths=1))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n", + "\n", + "**Using vertical lines to show the start of each trading day for intraday data:**" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(1563, 5)" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + }, + { + "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", + "
OpenCloseHighLowVolume
Date
2019-11-05 09:30:003080.803080.493081.473080.300
2019-11-05 09:31:003080.333079.363080.333079.150
\n", + "
" + ], + "text/plain": [ + " Open Close High Low Volume\n", + "Date \n", + "2019-11-05 09:30:00 3080.80 3080.49 3081.47 3080.30 0\n", + "2019-11-05 09:31:00 3080.33 3079.36 3080.33 3079.15 0" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + }, + { + "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", + "
OpenCloseHighLowVolume
Date
2019-11-08 15:58:003090.733091.043091.133090.580
2019-11-08 15:59:003091.163092.913092.913090.960
\n", + "
" + ], + "text/plain": [ + " Open Close High Low Volume\n", + "Date \n", + "2019-11-08 15:58:00 3090.73 3091.04 3091.13 3090.58 0\n", + "2019-11-08 15:59:00 3091.16 3092.91 3092.91 3090.96 0" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "idf = pd.read_csv('./data/SP500_NOV2019_IDay.csv',index_col=0,parse_dates=True)\n", + "idf.shape\n", + "idf.head(2)\n", + "idf.tail(2)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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jx7Fhg0bkJaWhoyMDBQXFyM1NRUAsHHjRqjVaqjVaqSnp6NPnz544IEHAABLlizBww8/jMzMTMydOxeJiYnmOhQiDvcSkcRsQWpvb49Vq1bB29sbABAaGoq8vDyo1WpERkbCzc0NSqUSMTExyMjIaLB9WloahgwZgkGDBuH06dMoLS3FPffcAwCYOHEiiouLodFozHU4RAAYqERkxiD18vJCeHg4AECn02Hbtm0YP3488vPz4efnJ73O19cXubm59batqqrCRx99hISEBABAfn4+fHx86r2mse2IWqu5oVgO0xJRY8y+aH1KSgqSk5Ph5+eHtWvXIjExESqVSnreyckJWq223jY7duzAsGHD4OvrCwDQarVwdHSs9xpHR0eUl5c3eD+FQgFvL9d2qb299mNuKns7q6xdW1kta+03vu+NPzfWG23sNXUnTFny30Pd2qz1MwNYeO05NX80Vp9F190CW69dqVQ0+7zZg3TOnDmIi4tDeno6oqOj0bdvX1RVVUnPa7VauLi41Ntm586diImJkX52cXFBZWVlvddUVFSgS5cuDd5PCIELF8tMqnnA//40dT9y8fZytcraL1wsk7X2G9+3uTpyzl9BgK8nnB0dGvRcnR0djNqHfDwA1K/NWj8zgHXU3lh91lB3U2y9doNBNBumZhva1Wg02Lt3L4CaXmJUVBSuX78OhUJRb0g2JycHAQEB0s9lZWU4evQowsLCpMf69++P/Px8GAwGADVDxfn5+RgwYACILBWHholsk9mCtKSkBEuXLkVRUREA4NChQ6iurkZCQoI0W1en02Hz5s2YNGmStF1ubi48PT3h6vpX1zsgIAA9e/bEzp07AQDbt2+Hj48P/P39zXU4REREAMw4tBsSEoKFCxciPj4eBoMBKpUKq1evRkhICObPn4+ZM2dCCIGwsLB6w7iFhYXo2bNng/299dZbePHFF/H++++je/fuePPNN811KNSJ3HgetHYItzHscRJ1TmY9RxobG4vY2NgGj8fFxSEuLq7RbSZMmIAJEyY0eDwoKAhbtmxp9xqJ2oqXwhB1TlwikMgIdXub7HkSUV0MUiIiIhMwSImIiEzAICVqAs95EpExGKREZsDzqkS2i0FK1AbGBCPvpUrUOZh9iUAiW1Mbqux1EnVO7JESERGZgD1SojZiD5SIAAYpUYtMCUyGLZHt49AuERGR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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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/UhPT8emTZvwyy+/IDQ0FGq1GkuXLsXUqVOlIepp06Zh/PjxMldbJz8/H4sWLUJFRQX27duH119/HVu2bMHbb7+Nl19+GePGjYOvry8A4Oabb4anpycqKytlrrqORqORPi8NJ/0plXVf797e3vjb3/6Gzz77TBpZshRFRUWIjY3FCy+8AIPBAHt7exgMBmlmd//+/fHUU09hy5Yt+Pbbb+Uut0WctduFamtrsWHDBtx555149NFHccstt2DHjh3w9fVFYGAgpk2bhpSUFBw4cACFhYX44IMP0KNHD8yaNUvu0lFSUoIHHngAs2bNQnx8PHQ6HT766CMcO3YM169fx/PPP4/t27fju+++Q3Z2NtLT09GjRw/Mnz9f7tJbbPchQ4Zg9OjRuOuuuxAcHAx3d3cUFhbi1VdfhZubG6ZMmSJ36a22+++//46YmBiMHz9eOg3w+uuvw8XFBeHh4XKXLunduzfOnDmD2267Dfv27UP//v3h5eUFnU6HLVu2oKamBrfccgsef/xxuLi4YMaMGbLWazAY8OGHHyIwMBDLly9HaGgobrrpJnz88cc4deoU7rnnHmzYsAG//vorfHx88OKLL8LV1RWLFi2StW6g7vKc+fPn48EHH0RcXBz0ej3UajUKCgpQWVmJAQMGAKg7z15YWIjs7GyMHTsWLi4uMldep7i4GIcPH4adnR0OHz6MO++8E0qlEgaDAUqlEkII3HTTTdDpdNixYwfGjx+P3r17y112EwzSLqRUKnHgwAH07NkT48aNg5ubG7Kzs3Ht2jWo1WpotVq8+uqruHTpErRaLTw8PKQeqpB5in1lZSWKiopQU1ODUaNGITExEdeuXUN1dTV27dqF3NxcvP3227C3t4ednR28vLywatUqi6i9pXb/448/sHfvXpw8eRK33347NmzYgK+//hqurq545ZVXLKL21tpdrVbju+++Q2RkJP7zn/8gOzsb7u7uFlN7PaVSiU8++QRBQUEwGAw4ePAghg8fjvPnz2PUqFHS+UZXV1e88cYbAOStXaFQ4NSpUygoKMAdd9yBXr164aabbkJAQAB27doFrVaLJ598EqmpqTh79iz69OmD1157Tfa6AeDYsWP47bffcPfdd6Nfv35YunQpzp07h3379uGXX35BYWEhxo8fD1dXV+j1eri4uEgTqCzBoUOHkJeXh1mzZuHIkSM4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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "vls=['2019-11-05 09:30',\n", + " '2019-11-06 09:30',\n", + " '2019-11-07 09:30',\n", + " '2019-11-08 09:30']\n", + "mpf.plot(idf,vlines=dict(vlines=vls,colors=('r','g','b','c'))) # different color for each line\n", + "mpf.plot(idf,vlines=dict(vlines=vls,colors='c')) # one color for all lines" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { diff --git a/src/mplfinance/_utils.py b/src/mplfinance/_utils.py index 220afd9a..ff3aea02 100644 --- a/src/mplfinance/_utils.py +++ b/src/mplfinance/_utils.py @@ -990,12 +990,10 @@ def _construct_vline_collections(vlines,dtix,miny,maxy): lines = _convert_segment_dates(lines,dtix) - useAA = 0, # use tuple here - lw = vconfig['linewidths'] co = vconfig['colors'] ls = vconfig['linestyle'] - lcollection = LineCollection(lines,colors=co,linewidths=lw,linestyles=ls,antialiaseds=useAA) + lcollection = LineCollection(lines,colors=co,linewidths=lw,linestyles=ls,antialiaseds=(0,))#,alpha=0.2) return lcollection def _construct_tline_collections(tlines, dtix, dates, opens, highs, lows, closes, tline_use, tline_method):