This commit is contained in:
dsyoon
2022-08-11 23:56:43 +09:00
parent c310e0a89a
commit 95f68cab7b
2 changed files with 19 additions and 12 deletions

View File

@@ -1,3 +1,4 @@
import time
from math import nan from math import nan
import pandas as pd import pandas as pd
import plotly.graph_objects as go import plotly.graph_objects as go
@@ -68,7 +69,7 @@ class Simulation (HTS):
buy_line[i] = nan buy_line[i] = nan
buy_size.append(0) buy_size.append(0)
else: else:
buy_colors.append("#DA8913") buy_colors.append("#00ced1")
buy_size.append(10 + (5 * buy_weight_line[i])) buy_size.append(10 + (5 * buy_weight_line[i]))
sell_colors = [] sell_colors = []
@@ -77,7 +78,7 @@ class Simulation (HTS):
sell_colors.append("#ffffff") sell_colors.append("#ffffff")
sell_line[i] = nan sell_line[i] = nan
else: else:
sell_colors.append("#00ced1") sell_colors.append("#D87D0F")
# 그래프를 설정한다. # 그래프를 설정한다.
buy_check = go.Scatter(x=data['date'], y=buy_line, mode='markers', name="buy", marker=dict(size=buy_size, color=buy_colors, line_width=0)) buy_check = go.Scatter(x=data['date'], y=buy_line, mode='markers', name="buy", marker=dict(size=buy_size, color=buy_colors, line_width=0))

View File

@@ -222,7 +222,13 @@ class BuySellChecker:
return buy, weight return buy, weight
# 3분선이 5분선이 돌파가 이전보다 높은 경우 매수 # 3분선이 5분선이 돌파가 이전보다 높은 경우 매수
if data["avg3"][i - 1] < data["avg5"][i - 1] and data["avg3"][i] > data["avg5"][i]: if data["slow_k"][i] < 20 and data["avg3"][i - 1] < data["avg5"][i - 1] and data["avg3"][i] > data["avg5"][i]:
buy = int((data["open"][i] + data["close"][i]) / 2)
weight = 1
return buy, weight
# 3분선이 5분선이 돌파가 이전보다 높은 경우 매수
if data["slow_k"][i] < 70 and data["avg3"][i - 1] < data["avg5"][i - 1] and data["avg3"][i] > data["avg5"][i]:
max_avg3 = 0 max_avg3 = 0
p_avg3 = 999999 p_avg3 = 999999
for c in range(1, 50): for c in range(1, 50):
@@ -236,7 +242,8 @@ class BuySellChecker:
if i == 382 or i == 383: if i == 382 or i == 383:
if data["close"][i] != data["high"][i]: if data["close"][i] != data["high"][i]:
return -1, -1 return -1, -1
buy = int((data["open"][i] + data["close"][i]) / 2) #buy = int((data["open"][i] + data["close"][i]) / 2)
buy = data["low"][i]
weight = 1 weight = 1
return buy, weight return buy, weight
@@ -444,9 +451,8 @@ class BuySellChecker:
# 매도 분석 # 매도 분석
# 10분선 위에서 3분선이 5분선을 하향 돌파 하는 경우 매도 # 10분선 위에서 3분선이 5분선을 하향 돌파 하는 경우 매도
if data["avg3"][i - 1] >= data["avg5"][i - 1] and data["avg3"][i] < data["avg5"][i]: if data["slow_k"][i - 1] > 60 and data["avg3"][i - 1] >= data["avg5"][i - 1] and data["avg3"][i] < data["avg5"][i]:
if min(data["avg3"][i], data["avg5"][i]) > data["avg10"][i]: if max(data["avg3"][i], data["avg5"][i]) < data["avg10"][i]:
if data["slow_k"][i] > 80:
sell = int((data["high"][i] + data["low"][i]) / 2) sell = int((data["high"][i] + data["low"][i]) / 2)
weight = 1 weight = 1
return sell, weight return sell, weight
@@ -1303,8 +1309,8 @@ class BuySellChecker:
sell, weight = self.getSellPriceAndWeight_3000(data, last_index) sell, weight = self.getSellPriceAndWeight_3000(data, last_index)
buy, weight = self.getBuyPriceAndWeight_3000(data, last_index) buy, weight = self.getBuyPriceAndWeight_3000(data, last_index)
else: else:
sell, weight = self.getSellPriceAndWeight_15000(data, last_index) sell, weight = self.getBuyPriceAndWeight_3000(data, last_index)
buy, weight = self.getBuyPriceAndWeight_15000(data, last_index) buy, weight = self.getBuyPriceAndWeight_3000(data, last_index)
bsLine['buy'] = [buy] bsLine['buy'] = [buy]
bsLine['buy_weight'] = [weight] bsLine['buy_weight'] = [weight]