3년 전에 와이프로부터 온갖 핍박을 받아가며 허락을 구해 닌텐도 스위치를 구매했었다. 코로나로 인해 집콕, 방콕의 시간이 길어지면서 나의 선견지명이 빛을 발휘하고 있다고 자찬했다.  이를 계기로 와이프로부터 타이틀 구매 설득이 쉬워졌다. 딸내미가 확찐자가 되면서 살을 빼도록 하겠다며 링핏도 구매했고, 딸내미 취향에 맞을거라 생각하고 모여봐요 동물의 숲도 DLC로 구매하였다.


근데 이게 왠걸.. 딸내미는 처음 몇번 해보더니 재미없다고 거들떠보지 않는거다. 링핏은 힘들다고 안한다. 힘들어야 운동되는건데, 재밌게 운동하라고 사준건데 거들떠 보지 않는다. 와 이런, 와이프는 그 길로 중고나라에 올리라고 버럭버럭. 링핏은 시내의 모든 토이저러스에 일일이 전화해서 입고 확인 후 회사 점심 시간을 이용해서 어렵게 구매했단 말이다. 구매 후 어찌나 뿌듯한 마음이었는지, 애비의 역할을 제대로 하고 있다는 자뻑으로 하루종일 싱글벙글 했는데. 어쨌든 두 개 다 혼자 본전을 뽑아야 한다. 그렇게 한참 혼자 만의 동물의 숲 섬 생활이 이어지다가 회사 친구가 뽀야미 카드가 있다면서 1장 빌려줬다. 그 친구도 다른 친구로부터 받은거라며 돌려쓰고 있다.


뽀야미를 입주시키려면 주민센터 ATM기에서 amiibo 카드 이용하여 초대를 하면 캠핑장으로 바로 들어온다. 뽀야미와 간단한 대화를 마치면 레시피를 주면서 item을 만들어 달라고 한다. 헉!! 이거 왠걸, 레시피대로 만들기 위해서는 추가적인 레시피가 있어야 했다. 한참을 방황 후 결국 너굴 상점에서 파는 기본 레시피 세트를 구매하면 거기에 다 있다. 나무 블럭 레시피였는데 뽀야미가 요구하는 레시피의 대부분은 나무 블럭을 통해 제작이 가능한 것이었다.


근데 이게 무슨 삼국지도 아니구 삼고초려를 해야한다. 3일동안 레시피 대로 item 만들고 4일 째 되어서야 입주한다고 얘기해주네. 내 경우 마을 주민이 꽉 찼기 때문에 기존 입주민 중 1명을 보내야 해서 평소 튀지 않던 윤이를 내보냈다. 모난 정이 돌에 맞기도 하지만 박혀있기만 한 돌도 잘 뽑히기 마련이다. 이렇게 시작된 뽀야미의 섬 입주 생활 기대가 된다.

뽀야미 잘 지내보장~~



 

용돈 벌이나 할 요량으로 소액으로 주식 투자 시작한지도 어언 4년 정도 되어가는 것 같다. 할 말은 많지만 주식 투자하는 사람들 공통으로 생각하는 소회들과 같아 상투적이 될 것 같아 삼가하고자 한다. 엊그제 읽은 뉴스 중에 웃기면서도 당황스럽던 기사 링크를 걸어본다.

https://www.sisajournal.com/news/articleView.html?idxno=201483

 

이 기사를 읽고 엘리베이터 안에서 혼자 웃어 미친 놈 취급받았다. 카카오의 증권플러스에 연재된 허영만 작가님의 만화를 구독하면서 일부 종목 나름의 해석을 깃들여서 매수해 본 적이 있었다. 다만 내 생각, 내 철학이 없는 주식 투자는 별 의미없지 않는가에 대한 깨달음으로 이내 곧 접었다. 물론 손해봤다. 그러다가 저 기사를 읽고 주식 투자 기법 무용론에 대해 고민하게 되었다. 그래도 허영만 작가님은 양심적이시다. 손해도 고지하시고, 연재도 접으시고.. 하루에도 여러 통의 주식 투자 권유 문자와 전화때문에 전화 번호를 바꿀까 하루에도 몇번씩 생각하곤 하는데 허작가님은 손절 선언하시고 연재도 중단하시고.. 주식 투자 전문가가 있기는 한건가 싶기도 하고, 주식 투자 전문가가 과연 돈이 되는 정보를 공유할 수 있는가에 대한 의구심도 들고..

 

나름 주식 투자하면서 키움 증권 영웅문을 통해 수식도 만들어보고 나름의 차트 해석 기법을 적용하여 매수 매도 타이밍도 잡아보고 수많은 방법을 동원했지만 아직도 수익을 보지 못했다. 회사 동료 중에 오전 9시 개장부터 호가창 몇번 보고 매수 매도하여 1시간 안에 곧잘 수익을 거두는 친구가 있다. 그 친구 통해서 기법을 구하고자 알랑방구도 뀌어보고, 친해지려고 노력했지만 돈되는 기법은 절대 알려주지 않는다라는 진실을 마주하게 되었다. 즉 자기 만의 확고한 기법이 없으면 100전 100패라는거.

 

주식 투자 초기에는 손해를 보면 값비싼 수업료를 치루었다 생각하자하고 훌훌 털고 새로운 마음으로 입금하고 이런 악순환으로 4년을 허비했다. 언제까지 수업료만 지불할 것인가? 한심해 보인다. 마트에서 물건 살 때는 10원이라도 싼 걸 고르려고 카트 끌고 여기 저기 돌아다니는 노력을 마다하지 않는데 주식은 왜 이렇게 충동적인지, 우유를 사더라도 유통 기한 확인하는데 주식 살 때는 왜 재무재표 한번을 보지 않는지.

 

그래서 오늘부터 본 지면을 통해 차트 분석이 과연 보조 지표로서 얼마나 도움이 되는지 리뷰해보고 무용론이 될지 유용론이 될 지 모르는 글을 써보고자 한다.

 

과연 차트란 무엇일까

보통 차트 분석을 기술적 분석이라고들 한다. 차트 분석가들은 차트를 통해 보통 5가지의 본질을 파악한다. 수급의 결과, 관성에 따른 추세, 파동과 싸이클, 회귀성, 선행성등을 본다고 한다. 결국은 random한 그래프의 방향성을 파악하는게 목적이다. 필자의 경우 저런 것을 볼 수 있는 능력을 갖고 투자에 뛰어든게 아니니 얼마나 무지한 짓이었는지. 그런데 하다보면 모의투자만으로는 투자자의 성급함을 잠재우지 못해 보통의 경우 나처럼 소액이라 하지만 계속 주식 계좌에 입금하는 우를 범하는게 아닌가 싶다. 내가 신중한 투자자였다면 아직도 난 모의투자만 했을지도 모른다. 결국 이것도 시간 낭비.

내가 이렇게 차트 분석에 실패한 것은 평균 이하의 지능을 가져서일까? 그것은 아닐 것 같다. 차트 분석에는 해석의 예외, 다양성, 후행성등이 따르기 때문일 것이다. 과연 성공적인 차트 분석이 존재할까? 그런게 존재한다면 주식 투자에 실패하는 사람은 없을테니 말이다. 결국은 확률적으로 접근해야 하는게 아닌가 싶다. 10개의 차트 해석중에 6개만 성공해도 성공적이다라고 평가해야 하는 게 아닌가 싶다.

 

봉차트를 한번 알아볼까

봉차트는 전세계 분석가들이 가장 많이 활용하고 있는 가격 분석차트이다. 시가(장시작 가격), 고가(장중 최고가격), 저가(장중 최저가격), 종가(장마감 가격)을 표시하고 막대 모형으로 그린다. 이를 통해 매수 세력과 매도 세력의 힘겨루기를 볼 수 있다.

 

이러한 그림을 적삼병이라고 하여 하락 추세에서 음봉 또는 도지 발생 후 저점과 고점을 높이는 3개의 양봉이 연속해서 출현하는 경우를 적삼병이라고 하고, 강력한 상승 전환으로 본다. 특히 적삼병 출현으로 5일 또는 10일 이평선 돌파시 신뢰도가 높다고 일반적으로 말한다. 과연 그럴까?

 

아래와 같은 적삼병 출현 후 어떻게 될까?

 

 

진짜로 아래와 같이 상승하였다.

 

과연 다 그럴까?

 

 

이 경우는 하락하였다.

 

 

 

여기서 무엇을 얻을 수 있을까? 전 저점을 깬 하락 이후 적삼병 출현시 상승한다라고 봐야 할까?

다음 글을 통해 차트를 더 찾아봐야겠다. 오늘은 이만

 

'주식' 카테고리의 다른 글

좋은 이야기는 왜 지키기가 어려울까요  (0) 2020.07.12
봉차트 종류와 설명-2  (0) 2020.07.12
봉차트 종류와 설명-1  (0) 2020.07.05
UWB 관련주  (0) 2020.06.22
주식 차트 분석 무용론-2  (0) 2020.06.21

한때 마스크 대란으로 인터넷을 통한 마스크 구매에 한창 열을 올리던 때가 있었다. 지금이야 공적 마스크의 보급으로 인해 절박하지는 않지만 그 때 당시 마스크 구매는 매우 어려웠다. 


울며 겨자 먹기로 천마스크를 여러 장 구매하거나 필터만 갈아 끼울 수 있는 제품도 구매하고.. 지금 생각해 보면 촌극이었다. 이러던 중 회사 동료가 착한 마스크라 하여 아에르(AER) 마스크 구매 SITE 및 요령을 알려주어 근 한달간 매일 아침 9시 45분만 되면 소리없는 전쟁이 벌어졌었다. 이 때 PYTHON을 활용하여 자동 구매 매크로 프로그램을 만들면 어떨까 생각하여 인터넷을 뒤져가며 조악스럽지만 동작은 가능한 프로그램을 만들어 보았다. 


결론은 한번도 성공하지 못했고, 수동으로 구매했던 회사 동료는 간간히 구매할 수 있었다. 단지 PYTHON 학습의 기회로만 활용한 시기였었다.


최근에 비말 차단용 마스크라 하여 웰킵스몰등에서 9시면 또 다시 총성없는 전쟁이 벌어지는 것 같다. 혹시라도 자동 구매 프로그램 제작 전문가가 이 글을 보시게 되면 도움 말씀 꼭 부탁드리고 싶다.



from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.keys import Keys
import pyperclip
import time
import sys
from PyQt5.QtQuickWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from PyQt5.QtCore import QThread, QObject
from PyQt5 import uic
import threading

UserUI = uic.loadUiType('autobuy.ui')[0]

class AutoBuy(QMainWindow, UserUI):
def __init__(self, *args, **kwargs):
super(AutoBuy, self).__init__(*args, **kwargs)
UserUI.__init__(self)
self.setupUi(self)
self.ID = '*******'
self.PASSWORD = '********'
self.HOMEPAGE = 'https://nid.naver.com/nidlogin.login?mode=form&url=https%3A%2F%2Fwww.naver.com'
self.ITEMURL = "https://smartstore.naver.com/aer-shop/products/4722827602"
self.lineEdit.setText(self.HOMEPAGE)
self.lineEdit_2.setText(self.ITEMURL)
self.lineEdit_3.setText(self.ID)
self.lineEdit_4.setText(self.PASSWORD)
self.pushButton.clicked.connect(self.Mythread)
self.pushButton_2.clicked.connect(self.End)
self.pushButton_3.clicked.connect(self.Login)
self.pushButton_4.clicked.connect(self.test)
self.driver = webdriver.Firefox()
self.driver.implicitly_wait(1)

#클립보드에 input을 복사한 뒤
#해당 내용을 actionChain을 이용해 로그인 폼에 붙여넣기
def copy_input(self, xpath, input):
pyperclip.copy(input)
self.driver.find_element_by_xpath(xpath).click()
ActionChains(self.driver).key_down(Keys.CONTROL).send_keys('v').key_up(Keys.CONTROL).perform()
time.sleep(1)

def Login(self):
self.HOMEPAGE = self.lineEdit.text()
self.ITEMURL = self.lineEdit_2.text()
self.ID = self.lineEdit_3.text()
self.PASSWORD = self.lineEdit_4.text()
self.driver.get(self.HOMEPAGE)
self.copy_input('//*[@id="id"]', self.ID)
time.sleep(1)
self.copy_input('//*[@id="pw"]', self.PASSWORD)
time.sleep(1)
self.driver.find_element_by_xpath('//*[@id="frmNIDLogin"]/fieldset/input').click()
self.driver.find_element_by_xpath('//a[@id="new.save"]').click()
self.driver.get(self.ITEMURL)

def Buy(self):
try:
self.driver.get(self.ITEMURL)
self.driver.find_element_by_xpath('//div[@class="selectbox-label"]').click()
self.driver.find_element_by_xpath('//div[@class="selectbox-list"]').click()
self.driver.find_element_by_xpath("/html/body/div[2]/div/ul/li[4]").text
self.driver.find_element_by_xpath('//span[@class="mask2"]').click()
self.driver.find_element_by_xpath('//a[@class="_responsive_scrap_button

_click(nmp.front.sellershop.toggleKeep(4722827602)) _stopDefault _productPreLaunch N=a:pcs.mylist"]').click()
time.sleep(1)
except:
self.driver.get(self.ITEMURL)
self.driver.find_element_by_xpath("/html/body/div[2]/div/ul/li[4]").text
self.driver.find_element_by_xpath('//span[@class="mask2"]').click()
self.driver.find_element_by_xpath('//a[@class="_responsive_scrap_button

_click(nmp.front.sellershop.toggleKeep(4722827602)) _stopDefault _productPreLaunch N=a:pcs.mylist"]').click()
time.sleep(1)

def End(self):
sys.exit()

def test(self):
pass

def Mythread(self):
for i in range(1000000):
thread = Ui_MainWindow.threadclass(self)
thread.start()

class ThreadClass(QThread):
def __init__(self, parent = None):
super(ThreadClass, self).__init__(parent)

def run(self):
try:
self.driver.get(self.ITEMURL)
self.driver.find_element_by_xpath('//div[@class="selectbox-label"]').click()
self.driver.find_element_by_xpath('//div[@class="selectbox-list"]').click()
self.driver.find_element_by_xpath("/html/body/div[2]/div/ul/li[4]").text
self.driver.find_element_by_xpath('//span[@class="mask2"]').click()
self.driver.find_element_by_xpath('//a[@class="_responsive_scrap_button

_click(nmp.front.sellershop.toggleKeep(4722827602)) _stopDefault _productPreLaunch N=a:pcs.mylist"]').click()
time.sleep(1)
except:
self.driver.get(self.ITEMURL)
self.driver.find_element_by_xpath("/html/body/div[2]/div/ul/li[4]").text
self.driver.find_element_by_xpath('//span[@class="mask2"]').click()
self.driver.find_element_by_xpath('//a[@class="_responsive_scrap_button

_click(nmp.front.sellershop.toggleKeep(4722827602)) _stopDefault _productPreLaunch N=a:pcs.mylist"]').click()
time.sleep(1)

class Ui_MainWindow(QObject):
def __init__(self, parent = None):
self.threadclass = ThreadClass(self)

if __name__ == "__main__":
app = QApplication(sys.argv)
window = AutoBuy()
window.show()
app.exec_()



초심자로서 첫 응용이었고, 도움되는 글들을 찾아보면 다들 응용프로그램 제작을 통해서 실력을 키울 수 있다고 해서 만들어봤지만 결국 지금 봐도 어느 한줄 눈에 들어오고 이해되는게 없다. 프로그래머는 어떻게 프로그램을 짜는 것인지 부쩍 궁금하기도 하고, 재미는 있는데 독학에는 한계가 느껴지고, 문하생을 뽑는다고 하면 꼭 들어가고 싶다. 프로그래머의 뇌구조는 어떠한지, 이 분야는 내가 닿을 수 없는 분야인지 많은 생각을 하게 만든 시도였다.

+ Recent posts