예스트레이더(Yes Trader)에서 옵션 양합차트 그리는 방법은 아래 글에 자세히 기술되어 있습니다.

https://money-expert.tistory.com/80

 

예스트레이더(Yes Trader)에서 옵션 양합차트 보기

옵션 매매를 하다보면 양합의 흐름을 보는 것이 중요합니다. 매도할지 매수할지를 양합의 추이를 보고 판단할 수 있는데요. 실시간 옵션 데이터를 API로 받아서 직접 차트를 만들 수도 있지만 사

money-expert.tistory.com

 

이번에는 양합 차트를 좀 더 upgrade해서 보기 쉽게 해보겠습니다.

단톡방 가치성장님이 양합의 5/20 이동평균선을 보면 양매도 시점을 잘 파악할 수 있다고 언급해주셨고, yes trader에서 사용하는 차트를 보여주셨습니다.

 

이에 yes trader를 이용하여 양합의 이평선을 함께 보여주는 방법에 대하여 정리하도록 하겠습니다.

 

양합 차트를 만들 때 사용하는 양합 수식을 아래와 같이 수정하여 주세요.

 

plot1(data1(c)+data2(c));
Plot2(ma((data1(c)+data2(c)),5), "이동평균5");
Plot3(ma((data1(c)+data2(c)),20), "이동평균20");

 

양합에 대한 5/20일 이평선을 추가하는 부분입니다. 만약 5/20이 아닌 다른 이평을 사용하신다면 적절한 숫자로 대체하시면 됩니다.

 

이렇게 수정한 수식을 기반으로 양합차트는 그렸다고 가정하겠습니다. 그러면 이렇게 화면에 보일겁니다.

뭔가 보이는 것 같은데 조금 어수선하죠. 그래서 이평 골드/데드 크로스 시점을 직관적으로 알 수 있도록 채우기 기능을 사용해보았습니다.

 

1. 양합 차트에서 오른쪽 마우스 클릭하여 지표속성을 선택한다.

2. 차트표시 tab에서 채우기를 선택한다. 

3. 이동평균5 > 이동평균20 선택하고 발강색, 선은 가장 굵은 것으로 선택한 후 추가 버튼을 누른다(색은 원하는 취향대로).  다음으로 작은 경우도 선택하고 색도 선택한 후 추가 버튼을 누른다. 확인 또 확인을 누른다.

4. 이동평균 gold/dead를 쉽게 파악할 수 있는 양합 차트가 완성된다.

5. 관리 메뉴에서 화면틀보관하기에서 적절한 이름을 입력하고 저장한다.

 

장 중 양합의 움직임을 파악하면서 양합 5/20MA값이 데드크로스 되는 시점이 양매도 진입하기 적절한 시점이라고 합니다.

 

이상 Yes Trader를 이용한 양합 차트 그리는 방법에 대하여 정리하였습니다. 양매도 하시는 분들의 지표가 될 것 같아서 기분이 아주 좋습니다. 이러한 정보를 나눠주신 가치성장님께 다시 한번 감사드립니다.

 

반응형

설정

트랙백

댓글

1편에 이어서 향후 해야할 일들 3번에 나오는 최적의 익절/손절 값을 찾아보겠습니다.

프로그램으로 백테스트를 하면 이런 식으로 파라미터를 조절하면서 확인하는 것이 용이합니다. 물론 추가 개발이 필요합니다만, 한번 개발하면 계속 사용할 수 있기 때문에 투자할 만 합니다.

 

익절 : 20,000 ~ 100,000원

손절 : -20,000 ~ -100,000원

 

손절이 익절보다 큰 경우는 제외하였습니다.

 

 

결과를 간단하게 정리해보겠씁니다.

23일은 양매도는 손실이 발생하는 날입니다. 어떤 조합도 손실을 막을 수는 없습니다. 이런 날은 빨리 손절하고 쉬는 것이 정신 건강에 좋습니다.

 

24일은 대부분 수익이 나는 날인데요. 얼마나 수익을 내느냐는 파라미터에 따라서 차이가 많이 납니다.

  • - 최저 -27,000부터 최고 363,000원까지 다양
  • 손실이 나는 구간도 익절/손절 금액을 높이면 익절이 남. 양매도는 시간과의 싸움이라 적당한 시간을 기다려주는 것이 수익률에 도움이 되는 것을 알 수 있음.
  • 일반적으로 익절/손절 범위가 넓을수록 그리고 최대 옵션 가격도 2.6 정도로 확장하였을 때 수익이 최대가 됨

 

단 하루 검정을 하였기 때문에 이 값이 최적이라고는 볼 수 없지만 느낌 상으로도 범위를 넓혀야 손절하지 않고 익절할 수 있는 기회가 생기는 것 같습니다. 그리고 갑자기 변동성이 증가할 때 적절한 손실이 자주 발생합니다. 이때 잘 견디면 프리가 다시 빠지면서 수익 전환하는 경험이 많았던 것으로 보아, 익절/손절 폭은 넓힐수록  유리한 듯 합니다.

 

참고로 수익에 나오는 값은 slipage 2 tick, 수수료까지 감안한 수치입니다.

 

앞으로 작업할 내용은 다음과 같습니다.

1. weekly option 대상 다양화

2. 정규 옵션 back test

3. 최대 수익이 나는 익절과 손절 값 찾아보기 (현재는 익절 70,000원, 손절 -70,000원) : 완료

4. 특정 양매도 조합에서 청산 후 다시 진입하는 것이 유리한지 여부

5. 시간적인 관점에서 다양한 양매도 진입 시점(현재는 등가 +- 5%) 

     장시작, 장 시작 후 30분, 40분, 1시간, 2시간 이후 등등 

6. 가격적인 관점에서 다양한 양매도 진입  시점 (현재는 장 중 등가 +- 5% 시점)

    선물이 급격하게 움직일 때, 장기간 횡보할 때 등등

7. 매도에 적절한 옵션가격 : 

     2.50 이하 혹은 0.8이상 등등

8. 손절 대신 한 호가 위 혹은 아래 옵션 매수 본전 선에서 익절 ( 가치성장님 아이디어 )

반응형

설정

트랙백

댓글

그동안 옵션 매수로 수익나는 방법에 대하여 고민을 많이 해 보았으나, 시간가치 감소를 이기고 수익을 내기가 상당히 힘들었습니다. 그래서 요 며칠 장 중 양매도를 해보니 수익이 조금씩 나는 것 같아서 그동안 가지고 있던 양매도에 대한 부정적인 이미지를 버리고 양매도 전략으로 수익을 내는 방법을 찾아보기로 하였습니다.

 

시장 중립형으로 비교적 안정적인 매도 방법을 찾는 것이 이번 연구의 목표입니다.

 

일단 생각한 방식으로는 

1. 당일 청산

2. 콜풋 동일 가격 양매도

3. 장 중 청산 후 다시 조건이 발생하면 재 진입

 

보통 옵션 매도는 차월 먼 외가 양매도 후 1달 정도 가져가면서 시간 감소 수익을 취하는 경우가 많은데, 가끔씩 터지는 큰 손실에 대한 두려움으로 당일 청산을 목표로 합니다. 과연 당일 청산을 하고도 수익이 날 수 있을지 확인해보겠습니다.

 

우선 장 중 변동성이 큰 weekly 옵션을 대상으로 back test를 진행해보았습니다.

시뮬 기간 동안 kospi200 가격표입니다.

3/28일을 제외하고는 큰 등락이 없었군요. 시뮬 결과입니다.

 

다행히 수익이 나왔습니다. 그런데 장 중 재진입시 손실이 나는 경우가 많았습니다. 좀 더 많은 경우에 대하여 수익 여부를 확인할 예정입니다.

 

수익금액도 중요하지만 수익률도 중요하겠죠. 수익률에 대하여 살펴보겠습니다.

양매도는 증거금이 많이 들기 때문에 실제 투입금액을 증거금을 기준으로 하여야 하지만, 채권이나 주식 대용도 가능하기 때문에 계산의 편의를 위하여 1 point당 250,000원 기준으로 수익률을 계산해보았습니다.

평균 하루에 서로 다른 행사가로 3set 정도 동시에 양매도가 들어가는 경우에 투입금액 약 4.4백만원이며, 위와 같이 일주일에 230,000원 정도 수익이 나온다면 연 270% 정도 수익률이 나옵니다.

 

물론 좀 더 다른 조합과 상황에서 돌려보아야겠지만 손절을 잘 한다는 가정하에서 장 중 양매도는 생각만큼 위험하지 않은 것 같습니다. 다만 장중 양매도를 하기 때문에 하루 수익금이 크지는 않습니다. 

 

앞으로 작업할 내용은 다음과 같습니다.

1. weekly option 대상 다양화

2. 정규 옵션 back test

3. 최대 수익이 나는 익절과 손절 값 찾아보기 (현재는 익절 70,000원, 손절 -70,000원)

4. 특정 양매도 조합에서 청산 후 다시 진입하는 것이 유리한지 여부

5. 시간적인 관점에서 다양한 양매도 진입 시점(현재는 등가 +- 5%) 

     장시작, 장 시작 후 30분, 40분, 1시간, 2시간 이후 등등 

6. 가격적인 관점에서 다양한 양매도 진입  시점 (현재는 장 중 등가 +- 5% 시점)

    선물이 급격하게 움직일 때, 장기간 횡보할 때 등등

7. 매도에 적절한 옵션가격 : 

     2.50 이하 혹은 0.8이상 등등

 

마지막으로 본 아이디어를 주신 파생인의 쉼터 API 대화방 분들과 특히 관심을 가져주신 구피님께 감사를 전합니다.

반응형

설정

트랙백

댓글

옵션 매매를 하다보면 양합의 흐름을 보는 것이 중요합니다. 매도할지 매수할지를 양합의 추이를 보고 판단할 수 있는데요. 실시간 옵션 데이터를 API로 받아서 직접 차트를 만들 수도 있지만 사용가능한 HTS가 있다면 굳이 만들 필요는 없겠죠.

 

여기저기 수소문한 결과 예스트레이더 HTS에서 가능하다고 합니다.  

 

설정방법에 대하여 자세하게 기술합니다.

 

우선 Yes Trader를 설치합니다. Yes Trader는 YesStock에서 만든 hts로 여러 증권사에서 사용이 가능합니다.

 

 

https://www.yesstock.com/home/home.asp

 

증권사별로 hts가 별도로 있는데, 국내/해외에 따라서 제휴 증권사가 상이하니 거래하고자하는 종목에 따라 적절한 증권사에 계좌를 만드시기 바랍니다. 증권사 계좌를 만든 후 아래 그림 중 해당 증권사를 클릭하면 HTS를 다운받을 수 있습니다.

 

YesStock site에서 제공하는 기능을 사용하기 위해서는 YesStock에도 계좌를 만드셔야 합니다. 즉 HTS를 사용하기 위해서는 연계 증권사 계좌를 만드셔야 하고, YesStock site를 이용하려면 YesStock에 가입도 하셔야합니다.

 

 

YesTrader를 사용할 준비가 끝났으니 지금부터는 옵션 양합 차트를 보는 방법을 설명합니다.

 

1. Yes Trader를 실행시킨  후 login을 합니다.

2. 시스템트레이딩 메뉴에서 전략실행차트를 선택합니다.

3. 돋보기 표시(종목선택)를 선택합니다.

4. 선/옵 tab을 선택하고 선물 메뉴에서는 "코스피200지수"를 옵션에서는 원하는 옵션을 선택합니다. 정규/미니/위클리 중 하나를 선택합니다. 그 후 원하는 콜 옵션 행사를 선택합니다. 콜 330을 선택해보겠습니다.

5. 차트에 보여줄 옵션들을 선택합니다. 참고로 아래 예는 1000개의 BAR를 표시하고 초봉으로 5초 주기로 update해 달라는 의미입니다. 

6. 확인을 누르면 이렇게 멋진 차트가 화면에 보입니다.

7. 양합을 보고 싶은 풋 옵션을 추가하는 방법입니다. 아래 그림에 있는 아이콘을 선택합니다.

8. 4번과 같은 종목 선택 창이 보입니다. 원하는 풋을 선택하면 5번과 같은 속성 창이 나옵니다. 선택 tab은 이전에 설정한 값을 사용하고, 차트표시로 이동합니다. 여기에서 콜과 구분을 하기 위하여 양봉/음봉의 색을 빨강/파랑보다 더 짙은 색을 선택하고 양봉채움과 음봉채움을 선택하지 않습니다. 이렇게 되면 풋은 테두리만 있는 봉차트로 표시됩니다.

9. 확인을 누르면 아래와 같이 콜/콜거래량/풋 차트가 동시에 보입니다.

10. 양합을 보기 전에 콜과 풋 차트를 합쳐보도록 하겠습니다. 우선 풋 차에 보이는 candle을 선택합니다. 그러면 candle이 선택된 표시가 나옵니다. 풋 캔들을 클릭한 채로 콜 차트 쪽으로 옮긴 후 클릭을 풀면 아래와 같이 표시 방법을 묻는 창이 나옵니다. 이때 "다음 항목과 공유"를 선택하고 콜차트를 선택합니다.

11. 확인을 누르면 아래와 같이 콜/풋이 동시에 그려지는 차트가 나옵니다.

12. 다음으로는 양합을 표시하는 방법입니다. 우선 양합에 해당하는 새로운 지표를 만들어야합니다. HTS 메뉴 시스템트레이딩에서 YesLanguage 편집기를 선택합니다.

13. YesLanguage 편집기에서 제일 왼쪽에 있는 새로만들기 아이콘을 누르면 새로운 지표의 이름과 설명을 입력하는 창이 나옵니다. 적절한 이름과 설명을 추가한 후 확인을 누릅니다. 여기에 입력한 이름은 왼쪽에 보이는 여러 지표 중 하나로 등록이 되기 때문에 가급적 자세하게 기술하는 것이 좋습니다.

14 콜풋양합 지표 편집기에서 아래 수식을 입력합니다.

     plot1(data1(c)+data2(c));

 

15. 저장합니다.

16 YesTrader로 돌아갑니다. 화면에 보이는 차트에서 오른쪽 마우스 버튼을 누르면 popup 메뉴가 보입니다. 이 중 적용/지표를 선택합니다.

17. 선택할 수 있는 다양한 지표가 보입니다. 이 중 조금 전에 만든 콜풋양합을 선택합니다.

18. 콜/풋/양합을 동시에 볼 수 있는 차트가 완성됩니다.

19. 만약 거래량 지표를 지우고 싶다면 거래량 차트에서 오른쪽 버튼을 누릅니다. popup 메뉴에서 개체삭제/지표/거래량을 누르면 됩니다.

20. 거래량 차트가 지워진 최종 차트 형태입니다.

 

원하는 콜/풋 pair에 대하여 동시에 차트를 출력하고, 양합도 볼 수 있으니 아주 좋습니다. 양합 차트 참고하셔서 적절한 매수/매도 진입 시점을 잘 판단하시기 바랍니다.

 

마지막으로 이렇게 저장된 차트를 저장했다가 불러올 수도 있습니다. 저장하는 방법은 메뉴 중 관리/화면틀 보관하기를 사용하면 됩니다. 이렇게 저장된 화면틀은 "화면틀 열기"로 불러올 수 있습니다.

 

이상 Yes Trader를 이용하여 콜/풋 양합 차트를 만드는 방법에 대하여 기술하였습니다. 여기저기 흩어져있는 정보를 모아서 정리하였으니 처음 사용하시는 분들에게 도움이 되었으면 합니다.

 

참고한 자료입니다.

https://m.youtube.com/watch?v=2hfzJJJ2x1o&feature=youtu.be

반응형

설정

트랙백

댓글

 

현재 upbit에서 일부 암호화폐에 대하여 grid trading 중인데요.

매매 대상을 넓히는 것이 수익률에 좋을 것 같아서 ebest api로 주식도 함께 거래하도록 개발을 하였습니다.

이전에 만든 소스가 있어서 참고를 하려고 했는데, 너무 옛날에 만들 소스라서 그동안 개선한 사항들 update가 되어 있지 않아서 upbit에서 돌리는 소스를 기반으로 ebest에서도 동작할 수 있도록 수정하였습니다.

 

upbit api와 ebest api는 사용방법이 틀리기 때문에 upbit api 기반으로 ebest api를 변경한 wrapper를 하나 만들었습니다.

 

구조적으로 보면 아래 형태를 띕니다.

 

 

 

이건 class 개념을 알아야 사용할 수 있는데요. 일단 class를 안다고 가정합니다.

 

Exchange라고 하는 base class를 선언하고 Exchange를 부모 class로 갖는 Ebest, Upbit을 선언합니다. 그리고 관련 함수를 추가합니다.

 

이렇게 한 후 EBest를 사용하는 경우에는 EBEST라는 변수를 1로 설정하고 돌리면 전략 관련 코드는 수정할 필요없이 ebest용 api가 동작합니다. 전략 코드 내부에서는 exchange라고 하는 base class에 있는 함수만 사용하기 때문에 거래소가 어디인지 구분할 필요가 없습니다.

EBEST = 1
class Exchange:
   :
   :

class EBest(Exchange):
   :
   :

class Upbit(Exchange):
   :
   :

exchange = None
if EBEST :
   ebest = EBest()
   exchange = ebest
else :
   upbit = Upbit()
   exchange = upbit

do_trading(exchange)
 

 

특정 거래소만 사용하는 경우에는 이런 개념을 적용할 필요는 없습니다. 하지만 암호화폐 거래소도 거래량도 많고 변동성도 좋기 때문에 좋은 전략이 있다면 암호화폐 거래소에도 적용하지 않을 이유가 없습니다.

 

전략 자체가 워낙 간단하기 때문에 특별하게 언급할 필요는 없습니다만, 거래 여부를 확인하는 방법에 대하여 간단하게 기술합니다.

 

ebest api의 경우에는 거래가 발생하면 callback이 날아옵니다. 따라서 거래 여부를 실시간으로 확인이 가능합니다. 하지만 제가 사용한 원 소스가 upbit 기반이다 보니 거래 callback을 사용하지 않고 주기적으로 미체결 주문을 확인하여 거래 여부를 판단합니다.

 

코드 내부적을 관리해야할 정보입니다.

- 이전 주문 기록

- 거래가 발생한 경우 다음 주문 가격 결정

- 더 이상 매수 주문이 나가지 않는 가격 설정 (하락시 최소 매수가)

- 매도 후 다음 매수 주문을 낼 때 더 이상 매수 주문이 나가지 않는 가격 설정(상승시 최대 매수가)

 

이를 바탕으로 로직의 개략적인 흐름입니다.

 

초기화과정
while(1) :
  미체결 주문을 받는다.
  if 이전 주문과 차이가 있는가? :
       매수인지 매도인지 구분하여 다음 주문을 낸다.
 

흐름은 간단하지만 중간 중간 점검해야할 사항이 조금 많습니다. 흐름도에서는 단순히 "주문을 낸다" 이지만 주문시 이런 저런 조건이 있기 때문에 모두 check하고 주문을 내야할 상황인 경우에만 주문을 내야합니다. 이런 부분이 코드의 완성도를 좌우하며 조건에 따라 난이도가 틀립니다.

 

 

주말에 관련 개발을 하면서 발생했던 문제점들을 정리합니다. 향후 이와 유사한 전략을 개발하실 때 반드시 고려하시기 바랍니다.

 

1. 어떤 이유이건 매수 혹은 매도 주문이 실패할 수 있습니다. 이런 경우에 중복으로 주문이 나갈 수 있으므로, 이에 대한 대처 필요. 즉 주문을 하기 전에 동일한 주문이 있는지 반드시 확인

2. 가격에 따라 1 tick이 틀리다. 특히 1 tick이 변하는 구간에서는 주의해야한다. 예를들어 100,000원 이하는 100원 그 이상은 500원 단위

3. 장 종료시 일부만 거래가 된 경우에 다음날 거래시 반영(이 부분은 코드 난이도가 높기 때문에 수동으로 처리)

 

오늘 장이 급락하였을 때 일부 종목 매수하여 자동매매 시작하였습니다. 오늘 매도된 종목은 없고, 내일부터는 매수/매도가 반복될 듯 합니다.

 

grid trading은 박스권 중간 위치에서 매수를 시작하는 것이 좋습니다. 혹은 바닥에서 수량을 mutiple로 매수하고 시작하여도 되고요.

 

마지막으로 희망(?) 수익률도 정리해봅니다.

 

3.25% 구간으로 grid를 만든다고 가정합니다. 0.25%는 거래세. 따라서 실제 수익은 3% 정도이며, 한번 매매될 때 마다 9,900원 수익입니다. 2-3번 매매되면 치킨 한마리군요.

매매가 많이 될 수록 수익이 쌓이는 구조입니다. 이틀에 한번씩만 거래가 되어도 연 10%

 

물론 그리드 하방을 돌파하여 손실이 난 종목도 있겠죠?

보수적으로(?) 반은 손실이라고 가정하고 평균 20% 손실이면 -1백만원.. 이틀에 한번만 거래가 되면 even은 되겠군요.

 

결국 하방이 어느정도 막혀있는 박스권 종목을 잘 찾는 다면 좋은 전략이 될 듯 합니다.

아마도 지주사들, 금융사들, 고배당주들 정도?

 

 

반응형

설정

트랙백

댓글

암호화폐 시장이 다운되고 있지만 그래도 급등하는 종목이 있죠..

이런 걸 찾아서 진입만 할 수 있다면.. ㅎ

최근 상폐 유의 발표나면서 급등한 LTC.. 상폐인데 왜 급등을 하는지..

이런 종목 초반에 들어갔다가 내리기 전에 나오면 좋겠죠?

당시 거래한 tick 정보를 기반으로 분석 들어갑니다.

평상시 거래 패턴입니다. 심심하죠.

그러다가.. 누군가는 상폐 소식을 알겠죠?

라고 생각했는데 상폐 공시가 나왔군요. 정확하게 상폐 공시 이후 부터 움직입니다. 정보보안이 잘 되고 있는 듯 합니다.

거래량이 증가합니다.

 

 

급등전에는 항상 거래가 증가합니다. 특히 매수량이 증가합니다. 그 와중에 누군가는 본전에 파는 분들이 나오죠. 454개나 팔았군요. 그래도 가격은 유지됩니다. 그만큼 대기 매수가 많다는 말입니다.

패턴을 보면 초반 상승, 눌림목(대량 매도), 다시 상승, 눌림목(대량매도), 다시 상승.

이런 형태를 반복합니다.

우선 진입을 해야하니.. 거래량(특히 매수)이 이상 징후를 보이면 일단 진입.
상승 후 눌림목이 나온 후 (대량 매도 등등) 최근 고가를 돌파하면 추격 매수.
추격매수는 1 - 2번 정도만..

다음 부터는 매도를 언제할지만 집중.

지속 매도 주문이 들어오면서 빠지는 구간이 나옵니다.

여기서 매도..!!!

환상적인 시나리오인데.. 이대로 잘 동작할지는 다음 급등주 나올 때 확인해봐야겠네요.

반응형

설정

트랙백

댓글

일전에 시뮬레이션 결과를 차트로 그리는 방법에 대한 글을 썼었는데요.

https://money-expert.tistory.com/36?category=781442

 

[시스템트레이딩] 전략 시뮬레이션(4) - 차트에 문자열 출력하기

LW 전략을 돌려본 후 mdd, 수익률 등등을 보면서 성과가 얼마나 나왔는지 확인이 가능합니다. 그런데 전략을 개선하기 위해서는 언제 수익이 났고 언제 손실이 발생하였는지를 chart 그래프로 확인

money-expert.tistory.com

 

오랜만에 전략 시물레이션 결과를 보려고 이전 글을 보니, 많이 복잡합니다. 

그래서 간단하게 다시 정리하였습니다.

추가로 candle 차트 뿐 아니라 추세선을 그리는 것도 포함하였습니다.

 

본인이 만든 전략이 잘 동작하는지 파이썬으로 개발하면 좋겠지만, 개발 실력이 부족한 경우에는 excel로 simulation을 해야합니다. excel로 전략에 사용할 지표도 계산하고, 매수/매도 시점과 수량 등을 표기할 수 있습니다. 이렇게 정리한 excel 문서를 candle 차트로 그려볼 수 있다면 전략이 잘 동작하는 한눈에 볼 수 있습니다.

 

이번 글에서는 순수하게 excel을 이용하여 전략에 사용할 지표를 만들고, 매수/매도 시점을 표기해 놓기만 하면 차트와 추세선을 그려주는 파이썬 프로그램을 공개합니다.

 

제가 만든 예는 2022년 4월 미니선물 10분 봉을 기반으로 MA7, MA24를 계산한 후 cross가 발생한 경우에 매수/매도를 반복하는 전략입니다. 수익이 나는지 보다는 어떻게 활용하는지 관점에서 보시기 바랍니다.

 

excel 파일에서 반드시 포함되어야 하는 문구 및 내용은 아래와 같습니다.

1. datetime : 일자와 시간을 숫자로만 표기합니다. 일자와 시간을 구분하기 위하여 중간에 T를 사용합니다만, 공백도 가능하고, 없어도 됩니다. 다만 일자와 숫자에는 다른 문자가 있으면 안됩니다. 순수하게 숫자T숫자 이렇게 기록하시면 됩니다. 2020년 4월 1일 9시 10분은 이렇게 표기하시면 됩니다. 20220401T091000

2. 지표 : 본인이 그래프에 그리고 싶은 지표를 계산합니다. 예제에서는 ma7, ma24를 사용합니다.

지표의 경우에는 사용하고자 하는 컬럼의 이름을 python source 코드에서 변경해 주어야 합니다. 방법은 아래에 설명합니다.

3. action : 매수 혹은 매도할 자리입니다. buy/sell로 표기합니다.

4. qty : 매수 혹은 매도할 수량

5. balance : 잔고수량

6. close : 종가. 만약 다른 값을 사용하고 싶으면 파이썬 코드를 수정하시면 됩니다. 혹은 close라는 컬럼에 원하는 값을 넣으셔도 됩니다. 예를들어 low, high 중간값을 사용한다면 기존 close는 close_org로 변경하고, close라는 컬럼을 새로 만들어서 low, high 중간값을 계산하여 넣으면 됩니다.

 

아래 excel 예제에서와 같이 노란색으로 표기한 부분은 예제에 나오는 이름을 유지하셔야 합니다. 파란색으로 표기한 부분은 전략에 따라 이름이 변경될 수 있으므로 원하는 이름으로 바꾸시고, 파이썬 source 코드에도 변경해주어야 합니다.

 

지표를 파이썬 코드에서 변경하는 방법입니다.

현재 코드상에는 아래와 같이 표기되어 있습니다.

 

excel 파일에 있는 컬럼의 title 값이 적혀있습니다. excel에 있는 값과 파이썬 코드에 있는 값을 서로 일치시키면 됩니다. 예를들어 RSI를 사용한다고 하면 excel 파일에도 RSI, 파이썬 코드에서도 data.RSI라고 기술하면 됩니다.

 

동작 결과입니다.

excel 예제는 ma7, ma24를 구한 후 ma7이 ma24를 돌파하면 매수 그 반대면 매도를 하는 간단한 전략입니다.

 

전략에 맞게 action에 buy/sell을 기록하고 수량은 1개로 통일했습니다. 이렇게 만들어진 excel 파일을 github에 함께 올려놓았습니다. 여러분이 만드시는 전략에 맞게 지표 계산하시고, 매수/매도 시점 표기하고 잔고 표기하시면 됩니다.

 

위 엑셀 예제에서 보면 diff 값이 -에서 +로 변경되는 시점에 1개 매수한다라고 표기한 예입니다.

 

전 구간에 대하여 action을 기록한 후 github에 있는 프로그램을 돌려보면 아래와 같이 정확하게 cross하는 구간에서 매수/매도를 반복하고 있습니다. 그래프 상에서 S는 매도 S 위에 있는 숫자는 (매매수량,잔고) 입니다. B는 매수입니다.

그래프를 보니 뭔가 개선할 점이 마구 보이시죠? 그런 부분을 보완해서 전략을 발전시켜나가시면 됩니다.

 

----------------------

 

실행결과 수익이 나는지 궁금하시죠. 수익여부도 함께 알려줍니다.

 

실행시 나오는 결과입니다. 잔고가 0이 되는 시점에 누적 수익을 출력해주다가 마지막에 summary를 보여줍니다. 현재 이 전략은 -8.7 pt 손실이군요.

 

+가 나오는 전략이 나온다면 이를 바탕으로 파이썬 프로그램을 직접 개발하거나 개발자에게 의뢰하여 운용을 하시면 될 것 같습니다. 수익이 날 것 같은데 실제로 돌려보면 손실인 경우가 너무 많습니다. 

 

쉽지 않은 길이지만 언젠가는 그 길을 찾을 것이라는 희망을 품고,, 오늘도 전략을 생각해봅니다.

 

마지막으로 excel 파일에 대하여 주의할 사항이 있습니다. 전략은 excel 통합문서 형태로 만드셔야 합니다. 그래야 수식을 적용할 수 있습니다. 전략에서 사용할 추세선, action 등등을 모두 완성한 후  simulation으로 돌려볼 떄는 csv 파일로 저장한 후 사용하세요. 통합문서를 csv 파일로 변경하는 불편함이 있지만 현재 프로그램 상태는 csv 파일만 읽고 있습니다. 

 

소스코드와 예제 excel 통합문서 파일, csv 파일은 아래 github에 있습니다.

https://github.com/multizone-quant/drawing_chart

 

GitHub - multizone-quant/drawing_chart

Contribute to multizone-quant/drawing_chart development by creating an account on GitHub.

github.com

 

위 프로그램을 실행하기 위해서는 아래 두 패키지가 설치되어 있어야 합니다.

pip install plotly

pip install pandas

 

 

 

반응형

설정

트랙백

댓글

시스템 트레이딩을 개발하다보면 거래소 API가 없으면 자동매매할 수가 없습니다.

 

하지만 사용자가 사용하는 패턴을 기록하였다가 자동으로 마우스/키보드 입력을 할 수 있다면 어떤 HTS에서도 자동 주문이 가능합니다. 

 

파이썬을 이용하여 자동으로 마우스/키보드 입력을 할 수 간단한 방법을 알아보겠습니다.

 

파이썬에서 이런 기능을 제공하는 패키지로는 pyautogui이 있습니다. 관련 문서는 아래 공식 사이트에서 확인이 가능합니다.

 

https://pyautogui.readthedocs.io/en/latest/

 

Welcome to PyAutoGUI’s documentation! — PyAutoGUI documentation

Welcome to PyAutoGUI’s documentation! PyAutoGUI lets your Python scripts control the mouse and keyboard to automate interactions with other applications. The API is designed to be simple. PyAutoGUI works on Windows, macOS, and Linux, and runs on Python 2

pyautogui.readthedocs.io

 

첫 번째로 pyautogui 패키지를 설치합니다.

 

pip install pyautogui

 

다음으로는 원하는 버튼과 입력창의 마우스 좌표 값을 읽어야합니다.

사용하고자 하는 HTS가 full screen이면 동작 프로그램을 볼 수 없으므로, 멀티 모니터를 사용하거나, HTS 화면 크기를 조금 줄여서 사용하기를 권합니다. 

 

아래 github주소에서 마우스 위치를 구하는 프로그램을 실행시켜서 원하는 좌표를 기록합니다.

 

https://github.com/multizone-quant/steemmonsters/blob/main/AutoGUI%20-%20GET%20-%20MOUSE%20-%20POSITION.py

이 상태에서 지정된 가격으로 자동으로 주문하는 방법을 알아보겠습니다.

 

구해야할 좌표는 아래와 같습니다.

 

1. 매수 가격 창의 좌표 : 현재가 이미 표시된 경우가 있으므로 숫자가 있는 곳의 좌표 확인

2. 수량 창의 좌표

3. 매수 버튼 좌표

4. 매수 확인 버튼 좌표

5. 매수 완료 버튼 좌표

 

다음으로는 아래 프로그램을 down받아서 방금 구한 좌표값과 매수가격/수량을 입력합니다.

 

https://github.com/multizone-quant/steemmonsters/blob/main/upbit-auto-buy.py

 

GitHub - multizone-quant/steemmonsters

Contribute to multizone-quant/steemmonsters development by creating an account on GitHub.

github.com

 

소스 파일에서 아래 변수 값을 본인의 화면에서 찾은 좌표값으로 변경합니다.

 

price   = [993, 584]  # 가격 입력 창
qty     = [1085, 640]  # 수량 입력 창
order   = [939, 906]  # 주문 버튼
confirm = [719, 634]  # 주문 확인 버튼
done    = [715, 473]  # 닫기 버튼

 

원하는 가격과 수량도 정의하세요.
order_price = 48000000
order_qty = 0.001

 

이 상태에서 실행을 하면 프로그램이 알아서 자동으로 매수 주문을 해 줍니다.

 

실제로 실행을 해보니, HTS 프로그램의 위치를 잘 기억하고 있어야 하더군요. full screen 상태에서는 큰 문제가 없지만(멀티 모니터 사용) 그렇지 않은 경우에는 HTS 크기를 조절하는 상태를 잘 기억해야 다음 실행시에도 정상적으로 동작합니다.

 

현재 상태에서 매수/매도 선택하는 부분만 추가한다면 원하는 가격과 수량에 자동으로 매수/매도할 수 있습니다.

 

 

 

 

반응형

설정

트랙백

댓글

자동매매를 제공하는 거래소가 늘어나고 있습니다.
제가 사용해본 곳은 kucoin인데요. main menu에서 trading bot을 선택하면 trading봇을 선택할 수 있습니다. 기본적인 classic grid를 선택하여 돌려보았습니다. trading할 종목 고르고, 매매에 관련된 몇몇 파라미터를 선택하면 알아서 매매를 합니다. 결과가 궁금하시죠? 대부분의 자동매매가 그렇듯이 매매 대상인 코인이 오르면 수익이 나고, 내리면 손실이 납니다. ㅠㅠ

 

개인적으로 가입하여 돌려보지는 않았지만 빗썸에도 오토트레이딩 기능이 있습니다.

업빗에는 자동매매 기능이 아직은 보이지 않는군요. 이런 것을 보면 빗썸이 확실히 공격적으로 영업을 하는 것 같습니다.

 

그래서.. 이전에 한참 자동매매 개발할 때 만들어 둔 자동매매 프로그램을 기동해보았습니다. 이 프로그램은 스팀이 200원 정도, 스달이 1000원 정도 할 때 돌렸다가 스팀 가격이 급등을 하는 바람에 중지했습니다.

자동매매는 가격이 박스권에서 움직여야 수익이 나는 구조이므로, sbd 10,000원 정도면 돌려볼만 할 것 같습니다. 1000원 하던 sbd이 10,000원이 넘었지만 왠지 더 떨어질 것 같지 않은 이 느낌이 맞아야할텐데요.

일단은 스달에 대하여 아래 조건으로 자동매매 설정을 했습니다.

투입수량 : SBD 500개 매수 시작가 : 10,400원 매수 후 매도가 : + 500원 매도 후 매수가 : -500원 매수 최저가 : 9,000원 # 9,000원 이하면 더 이상 매수 안함 매수 최고가 : 12,000원 # 12,000원 이상에서는 매수 안함. 매도만 500원 단위로 함 매수 단위 : 100개

그동안 열심히 모든 스달을 재원으로 공급하여 돌려보았습니다.

오예!! 돌리자마자 매매가 한번 되었습니다.

 

하지만 4/22일 대폭락이 오면서 SBD 가격도 폭락을 하였습니다. 원래 거래 조건이 9,000원 이하에서는 추가 매수를 중지하였기 때문에 더 이상 추매는 없었습니다. 하지만 암호화폐 시장이 이 정도 하락으로 끝날 것 같지 않아서 추가 매수하고 자동매매를 계속하기로 하였습니다.

 

하한선을 6000원을 설정하고 다시 돌리기 시작했습니다. 9000원까지 매도할 수 있도록 600개를 추가로 매수했습니다.

그랬더니.. SBD는 나름 매매가 되고 있습니다. SBD이 다시 9000원으로 쭉 가는 것 보다 왔다 갔다를 반복하면서 올라가는 것이 수익면에서는 좋습니다.

 

이렇게 돌리기를 벌써 1주일이 지났습니다. 지난 1주일 간의 성적입니다.

 

아래 그래프에서 보듯이 윗꼬리와 아래꼬리가 길수록 매매가 많이 됩니다. 다행히 변동성이 꽤 있었군요.

 

 

그럼 지난 1주일 동안 매매 결과를 보도록 하겠습니다.

3일 정도 변동성이 잘 나와서 매매가 많이 되었습니다. 반면에 4일 동안은 하루에 2-3번 정도 거래가 되었고요.
결과론적으로는 중간에 열심히 매매한 것보다 그냥 매수 후 보유한 것이 더 좋은 결과가 나옵니다. 그 이유는 5,990원에 매수한 것이 큰 역할을 한 것 같습니다. 당연한 이야기지만 저가에 산 후 가격이 50% 이상 올랐으니 장기 보유하는 경우가 수익이 날 수 밖에 없습니다.

트레이딩에는 정답이 없습니다. 결국 수익이 나는 방법이 정답이 되겠죠. 지금까지 결과를 보면 나름 만족합니다. 앞으로 변동성이 더 크지고 현재 가격대에서 박스권을 형성한다면 자동매매가 유리할 것 이고, 만약 SBD가 급등을 한다면 장기 보유가 더 유리합니다.

물론 장기 보유라 함은 끝까지 들고 가는 것을 의미합니다. 언제까지 들고 갈지는 개인의 인내심의 크기겠죠. 당분간은 같은 로직으로 자동매매를 계속 돌려보도록 하겠습니다.

반응형

설정

트랙백

댓글

스팀/스달 박스권 자동매매 돌리면서 이것 저것 살펴보다보니, 김프에 대한 자동매매 아이디어가 떠올랐습니다. 특히나 요즘같이 김프의 변동성이 높은 시점에는 박스권 자동 매매가 적절합니다. 김프는 us$를 기준으로 프리미엄이 생기는 것이므로, 크게 보면 미국 달러에 투자하는 것과 비슷합니다. 미국 달러에 직접 투자하면 변동성이 거의 없는데 비하여 김프는 뭐.. 매일 같이 요동을 치고 있습니다. 아주 좋은 트레이딩 대상이라는 말이죠.

이걸 수동으로 매매해도 되지만 아무래도 자동매매를 걸어놓아야 낮이고 밤이고 변동성이 생기면 바로 수익으로 전환이 되겠죠.

김프 자동매매하기 딱 좋은 곳이 huobi.kr입니다. huobi의 한국 사이트라고 보시면 됩니다. 이곳은 원화 입금 후 5일 동안 출금을 못하기로 유명하죠. 저야 여기에서 놀 예정이니 큰 문제는 없습니다.

usdt/krw 차트입니다. 김프를 비슷하게 따라가는 아주 변동성 좋은 차트입니다. 하방은 어느 정도 막혀있고(달러추종) 변동성은 좋고, 거래량도 꽤 되는 종목입니다. 자동매매하기 딱 좋은 종목이죠

 

아래 차트는 4시간 기준 차트인데요. 변동성이 나쁘지 않습니다.

 

일단 현금 입금을 하고, api key 등록한 후 기존 huobi 자동 매매 프로그램을 돌려보았습니다. 역시나 그냥은 안되는군요.

수정 사항들입니다.

  1. 주소 변경 : https://api-cloud.huobi.co.kr
  2. 주문단위 변경 : 기존에는 소숫점 이하 xx 자리까지 주문하는 코드였으나, usdtkrw는 소숫점자리가 0로 주문을 하더군요. 그래서 이 부분도 수정
  3. 주문하는 코드에서 무조건 float도 변경하는 부분이 있어서 usdtkrw의 경우에는 int 형태로 변경하도록 수정

이렇게 세 군데 수정하니 잘 동작합니다.

 

자동매매 프로그램을 기동한 것은 28일이었는데, 28일은 거래가 없었습니다. 오늘 오전에 상승을 하면서 1,189, 1,194에  각각 1,000불씩 매도가 되었습니다. 매도한 수량만큼 다시 매수가 들어갔고요.

 

약 3% 익절로 설정을 한 상태인데, 요즘은 김프로 6-9%를 왔다 갔다 하므로 3%는 조금 커보입니다. 2% 정도로 수정할지말지 고민 중입니다.

 

김프를 트레이딩으로 하기에는 huobi.kr이 가장 좋은 것 같습니다. huobi.kr이 처음이라면 아래 링크 이용하시면 좋을 것 같습니다.

 

-----------------

 

huobi.kr 가입링크

www.huobi.kr/maid/maidRank?invite_code=7c854

반응형

설정

트랙백

댓글