init
This commit is contained in:
@@ -127,11 +127,196 @@ class Common:
|
||||
|
||||
def checkLongYangBongAfterUmBong(self, stock, i):
|
||||
if i > 0:
|
||||
if stock[i-1]['open'] > stock[i-1]['close']: # 어제가 음봉인지 체크
|
||||
if stock[i-1]['close'] < stock[i-1]['open']: # 어제가 음봉인지 체크
|
||||
if stock[i]['open'] < stock[i]['close'] and stock[i]['close'] == stock[i]['high']: # 오늘 장대양봉인지 체크
|
||||
if stock[i-1]['volume']*2 < stock[i]['volume']: # 어제 거래량 보다 두배 이상일 때
|
||||
return True
|
||||
return False
|
||||
return "UMYANG_"
|
||||
return ""
|
||||
|
||||
def checkDoji(self, stock, i):
|
||||
# 하락 추세이고, 그저께, 어제 음봉이고, 오늘 도지인지 체크한다
|
||||
if i > 2:
|
||||
# 하락 추세이고
|
||||
if stock[i - 1]['close'] < stock[i - 2]['close']:
|
||||
# 그저께와 어제가 음봉인지 체크
|
||||
if stock[i-2]['close'] < stock[i-2]['open'] and stock[i-1]['close'] < stock[i-1]['open']:
|
||||
# 도지 체크
|
||||
if stock[i]['open'] == stock[i]['close'] and stock[i]['low'] < stock[i]['close'] < stock[i]['high']:
|
||||
return "DOJI_"
|
||||
return ""
|
||||
|
||||
def checkGravestone(self, stock, i):
|
||||
# 상승 추세이고, 어제 양봉이고, 오늘 그레이브스톤인지 체크한다
|
||||
if i > 2:
|
||||
# 상승 추세이고
|
||||
if stock[i-2]['close'] < stock[i - 1]['close']:
|
||||
# 어제 양봉인지 체크
|
||||
if stock[i-1]['open'] < stock[i-1]['close']:
|
||||
# 오늘 그레이브스톤인지 체크한다
|
||||
if stock[i]['open'] == stock[i]['close'] == stock[i]['low'] and stock[i]['low'] < stock[i]['high']:
|
||||
return "GRAVESTONE_"
|
||||
return ""
|
||||
|
||||
def checkDragonfly(self, stock, i):
|
||||
# 하락 추세이고, 그저께, 어제 음봉이고, 오늘 드레곤플라이인지 체크한다
|
||||
if i > 1:
|
||||
# 하락 추세이고
|
||||
if stock[i - 1]['close'] < stock[i - 2]['close']:
|
||||
# 그저께와 어제가 음봉인지 체크
|
||||
if stock[i - 2]['close'] < stock[i - 2]['open'] and stock[i - 1]['close'] < stock[i - 1]['open']:
|
||||
# 오늘 드레곤플라이인지 체크한다
|
||||
if stock[i]['open'] == stock[i]['close'] == stock[i]['high'] and stock[i]['low'] < stock[i]['high']:
|
||||
return "DRAGONEFLY_"
|
||||
return ""
|
||||
|
||||
def checkHammer(self, stock, i):
|
||||
# 하락 추세이고, 그저께, 어제 음봉이고, 오늘 해머인지 체크한다
|
||||
if i > 1:
|
||||
# 하락 추세이고
|
||||
if stock[i - 1]['close'] < stock[i - 2]['close']:
|
||||
# 그저께와 어제가 음봉인지 체크
|
||||
if stock[i - 2]['close'] < stock[i - 2]['open'] and stock[i - 1]['close'] < stock[i - 1]['open']:
|
||||
# 오늘 해머인지 체크한다
|
||||
if stock[i]['open'] < stock[i]['close']:
|
||||
if (stock[i]['close'] - stock[i]['open']) * 2 < stock[i]['open'] - stock[i]['low']:
|
||||
# 윗꼬리가 몸통보다 짧아야 한다.
|
||||
if stock[i]['high'] - stock[i]['close'] < stock[i]['close'] - stock[i]['open']:
|
||||
return "HAMMER_"
|
||||
if stock[i]['close'] < stock[i]['open']:
|
||||
if (stock[i]['open'] - stock[i]['close']) * 2 < stock[i]['close'] - stock[i]['low']:
|
||||
# 윗꼬리가 몸통보다 짧아야 한다.
|
||||
if stock[i]['high'] - stock[i]['open'] < stock[i]['open'] - stock[i]['close']:
|
||||
return "HAMMER_"
|
||||
return ""
|
||||
|
||||
def checkHangingman(self, stock, i):
|
||||
# 상승 추세이고, 어제 양봉이고, 오늘 행잉맨인지 체크한다
|
||||
if i > 2:
|
||||
# 상승 추세이고
|
||||
if stock[i-2]['close'] < stock[i - 1]['close']:
|
||||
# 어제 양봉인지 체크
|
||||
if stock[i-1]['open'] < stock[i-1]['close']:
|
||||
# 오늘 해머인지 체크한다
|
||||
if stock[i]['open'] < stock[i]['close']:
|
||||
if (stock[i]['close'] - stock[i]['open']) * 2 < stock[i]['open'] - stock[i]['low']:
|
||||
# 윗꼬리가 몸통보다 짧아야 한다.
|
||||
if stock[i]['high'] - stock[i]['close'] < stock[i]['close'] - stock[i]['open']:
|
||||
return "HANGINGMAN_"
|
||||
if stock[i]['close'] < stock[i]['open']:
|
||||
if (stock[i]['open'] - stock[i]['close']) * 2 < stock[i]['close'] - stock[i]['low']:
|
||||
# 윗꼬리가 몸통보다 짧아야 한다.
|
||||
if stock[i]['high'] - stock[i]['open'] < stock[i]['open'] - stock[i]['close']:
|
||||
return "HANGINGMAN_"
|
||||
return ""
|
||||
|
||||
def checkEngulfingHigh(self, stock, i):
|
||||
# 하락 추세에서 상승 장악형인지 체크
|
||||
if i > 2:
|
||||
# 하락 추세이고
|
||||
if stock[i - 1]['close'] < stock[i - 2]['close']:
|
||||
# 그저께와 어제가 음봉인지 체크
|
||||
if stock[i - 2]['close'] < stock[i - 2]['open'] and stock[i - 1]['close'] < stock[i - 1]['open']:
|
||||
# 오늘 상승장악형인지 체크
|
||||
if stock[i]['open'] < stock[i]['close']:
|
||||
if stock[i-1]['open'] < stock[i]['close'] and stock[i]['open'] < stock[i-1]['close']:
|
||||
return "ENHIGH_"
|
||||
return ""
|
||||
|
||||
def checkEngulfingLow(self, stock, i):
|
||||
# 상승 추세에서 하락 장악형인지 체크
|
||||
if i > 2:
|
||||
# 상승 추세이고
|
||||
if stock[i - 2]['close'] < stock[i - 1]['close']:
|
||||
# 어제 양봉인지 체크
|
||||
if stock[i - 1]['open'] < stock[i - 1]['close']:
|
||||
# 오늘 하락장악형인지 체크
|
||||
if stock[i]['close'] < stock[i]['open']:
|
||||
if stock[i-1]['close'] < stock[i]['open'] and stock[i]['close'] < stock[i-1]['open']:
|
||||
return "ENLOW_"
|
||||
return ""
|
||||
|
||||
def checkHaramiHigh(self, stock, i):
|
||||
# # 하락 추세에서 상승포아형인지 체크
|
||||
if i > 2:
|
||||
# 하락 추세이고
|
||||
if stock[i - 1]['close'] < stock[i - 2]['close']:
|
||||
# 그저께와 어제가 음봉인지 체크
|
||||
if stock[i - 2]['close'] < stock[i - 2]['open'] and stock[i - 1]['close'] < stock[i - 1]['open']:
|
||||
# 오늘 상승포아형인지 체크
|
||||
if stock[i]['open'] < stock[i]['close']:
|
||||
if stock[i-1]['close'] < stock[i]['low'] and stock[i]['high'] < stock[i-1]['open']:
|
||||
return "HAHIGH_"
|
||||
return ""
|
||||
|
||||
def checkHaramiLow(self, stock, i):
|
||||
# 상승 추세에서 하락 포아형인지 체크
|
||||
if i > 2:
|
||||
# 상승 추세이고
|
||||
if stock[i - 2]['close'] < stock[i - 1]['close']:
|
||||
# 어제 양봉인지 체크
|
||||
if stock[i - 1]['open'] < stock[i - 1]['close']:
|
||||
# 오늘 하락포아형인지 체크
|
||||
if stock[i]['close'] < stock[i]['open']:
|
||||
if stock[i-1]['open'] < stock[i]['low'] and stock[i]['high'] < stock[i-1]['close']:
|
||||
return "HALOW_"
|
||||
return ""
|
||||
|
||||
def checkPiercing(self, stock, i):
|
||||
# 하락 추세에서 관통형인지 체크
|
||||
if i > 2:
|
||||
# 하락 추세이고
|
||||
if stock[i - 1]['close'] < stock[i - 2]['close']:
|
||||
# 그저께와 어제가 음봉인지 체크
|
||||
if stock[i - 2]['close'] < stock[i - 2]['open'] and stock[i - 1]['close'] < stock[i - 1]['open']:
|
||||
# 오늘 관통형인지 체크
|
||||
if stock[i]['open'] < stock[i]['close']:
|
||||
if stock[i]['open'] < stock[i-1]['low'] and (stock[i-1]['close'] + stock[i-1]['open'])/2 < stock[i]['close'] < stock[i-1]['close']:
|
||||
return "PIERCING_"
|
||||
return ""
|
||||
|
||||
def checkDarkCloud(self, stock, i):
|
||||
# 상승 추세에서 흑운형인지 체크
|
||||
if i > 2:
|
||||
# 상승 추세이고
|
||||
if stock[i - 2]['close'] < stock[i - 1]['close']:
|
||||
# 어제 양봉인지 체크
|
||||
if stock[i - 1]['open'] < stock[i - 1]['close']:
|
||||
# 오늘 흑운형인지 체크
|
||||
if stock[i]['close'] < stock[i]['open']:
|
||||
if stock[i-1]['high'] < stock[i]['open'] and stock[i-1]['open'] < stock[i]['close'] < (stock[i-1]['open'] + stock[i-1]['close'])/2:
|
||||
return "DARKCLOUD_"
|
||||
return ""
|
||||
|
||||
def checkMorningstar(self, stock, i):
|
||||
# 하락 추세에서 샛별인지 체크
|
||||
if i > 3:
|
||||
# 하락 추세이고
|
||||
if stock[i-1]['close'] < stock[i-2]['close']:
|
||||
# 그저께와 어제가 음봉인지 체크
|
||||
if stock[i - 2]['close'] < stock[i - 2]['open'] and stock[i - 1]['close'] < stock[i - 1]['open']:
|
||||
# 오늘 샛별인지 체크
|
||||
# 어제 갭 체크
|
||||
if stock[i-1]['open'] < stock[i - 2]['close'] and stock[i-1]['close'] < stock[i - 2]['close']:
|
||||
# 오늘 시가가 어제 종가보다 높으며 양봉
|
||||
if stock[i-1]['close'] < stock[i]['open'] < stock[i]['close']:
|
||||
return "MORNINGSTAR_"
|
||||
return ""
|
||||
|
||||
def checkEveningstar(self, stock, i):
|
||||
# 상승 추세에서 저녁별형인지 체크
|
||||
if i > 3:
|
||||
# 상승 추세이고
|
||||
if stock[i-2]['close'] < stock[i-1]['close']:
|
||||
# 어제 양봉인지 체크
|
||||
if stock[i-1]['open'] < stock[i-1]['close']:
|
||||
# 오늘 저녁별형인지 체크
|
||||
# 어제 갭 체크
|
||||
if stock[i-2]['close'] < stock[i-1]['open'] and stock[i-2]['close'] < stock[i-1]['close']:
|
||||
# 오늘 시가가 어제 종가보다 낮으며 음봉
|
||||
if stock[i]['close'] < stock[i-1]['open'] < stock[i-1]['close']:
|
||||
return "EVENINGSTAR_"
|
||||
return ""
|
||||
|
||||
|
||||
def checkAllUpperCross(self, stock, i):
|
||||
if i > 10:
|
||||
@@ -229,21 +414,6 @@ class Common:
|
||||
return "STOCHASTIC#2_"
|
||||
return ""
|
||||
|
||||
def check_highest_270(self, stock, i):
|
||||
# 270일 기준으로 최고가를 기록하는 순간 매수를 시도한다.
|
||||
# https://docs.google.com/presentation/d/1MVuaeRNljqLCdn4dPZmvVdtl2Ab09Zwg/edit#slide=id.gc7b796e645_0_27
|
||||
upper_index = 0
|
||||
if len(stock) > 271:
|
||||
top = 0
|
||||
for idx in range(2, 271):
|
||||
# 최근 270일 중 최고가를 구한다.
|
||||
if top < stock[-idx]['close']:
|
||||
top = stock[-idx]['close']
|
||||
|
||||
if top < stock[i]['close']:
|
||||
return "highest_"
|
||||
return ""
|
||||
|
||||
def check_Dolpa_Jiji(self, stock, i, day='20'):
|
||||
upper_index = 0
|
||||
if len(stock) > 5:
|
||||
|
||||
Reference in New Issue
Block a user