This commit is contained in:
dosangyoon
2021-10-15 03:01:53 +09:00
parent 0308f3838c
commit f3dcf2aeda
3 changed files with 74 additions and 98 deletions

View File

@@ -531,45 +531,11 @@ class HTS:
bsLine['sell'] = [-1 for i in range(size)]
i = size - 1
if i > 20:
if data["High"][i] > data["upper"][i]:
bsLine['sell'][i] = data["High"][i]
if data["slow_k"][i] <= 36:
if data["Low"][i] < data["lower"][i]:
bsLine['buy'][i] = data["Close"][i] - 5
if data["slow_k"][i] <= 25:
if data["slow_k"][i - 1] < data["slow_d"][i - 1] and data["slow_d"][i] < data["slow_k"][i]:
bsLine['buy'][i] = data["Close"][i] - 5
# rsi가 rsis 위로 올라오며 15 이하일 경우 10배로 주문함 (14:30 이전)
if data["rsi"][i] < 15 and data["rsis"][i] < 15 and data["rsi"][i - 1] < data["rsis"][i - 1] and data["rsis"][i] < data["rsi"][i]:
bsLine['buy'][i] = data["Close"][i] - 5
bsLine['weight'][i] = 10
if data["slow_k"][i] == 1:
bsLine['weight'][i] = 8
elif data["slow_k"][i] in(2,3):
bsLine['weight'][i] = 7
elif data["slow_k"][i] in(4,5,6):
bsLine['weight'][i] = 6
elif data["slow_k"][i] in(7,8,9,10):
bsLine['weight'][i] = 5
elif data["slow_k"][i] in(11,12,13,14,15):
bsLine['weight'][i] = 4
elif data["slow_k"][i] in(16,17,18,19,20,21):
bsLine['weight'][i] = 3
elif data["slow_k"][i] in(22,23,24,25,26,27,28):
bsLine['weight'][i] = 2
elif data["slow_k"][i] in(29,30,31,32,33,34,35,36):
bsLine['weight'][i] = 1
if data["rsi"][i] < 10:
bsLine['weight'][i] = 8
if i<=20:
bsLine['weight'][i] = 1
return bsLine['buy'][i], bsLine['weight'][i], bsLine['sell'][i]
if i <= 20:
return -1, -1, -1
buy, weight, sell = self.bs.getPriceAndWeight(data, i)
return buy, weight, sell
def getSellingPrice(self, final_price):
# 만약 잔고가 있으면 장부가보다 5원 높게 매도한다.
@@ -597,9 +563,6 @@ class HTS:
return 0, 0
def buyRealTime(self, stock_code, given_day):
PREVIOUS_PRICE = 0
BUY_COUNT = 200
timecheckList = pd.read_csv("timecheck.csv").values.tolist()
timecheck = {given_day + " " + str(second).zfill(6):False for second, check in timecheckList}
@@ -631,26 +594,12 @@ class HTS:
final_price = data["Close"][len(data["Close"])-1]
if bs_buy_price > 0:
if PREVIOUS_PRICE > 0:
if PREVIOUS_PRICE > bs_buy_price:
if BUY_COUNT > 240:
BUY_COUNT = 240
if BUY_COUNT < 140:
BUY_COUNT = 140
BUY_COUNT += 10
elif PREVIOUS_PRICE < bs_buy_price:
if BUY_COUNT > 260:
BUY_COUNT = 260
if BUY_COUNT < 160:
BUY_COUNT = 160
BUY_COUNT -= 10
PREVIOUS_PRICE = bs_buy_price
BUY_COUNT = int(200 * bs_weight)
# 매수 전에 모든 미체결을 취소한다.
self.cancelOrderList()
# self.cancelOrderList()
# 현재까지 매입금액이 7백만원 이하일 때만 매수를 한다.
self.requestOrder("2", stock_code, BUY_COUNT , bs_buy_price)
self.requestOrder("2", stock_code, bs_weight * BUY_COUNT , bs_buy_price)
print("BUY", second, BUY_COUNT, bs_buy_price)
if bs_sell_price > 0: