init
This commit is contained in:
28
hts/HTS.py
28
hts/HTS.py
@@ -911,7 +911,7 @@ class HTS:
|
|||||||
|
|
||||||
def buyRealTime(self, stock_code, given_day):
|
def buyRealTime(self, stock_code, given_day):
|
||||||
PREVIOUS_PRICE = 0
|
PREVIOUS_PRICE = 0
|
||||||
BUY_COUNT = 200
|
BUY_COUNT = 300
|
||||||
TOTAL_BUY_AMT = 0
|
TOTAL_BUY_AMT = 0
|
||||||
|
|
||||||
logFp = open(given_day+".log", "w")
|
logFp = open(given_day+".log", "w")
|
||||||
@@ -927,6 +927,9 @@ class HTS:
|
|||||||
"low": [],
|
"low": [],
|
||||||
"vol": []}
|
"vol": []}
|
||||||
|
|
||||||
|
avg60_1 = 0
|
||||||
|
avg60_2 = 0
|
||||||
|
final_price = 0
|
||||||
print ("START...")
|
print ("START...")
|
||||||
while datetime.strptime(given_day + " 083000", '%Y%m%d %H%M%S') < datetime.now() < datetime.strptime(given_day + " 151500", '%Y%m%d %H%M%S'):
|
while datetime.strptime(given_day + " 083000", '%Y%m%d %H%M%S') < datetime.now() < datetime.strptime(given_day + " 151500", '%Y%m%d %H%M%S'):
|
||||||
second = datetime.now().strftime('%Y%m%d %H%M%S')
|
second = datetime.now().strftime('%Y%m%d %H%M%S')
|
||||||
@@ -941,23 +944,25 @@ class HTS:
|
|||||||
|
|
||||||
# 분석을 통해서 볼린저밴드 상/하단을 계산한다.
|
# 분석을 통해서 볼린저밴드 상/하단을 계산한다.
|
||||||
data, upper, lower = self.analyze(result)
|
data, upper, lower = self.analyze(result)
|
||||||
|
avg60_2 = data['avg60'][len(data['avg60']) - 2]
|
||||||
|
avg60_1 = data['avg60'][len(data['avg60']) - 1]
|
||||||
|
final_price = data["Close"][len(data["Close"])- 1]
|
||||||
# 사야 할 시점/가격과 팔아야 할 시점/가격을 체크한다.
|
# 사야 할 시점/가격과 팔아야 할 시점/가격을 체크한다.
|
||||||
bs_buy_price, bs_sell_price = self.checkTransaction_Realtime(data, upper, lower)
|
bs_buy_price, bs_sell_price = self.checkTransaction_Realtime(data, upper, lower)
|
||||||
|
|
||||||
if bs_buy_price > 0:
|
if bs_buy_price > 0:
|
||||||
if PREVIOUS_PRICE > 0:
|
if PREVIOUS_PRICE > 0:
|
||||||
if PREVIOUS_PRICE > bs_buy_price:
|
if PREVIOUS_PRICE > bs_buy_price:
|
||||||
if BUY_COUNT > 240:
|
if BUY_COUNT > 340:
|
||||||
|
BUY_COUNT = 340
|
||||||
|
if BUY_COUNT <= 240:
|
||||||
BUY_COUNT = 240
|
BUY_COUNT = 240
|
||||||
if BUY_COUNT <= 140:
|
|
||||||
BUY_COUNT = 140
|
|
||||||
BUY_COUNT += 10
|
BUY_COUNT += 10
|
||||||
elif PREVIOUS_PRICE < bs_buy_price:
|
elif PREVIOUS_PRICE < bs_buy_price:
|
||||||
if BUY_COUNT > 250:
|
if BUY_COUNT > 350:
|
||||||
|
BUY_COUNT = 360
|
||||||
|
if BUY_COUNT <= 250:
|
||||||
BUY_COUNT = 260
|
BUY_COUNT = 260
|
||||||
if BUY_COUNT <= 150:
|
|
||||||
BUY_COUNT = 160
|
|
||||||
BUY_COUNT -= 10
|
BUY_COUNT -= 10
|
||||||
|
|
||||||
PREVIOUS_PRICE = bs_buy_price
|
PREVIOUS_PRICE = bs_buy_price
|
||||||
@@ -985,16 +990,15 @@ class HTS:
|
|||||||
|
|
||||||
|
|
||||||
# 60일 선이 꺾여서 하락 중일 경우만 바로 매도를 한다.
|
# 60일 선이 꺾여서 하락 중일 경우만 바로 매도를 한다.
|
||||||
size = len(data["avg60"])
|
if ((avg60_1 != 0 and avg60_2 != 0) and avg60_2 > avg60_1):
|
||||||
if data["avg60"][size-2] > data["avg60"][size-1]:
|
|
||||||
# 만약 잔고가 있으면 장부가보다 5원 높게 매도한다.
|
# 만약 잔고가 있으면 장부가보다 5원 높게 매도한다.
|
||||||
jangoDic = self.requstJango()
|
jangoDic = self.requstJango()
|
||||||
if jangoDic and len(jangoDic.keys()) > 0:
|
if jangoDic and len(jangoDic.keys()) > 0:
|
||||||
for code in jangoDic:
|
for code in jangoDic:
|
||||||
TOTAL_BUY_AMT = jangoDic[code]['매입금액']
|
TOTAL_BUY_AMT = jangoDic[code]['매입금액']
|
||||||
if jangoDic[code]['매도가능'] > 0:
|
if jangoDic[code]['매도가능'] > 0:
|
||||||
if data["Close"][size-1] > jangoDic[code]['장부가'] + 5:
|
if final_price > jangoDic[code]['장부가'] + 5:
|
||||||
self.requestOrder("1", stock_code, jangoDic[code]['매도가능'], data["Close"][size-1])
|
self.requestOrder("1", stock_code, jangoDic[code]['매도가능'], final_price)
|
||||||
else:
|
else:
|
||||||
# 장부가 가격의 마지막 자리를 0으로 만든다. (2090 -> 2090, 2092 -> 2090, 2098 -> 2090)
|
# 장부가 가격의 마지막 자리를 0으로 만든다. (2090 -> 2090, 2092 -> 2090, 2098 -> 2090)
|
||||||
sell_price = int(jangoDic[code]['장부가'] / 10) * 10
|
sell_price = int(jangoDic[code]['장부가'] / 10) * 10
|
||||||
|
|||||||
Reference in New Issue
Block a user