init
This commit is contained in:
@@ -304,6 +304,10 @@ class BuySellChecker:
|
|||||||
if data["macd"][i-3] > data["macd"][i-2] and data["macd"][i-2] > data["macd"][i-1] and data["macd"][i-1] < data["macd"][i]:
|
if data["macd"][i-3] > data["macd"][i-2] and data["macd"][i-2] > data["macd"][i-1] and data["macd"][i-1] < data["macd"][i]:
|
||||||
buy = data["close"][i]
|
buy = data["close"][i]
|
||||||
|
|
||||||
|
if data["slow_d"][i] > 90 and data["rsi"][i] > 65:
|
||||||
|
if data["upper"][i] <= data["high"][i]:
|
||||||
|
sell = data["close"][i] - 5
|
||||||
|
|
||||||
return buy, weight, sell
|
return buy, weight, sell
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -164,7 +164,7 @@ if __name__ == "__main__":
|
|||||||
|
|
||||||
# KODEX 인버스 * 2
|
# KODEX 인버스 * 2
|
||||||
stock_code = "252670"
|
stock_code = "252670"
|
||||||
buy_count = 120
|
buy_count = 100
|
||||||
|
|
||||||
hts = HTS_252670(stock_code, buy_count)
|
hts = HTS_252670(stock_code, buy_count)
|
||||||
today_str = today.strftime('%Y%m%d')
|
today_str = today.strftime('%Y%m%d')
|
||||||
@@ -94,7 +94,7 @@ class Simulation:
|
|||||||
upper = go.Scatter(x=data['date'], y=data["upper"], name="upper", line_color='#000000')
|
upper = go.Scatter(x=data['date'], y=data["upper"], name="upper", line_color='#000000')
|
||||||
lower = go.Scatter(x=data['date'], y=data["lower"], name="lower", line_color='#000000')
|
lower = go.Scatter(x=data['date'], y=data["lower"], name="lower", line_color='#000000')
|
||||||
avg3 = go.Scatter(x=data['date'], y=data["avg3"], name="avg3", line_color='#000000')
|
avg3 = go.Scatter(x=data['date'], y=data["avg3"], name="avg3", line_color='#000000')
|
||||||
avg5 = go.Scatter(x=data['date'], y=data["avg5"], name="avg5", line_color='#0A9127')
|
avg5 = go.Scatter(x=data['date'], y=data["avg5"], name="avg5", line_color='#085F1B')
|
||||||
avg10 = go.Scatter(x=data['date'], y=data["avg10"], name="avg10", line_color='#ff00ff')
|
avg10 = go.Scatter(x=data['date'], y=data["avg10"], name="avg10", line_color='#ff00ff')
|
||||||
avg20 = go.Scatter(x=data['date'], y=data["avg20"], name="avg20", line_color='#1469F4')
|
avg20 = go.Scatter(x=data['date'], y=data["avg20"], name="avg20", line_color='#1469F4')
|
||||||
avg30 = go.Scatter(x=data['date'], y=data["avg30"], name="avg30", line_color='#FFA500')
|
avg30 = go.Scatter(x=data['date'], y=data["avg30"], name="avg30", line_color='#FFA500')
|
||||||
@@ -181,10 +181,13 @@ class Simulation:
|
|||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
|
||||||
stock_codes = {
|
stock_codes = {
|
||||||
# "252670": ['20220620', '20220621', '20220622', '20220623', '20220624'],
|
#"252670": [('20220620', '20220621'), ('20220621', '20220622'), ('20220622', '20220623'), ('20220623', '20220624')],
|
||||||
# "122630": ['20220620', '20220621', '20220622', '20220623', '20220624']
|
"122630": [('20220620', '20220621'),
|
||||||
"252670": [('20220620', '20220621')],
|
('20220621', '20220622'),
|
||||||
"122630": [('20220620', '20220621')]
|
('20220622', '20220623'),
|
||||||
|
('20220623', '20220624')],
|
||||||
|
# "252670": [('20220620', '20220621')],
|
||||||
|
# "122630": [('20220620', '20220621')]
|
||||||
}
|
}
|
||||||
|
|
||||||
for stock_code in stock_codes:
|
for stock_code in stock_codes:
|
||||||
|
|||||||
@@ -1,4 +1,6 @@
|
|||||||
time, check
|
time, check
|
||||||
|
090103,False
|
||||||
|
090203,False
|
||||||
090303,False
|
090303,False
|
||||||
090403,False
|
090403,False
|
||||||
090503,False
|
090503,False
|
||||||
|
|||||||
|
@@ -1,9 +1,5 @@
|
|||||||
import pandas as pd
|
import pandas as pd
|
||||||
from stockpredictor.analysis.Common import Common
|
from stockpredictor.analysis.Common import Common
|
||||||
from plotly import tools, subplots
|
|
||||||
import plotly.offline as offline
|
|
||||||
import plotly.graph_objs as go
|
|
||||||
import plotly.io as po
|
|
||||||
|
|
||||||
# [청송촌놈] 파생을 알아야 시장이 보인다. 청송이 종목 고르는법! https://www.youtube.com/watch?v=weABtgZDeGg
|
# [청송촌놈] 파생을 알아야 시장이 보인다. 청송이 종목 고르는법! https://www.youtube.com/watch?v=weABtgZDeGg
|
||||||
# 6. Pandas와 Plotly를 이용한 MACD 차트 그리기 https://excelsior-cjh.tistory.com/110
|
# 6. Pandas와 Plotly를 이용한 MACD 차트 그리기 https://excelsior-cjh.tistory.com/110
|
||||||
@@ -20,31 +16,6 @@ class MACD:
|
|||||||
self.common = Common()
|
self.common = Common()
|
||||||
return
|
return
|
||||||
|
|
||||||
def draw(self, stock):
|
|
||||||
item_name = stock["NAME"]
|
|
||||||
item_code = stock["CODE"]
|
|
||||||
|
|
||||||
df = pd.DataFrame(stock["PRICE"])
|
|
||||||
macd = go.Scatter(x=df.DATE, y=df['macd'], name="MACD")
|
|
||||||
signal = go.Scatter(x=df.DATE, y=df['macds'], name="Signal")
|
|
||||||
oscillator = go.Bar(x=df.DATE, y=df['macdo'], name="oscillator")
|
|
||||||
trade_volume = go.Bar(x=df.DATE, y=df['volume'], name="volume")
|
|
||||||
data = [macd, signal, oscillator]
|
|
||||||
|
|
||||||
layout = go.Layout(title='{} MACD 그래프'.format(item_name))
|
|
||||||
fig = subplots.make_subplots(rows=2, cols=1, shared_xaxes=True)
|
|
||||||
|
|
||||||
for trace in data:
|
|
||||||
fig.append_trace(trace, 1,1)
|
|
||||||
|
|
||||||
fig.append_trace(trade_volume, 2,1)
|
|
||||||
fig = go.Figure(data=data, layout=layout)
|
|
||||||
|
|
||||||
path = "/Users/dsyoon/workspace/StockPredictor/resources/analysis/html"
|
|
||||||
po.write_html(fig, file=path + "/macd_" + item_code+'.html', auto_open=False)
|
|
||||||
return fig
|
|
||||||
|
|
||||||
|
|
||||||
# macd 0선 위에서 매수를 한다. 0이하는 절대 처다보지 않는다.
|
# macd 0선 위에서 매수를 한다. 0이하는 절대 처다보지 않는다.
|
||||||
def apply(self, df, short=12, long=26, t=9):
|
def apply(self, df, short=12, long=26, t=9):
|
||||||
# 입력받은 값이 dataframe이라는 것을 정의해줌
|
# 입력받은 값이 dataframe이라는 것을 정의해줌
|
||||||
|
|||||||
Reference in New Issue
Block a user