빗썸API 자동매매일지 2021.04.08 22:30

가상화폐|2021. 4. 8. 22:42
반응형

어제 폭망한 이후, 

다시 처음 시작한다는 마음으로 모니터링을 시작합니다.

어제 밤부터 잠시 컴퓨터를 진정시키고,

오늘 아침부터 다시 프로그램을 가동시작했습니다.

반응형

댓글()

코인API 자동매매일지 - 2021.04.07 20:00

카테고리 없음|2021. 4. 7. 22:18
반응형

안녕하세요? 

 

오늘은 정말 일지쓰기 싫어지는 날입니다.

어제도 실적이 너무 안좋아서 이것 저것 보다가 일지를 못쓰고 말았습니다.

오늘은 더 최악입니다.

이럴때 일수록 로직을 가다듬고, 타산지석으로 삼아서 외양간을 고쳐야겠지요.

 

오늘 실적은 엊그제 82만원까지 올라갔다가 오늘은 15만원이 빠진 57만원을 기록하고

있습니다.

 

거래내역을 보니, 

12시간 최저가 이하로 내려가면, 최저가 매수기회로 보고 매수하도록 해 놓은 로직이

가장큰 원인인것 같습니다.

이 로직은 상승장에서 잠깐 가격이 폭락할때, 다시 오를거라는 확인하에 구현된 로직인데,

급락장에서는 독이 된것 같습니다.

 

오늘 거래내역의 일부인데, 스와이프를 15:11분에 6,240단가에 매입했다가

21:01분에 5,100원에 손절했고, 넴도 마찬가지로 손절되었습니다.

당시 매수가 된 로직을 보니, M9 로직에 의해서 매수추천이 되어 매수되었음을 알 수 있습니다.

M9로직이 무엇인지 로직 소스를 확인해 보겠습니다.

 

5분봉 봉차트 기준으로 macd가 0선이하에서 macd signal 돌파할때,

macd가 상승중이면서, 양봉이고, 60이동평균선이 120이동평균선보다 더 급격히 하락중일때,
이때가 저가매수싯점이라고 판단하는 로직입니다.

 

여기서 문제가 몇가지가 있는것 같습니다.

1. 매수 판단싯점은 양봉이였던것 같은데, 현재싯점에 되돌아보니, 그 봉은 음봉이였습니다.

   확실히 양봉인 경우로 로직을 강화해야 하겠습니다.

2. 또한, macd가 macd signal선을 돌파할때라고 했는데, 음봉으로 전환되면서, 돌파싯점이 아니였던 것입니다.

   이부분도 수정해야 겠습니다.

 

다음과 같이 수정하였습니다. 확실히 해당조건이 만족되었는지 확인하고 매수들어가도록 했습니다.

 

 

15:35분 경에 매입한 넴이 추천된 과정도 확인해 보겠습니다. 

slack log에 보니, M10 로직에 의해 추천되었음을 알 수 있습니다.

 

진짜 매수싯점이 맞았는지 다시  봐 보겠습니다.

이 역시, 너무 성급하게 저점이라고 판단한것 같습니다.

M10 로직을 봐 보겠습니다.

 

최근 12시간이내에서 최저가보다 낮으면, 재 상승할 수 있는 최저가 지점이라고 본다는 로직입니다만...

계속 하락하고 있는 분위기에서는 정말 위험한 로직이라고 생각이됩니다....

상승장에서는 이 시점에서 항상 상승분위기로 전환이 되길레.. 선택한 로직인데..

하락장에서는 사용해서는 안될 독이 되는 로직같습니다.

상승장에서만 사용하도록 해야겠습니다.

여기서, prev_min에 해당되는 최근 12시간 이내 최저가라는것을 5분봉차트에서 실제 모습을 봐보면,

하기 차트에서 "최저가선"이  prev_min 을 나타냅니다.

15:35분대에서 "B"라고 보이는 부분이 buy(매수)했던 구간임을 표시하고 있고,

20:57분쯤에 "S"로 표시된 부분이 sell(매도) 처리된 부분을 표시하고 있습니다.

위의 거래내역을 시각적으로 표여주면서, 판단을 해 볼 수 있도록 차트에서 표시하고 있습니다.

 

그림으로 봐도, 당시에 급락하고 있었기 때문에,  "B"부분에서 buy할 상황은 아니었음을 알수 있습니다.

당시에는 최저가선이 그 부분이 있었을 것이라는 생각이 듭니다만,

급락장에서는 절대 buy해서는 안될 위치였음을 지금 뒤돌아 보면서 알수 있습니다.

근데, 하락장에서 계속 하락하는시점인지,

하락을 끝내고 인제 상승으로 반전할 시점인지...  어떻게 알수 있을까요?

 

아래의 6시간봉기준으로 동일 시간대를 바라보면, 하락장이였음을 알 수 있습니다.

아 근데, 이놈의 D3 로직이 이런 급락장에 매수추천을 하고 있었네요..

원죄가 D3 추천로직임을 알 수 있네요.. 이놈을 손봐야 할것 같습니다.

D3 추천로직 소스입니다.

6h봉 차트를 보시면 됩니다.

최근 계속 상승중인 상승장을 전제로 하고 있는데,

나름 하락장이면 사지 않도록 

if not(latest_open_list[-2] > latest_close_list[-2] and latest_open_list[-1] > latest_close_list[-1]):

이 부분을 추가했는데, 이게 제대로 작동되는 조건이 아니였음을 알 수 있습니다.

현재 하락장이면 매수추천이 되지 않도록 조건을 더 추가해야 겠습니다.

다음처럼 조건하나를 추가했습니다.

이 조건으로 다시 컴파일 해서 배포하겠습니다.

 

반응형

댓글()

파이썬3 웹 크롤링 HTTP error 403 발생시 해결방법

반응형

안녕하세요?

 

오늘은 그동안 잘 되던 웹크롤링에서 http error 403 이 발생하여 해결한 내용 기록하겠습니다.

 

urllib . error . HTTPError :   HTTP  Error  403 :  Forbidden

 

에러가 발생한 이유는 mod_security 또는 다른 비슷한 서버 시큐리티가 알려진 사용자 봇을 블록 시키기 때문이라고 합니다.

가이드에 따라,

브라우저 유저 에이전트를 시도해 보았습니다.

 

수정전>

from urllib.request import Request, urlopen

urlTicker = urllib.request.urlopen('https://api.bithumb.com/public/ticker/%s_KRW' % ticker) 
readTicker = urlTicker.read()
jsonTicker = json.loads(readTicker)

<수정후>

from urllib.request import Request, urlopen

urlTicker = 
Request('https://api.bithumb.com/public/ticker/%s_KRW' % ticker, headers={'User-Agent': 'Mozilla/5.0'})
readTicker = urlopen(urlTicker).read()
jsonTicker = json.loads(readTicker)

오~ 역시, 깔끔하게 해결이 되었습니다.

 

다음 블러그를 참조하여 작성하였습니다. 도움에 감사드립니다.

 

m.blog.naver.com/PostView.nhn?blogId=naturelove87&logNo=221908009605&proxyReferer=https:%2F%2Fwww.google.com%2F

 

파이썬3 웹 크롤링 HTTP error 403이 뜰 때 해결하는 방법

파이썬3에서 urllib.request를 사용할 때 HTTP Error 403이 뜰 때 해결하는 방법​다음과 같은 코드를...

blog.naver.com

https://stackoverflow.com/questions/16627227/http-error-403-in-python-3-web-scraping

 

HTTP error 403 in Python 3 Web Scraping

I was trying to scrap a website for practice, but I kept on getting the HTTP Error 403 (does it think I'm a bot)? Here is my code: #import requests import urllib.request from bs4 import Beautiful...

stackoverflow.com

 

반응형

댓글()

코인API 자동매매일지 - 2021.04.05 21:00

카테고리 없음|2021. 4. 5. 21:37
반응형

안녕하세요? 

 

4월 5일 코인 자동매매일지 올립니다.

오늘은 어제 76만원대비 약 8% 증가된 82만원입니다.

 

전체 가상화폐의 거래량과 가격이 많이 오른 영향도 큰것으로 보입니다.

오늘은, 어제 19:00부터 오늘 19:00시까지 25시간 거래내역을 빗썸으로부터 다운받아서

코인의 매수단가 대비 매도단가 차이를 보고, 현재 몇%의 마진을 남기는지 확인을 해봤습니다.

물론, 여기에는 수수료 매수, 매도 각 0.25%인 0.5% 수수료가 포함되어 있음을 감안하셔야 합니다.

 

보통 1%에서 3%까지의 차액 이윤을 남기고 있음을 알 수 있습니다만,

더마이다스터치골드의 경우에는 -7.9%에 손절한 Case도 확인이 됩니다.

매수매도 대상: 일일거래금액 300억 이상

1회 매수 한도금액: 20만원

매도시 최소마진율: 최소 1% ~ 최대 10%

                          (비트코인 가격 증가 및 감소에 따라 자동으로 변환)

오늘 거래가 가장 많이 발생한 아모코인(AMO)의 6시간봉 및 5분봉 차트입니다.

5분봉차트는 최근 12시간만 표시하고 있는데, 최근 12시간이내에는 거래가 없었네요.. 

 

두번째로 오늘 최근 거래가 있었던 비트코인을 보겠습니다.

"B"로 표시된 부분이 buy(매수)부분입니다.

 

확대를 해 볼게요. 7,477만원부근에서 Buy했다는것을 그림으로 확인 가능합니다.

빗썸에서 이 부분을 크게 다시 봐 보겠습니다.

18:20분에 5분봉기준 macd가 0선이하에서 signal선을 교차하면서 상승할때 매수가 되었음을 알수 있죠..

제가 원하던 매수 싯점입니다. 프로그램이 잘 수행되고 있음을 확인할 수 있습니다. ^^

오늘은 여기까지 하겠습니다.

반응형

댓글()

코인API 자동매매일지-2021.04.04

가상화폐|2021. 4. 4. 21:58
반응형

안녕하세요?

3일차 코인 자동매매일지 올립니다.

 

오늘을 현재 추정자산금액은 756000원입니다.

어제와 거의 같습니다.

어제밤 12시경부터 최근 급등에 대한 우려때문인지, 대부분의 가상화폐들이 

하락을 했습니다.

 

저도 오늘 아침에는 8% 이상이 빠졌다가,

오후부터 회복되기 시작하여, 현재는 어제 금액만큼 겨우 회복을 한것 같습니다.

 

자동매매프로그램 화면

 

 

빗썸자산현황 매뉴

.

반응형

댓글()

코인API 자동매매일지-2021.04.03

가상화폐|2021. 4. 3. 09:20
반응형

안녕하세요?

두번째 코인자동매매일지입니다.

요즘 코인거래량이 상당히 증가하면서, 비트코인이 연일 최고가를 경신하고 있습니다.

일부 코인은 하루 만에 가격이 두배가 되기도 하는것 같습니다.

하지만, 저의 프로그램은 이런 폭증과 무관하게 일정수익만을 내면서

천천히 금액이 증가되도록 거래가 조정되는 것 같습니다.

 

오늘은 어제 오후3시경 시점 기준보다 4.56%증가 된것 같습니다.

자동매매프로그램 화면
빗썸 자산현황 메뉴화면

 

반응형

댓글()

코인API 자동매매일지-2021.04.02

가상화폐|2021. 4. 2. 14:13
반응형

안녕하세요?
오늘부터 제가 운영중인 코인 자동매매시스템의 일일 모니터링 결과를 올리도록하겠습니다.

자동매매프로그램 운영환경
1. 사용 API: Bithumb API
2. 사용언어: 파이썬 3.7 32bit
3. 개발환경: Pycharm 최신버젼
4. UI 환경: PYQT5
5. DB: Sqlite
6. 모니터링 환경:
    1) Slack 앱 API를 통한 메세지 송신


    2) 빗썸 모바일앱

7. UI 화면

반응형

댓글()

ufunc 'add' did not contain a loop with signature matching types (dtype('<U170'), dtype('<U170')) -> dtype('<U170')

반응형

안녕하세요?

 

이 에러 메세지 원인을 못찾아서 거의 한시간을 헤멨습니다.

혹시, 이 에러 원인을 찾는 분이 계시다면 도움되시길 바랍니다.

 

다른 분들은 어떤 부분에서 에러나는지 모르겠지만,

저는 하기 sqlCode Text 문장을 만들어서 

 

try: 

    sqlCode = "select date, low from '" + ticker + "' t1 where t1.date <= (select max(t2.date) from '" + ticker + "' t2

    where t2.date < ( select date(max(t3.date), '-1 day') from '" + ticker + "' t3) and t2.low < " + current_price + ")"

 

    chart_data_low = pd.read_sql(sqlCode, con, index_col=None) # 추가로 인덱스 칼럼이 생성되지 않도록 한다.

except Exception as e:
    self.logging.logger.debug("(%s) retrieve_db_chart_data_low Exception발생: %s" % (ticker, e))
    print("chart_intervals: %s" % chart_intervals)

 

이렇게 하는 과정에서 Exception Error가 발생했습니다.

 

sqlCode 문자열을 생성할때, 문자열들만의 문자열 합하기가 되도록 중간중간의 인자값을 잘 확인하시기 바랍니다.

 

그럼, 즐(거운)파(이썬) 하시길 바랍니다.

반응형

댓글()