init
This commit is contained in:
65
hts/HTS.py
65
hts/HTS.py
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user