Доброе время суток, сидел разбирался с свечными графиками в Python руководствуясь
этой статьей. Собственно по самим свечным графикам вопросов нет, но мне надо нарисовать триугольнички над свечами пример на скрине:
Мой датафрэйм немного видоизменен по сравнению с примером
prices = pd.DataFrame({'open': [25, 22, 21, 19, 23, 21, 25, 29],
'close': [24, 20, 17, 23, 22, 25, 29, 31],
'high': [28, 27, 29, 25, 24, 26, 31, 37],
'event': [1, 0, 1, 0, 1, 0, 1, 0],
'low': [22, 16, 14, 17, 19, 18, 22, 26]},
В нем появился event который и отвечает за триугольники 1 это красный, 0 зеленый.
Характиристики триугольника следующие: он должен расоплогатся на некотором растоянии от свечи, и быть не шире свечи. Красные расоплогаются сверху над свечей зеленые снизу.
Собственно вопрос: как мне это сделать? я ни как не могу нагуглить что то похожее, а придумать свое не получается.
Полный код для восрпоизведения:
import pandas as pd
import matplotlib.pyplot as plt
#create DataFrame
prices = pd.DataFrame({'open': [25, 22, 21, 19, 23, 21, 25, 29],
'close': [24, 20, 17, 23, 22, 25, 29, 31],
'high': [28, 27, 29, 25, 24, 26, 31, 37],
'event': [1, 0, 1, 0, 1, 0, 1, 0],
'low': [22, 16, 14, 17, 19, 18, 22, 26]},
index=pd.date_range (" 2021-01-01", periods=8, freq=" d "))
#create figure
plt.figure()
#define width of candlestick elements
width = .2
width2 = .02
#define up and down prices
up = prices[prices. close >=prices. open ]
down = prices[prices. close <prices. open ]
#define colors to use
col1 = 'black'
col2 = 'steelblue'
#plot up prices
plt.bar (up. index ,up. close -up. open ,width,bottom=up. open ,color=col1)
plt.bar (up. index ,up. high -up. close ,width2,bottom=up. close ,color=col1)
plt.bar (up. index ,up. low -up. open ,width2,bottom=up. open ,color=col1)
#plot down prices
plt.bar (down. index ,down. close -down. open ,width,bottom=down. open ,color=col2)
plt.bar (down. index ,down. high -down. open ,width2,bottom=down. open ,color=col2)
plt.bar (down. index ,down. low -down. close ,width2,bottom=down. close ,color=col2)
#rotate x-axis tick labels
plt.xticks (rotation= 45 , ha='right')
#display candlestick chart
plt.show()
Зарание спасибо!