25분 내에 알고리즘 트레이딩 코딩하기

자료실
기타
작성자
인사이트캠퍼스
작성일
2020-07-22 13:33
조회
1480

How to Code an Algorithmic Trading Strategy in 25 Minutes

25분 내에 알고리즘 트레이딩 코딩하기

* 이 글은 Data Driven Investor에 작성된 Lucas Liew의 글을 번역하였습니다.

 

머신러닝(Machine Learning)과 데이터 스크래핑(Data Scraping)이 대두되면서 금융업에서 생계를 유지하고자 하는 이들에게 기술력은 필수가 됐다.

당신이 본업 밖에서 지속적인 수입원을 찾고 있다면 알고리즘 트레이딩(Algorithmic Trading)은 완벽한 당신에게 기술이다.

우리는 알고리즘 트레이딩을 이용하여 Amazon 주식 CFD를 거래할 것이다.

전략은 흔히 "Buy the f***ing dip" 또는 "BTFD"로 알려진 가격이 하락할 때 매수하는 것이다. 단기적으로 Amazon 주가가 하락할 때 장기 트레이드에 들어간다는 뜻이다.

알고리즘 거래 전략을 코딩하기 위한 단계는 다음과 같다.

1. 거래할 상품 선택하기

2. 소프트웨어를 선택하고 설치하기

3. 브로커와 계정 설정하기

4. 우리의 전력 이해하기

5. MT4를 이해하고 설정하기

6. MT4 트레이딩 알고리즘의 일부 이해하기

7. 거래 규칙 코딩하기

8. 알고리즘을 사용하여 역사 테스트 실행하기

9. 가짜 돈으로 라이브로 실행하기

10. 커피 한 잔을 만들고 당신의 일에 감사하기

[irp posts=”11995″ name=”6 Technical Skills In Demand for Future of Business & Finance”]

 

1. 거래할 상품 선택하기

0분

우리는 Amazon 주식 CFD를 거래하고 있다. CFD 실제 주식의 움직임을 모방한 파생상품이다. 여기서 더 많은 정보를 찾을 수 있다.

 

2. 소프트웨어를 선택하고 설치하기

4분 (경과 시간 : 4분)

우리는 ThinkMarkets을 우리의 브로커로 사용할 것이다. 소프트웨어는 MT4(MetaTrader 4)를 선택할 것이다.

MT4의 강점은 초보자 친화적이다. 그러나, 통계적 분석을 많이 하거나 복잡한 기계 학습 전략을 가지고 실행할 수는 없다.

여기에서 ThinkMarkets MT4 소프트웨어를 다운로드한다.

https://course.algotrading101.com/p/dl-code-installer/

 

3. 브로커와 계정 설정하기

2분 (경과 시간 : 6분)

설치 후 MT4가 자동으로 실행되어야 한다. 그렇지 않으면 설치된 폴더로 이동하여 수동으로 열어야 한다.

웹 사이트를 통해 Thinkmarkets에 계정 설정: 데모 계정을 설정한다.

개인 정보를 입력하고 표준 계정을 선택한다.

Start now를 클릭하면 즉시 계정 로그인 세부 정보가 제공된다.

여기에 계정 세부 정보가 있다. 이메일에서도 정보를 받을 수 있다.

MT4로 이동하여 "Login to Trade Account"을 클릭하고 계정 세부 정보를 입력한다.

 

4. 우리의 전략 이해하기

3분 (경과시간 : 9분)

우리는 Amazon이 하락할 때 사고 싶다. 그러나 알고리즘 트레이딩에서는 컴퓨터가 이해할 수 있도록 "dip"이라는 단어를 정량화해야 한다.

우리의 경우 Amazon의 호가가 최근 10일 내의 최저가보다 낮을 때 거래에 들어갈 것이다.

왜 10일까? 그것은 자의적이다. 우리는 보통 이 숫자를 결정하기 위해 역검사와 최적화를 실행한다. 하지만 오늘은 단순하게 하고 임의의 숫자를 선택하겠다.

매 거래마다 우리는 가능한 한 많은 주식을 사기 위해 우리 계좌에 있는 모든 돈을 쓸 것이다. 이건 공격적이어서 추천하지는 않지만, 가짜 돈으로 테스트하고 있으니 재밌게 놀아보자.

그 당시에는 오직 하나의 거래만이 열릴 것이다.

가격이 30% 상승하거나 10% 하락시 거래를 종료한다. 예를 들어, 만약 우리가 1600달러에 들어간다면, 우리는 2080달러나 1440달러로 거래를 마칠 것이다.

다시 말하지만, 이것들은 모두 임의의 숫자들이다.

 

5. MT4를 이해하고 설정하기

4분 (경과시간 : 13분)

우리는 MT4의 모든 부분을 다 훑어보지는 않을 것이다. 여기서 MT4의 안팎을 배울 수 있다.

우리는 지금 세 가지를 하고 싶다.

1. 차트 크기 늘리기

2. Amazon의 가격 데이터 수집하기

3. 로봇 템플릿을 MT4에 다운로드하기

 

5-1. 차트 크기 늘리기

초기 차트는 65,000개의 데이터 포인트를 저장할 수 있다. 그것을 늘리자.

Tools/Option에서 “Max bars in history”, “Max bars in chart” 를 999999999999로 변경한다.

 

5-2. Amazon 가격 데이터를 수집하기

그러기 위해서는 Amazon 주식 CFD 차트를 열고 이전 시기로 스크롤해야 한다. 이로 인해 MT4는 과거의 데이터를 더 많이 수집해야 할 것이다.

마켓 워치 탭의 아무 곳이나 마우스 오른쪽 버튼으로 클릭하고 "Show All"를 클릭하여 거래할 수 있는 모든 제품을 표시할 수 있다.

아래로 스크롤하여 Amazon을 찾는다. 차트를 열려면 마우스 오른쪽 버튼을 클릭하고 "Chart Window"을 클릭하면 된다.

D1 버튼을 클릭하면 일별 차트가 선택된다.

차트의 각 데이터 점은 일일 차트 형식이 선택된 날을 나타낸다.

“Scroll the chart to the end on tick coming“ 선택을 취소한다. 이렇게 하면 차트가 가장 최신 데이터로 자동 스크롤되는 것을 방지할 수 있다.

가능한 많은 Amazon 가격 데이터를 수집하려면 Amazon 차트를 클릭하고 이전 날짜로 스크롤하면 된다.

 

5-3. MT4에 로봇 템플릿을 다운로드하기

우리의 로봇은 BTFD_StockBot이라고 불린다.

아직 다운로드하지 않은 경우 불완전한 버전과 완료된 버전을 모두 다운로드한다.  https://course.algotrading101.com/p/dl-code-installer/

미완성 버전에는 연습을 위해 채워야 할 몇 가지 빈칸이 있다. 완전한 버전은 완전한 작동 알고리즘이다.

책 기호를 눌러 MetaEditor를 연다. MetaEditor는 알고리즘을 코딩할 곳이다.

MetaEditor에서 네비게이터는 이미 열려있어야 한다. 그렇지 않은 경우 여기를 열어라.

네비게이터에는 사용자가 액세스할 수 있는 MQL4 코드 목록이 포함되어 있다.

Experts 폴더를 마우스 오른쪽 버튼으로 누르고 "Open Folder"를 누른 후, 다운로드한 mq4 파일 두 개를 모두 이 폴더에 넣는다.

Refresh하면 목록을 볼 수 있을 것이다.

 

6. MT4 트레이딩 알고리즘의 일부 이해하기

6분 (경과시간 : 19분)

당신이 코드화할 프로그래밍 언어는 MQL4라고 한다. MT4 거래 알고리즘은 EA(Expert Advisor)라고 불린다.

우리 알고리즘에 있는 모든 코드의 라인을 당신에게 가르쳐줄 시간이 없다.

그러나 우리는 대부분의 기본적인 부분을 다룰 것이다. 이것은 당신이 템플릿을 수정하기에 충분할 것이다.

컴퓨터는 위에서 아래로 코드를 읽고 실행한다.

모든 black word는 변수다. 변수를 값을 저장하는 개체로 생각해라. (대수학과 유사하다!)

- "+"는 덧셈을, "-"는 뺄셈을, "*"는 곱셈을, "/"는 나누기를 의미한다.

- ">"는 보다 큰, "<"는 보다 작은 것을 의미한다.

- "="는 컴퓨터에 어떤 것이 다른 것과 동등하다고 말한다.

- "=="는 컴퓨터에 어떤 것이 다른 것과 동일한지 확인하라고 말한다.

- "//" 기호의 오른쪽에 쓰여진 것은 컴퓨터가 읽지 않는다. "/*"와 "*/" 사이에 쓰여진 것도 같다. 주석이다.

- 코드는 일반적으로 논리문(If문)을 기반으로 한다. 우리는 만약 다른 일이 생긴다면 컴퓨터에게 무언가를 하라고 말하고 있다. 이 코드는 다음과 같이 코딩된다. If( /* This happens */ ) { /* Do this */ };”

거래 알고리즘은 2개의 주요 부분으로 구성된다.

1. 셋업

2. 본문(거래에 들어가거나 나가는 코드를 작성하는 곳)

MetaEditor에서 파일 BTFD_StockBot_Incomplete.mq4를 연다.

 

6-1. 셋업

셋업 영역은 1줄부터 25줄까지입니다.

관심 있는 줄은 10, 11번 줄이다. 여기가 우리가 손익분기점을 정하는 곳이다.

 

6-2. 본문

본문에는 주로 OnTick() 영역이 있다. OnTick() 영역은 27~70번 줄이다.

이 부분은 가격 변동이 발생할 때마다 실행될 것이다.

거래는 51~65번 줄까지의 코드를 이용하여 사라진다. OrderSend() 함수를 사용하여 거래를 중지한다.

우리의 경우, OrderSend()는 그만둘 거래에 관한 11가지 정보를 취합하고, 거래를 중단시킨다.

48줄은 우리가 기존 거래를 하고 있는지 확인한다. 그렇지 않으면 49줄로 넘어간다.

종료 규칙은 OrderSend() 함수의 6번째 및 7번째 매개 변수로 코딩되어 있다.

코드를 내 것처럼 굵고 크게 표시하려면 “Tools/Options…/Font”로 이동하여 글꼴을 편집하면 된다.

 

7. 거래 규칙 코딩하기

4분 (경과시간 : 23분)

Amazon의 호가가 최근 10일 동안의 최저가보다 낮을 때 우리는 거래에 들어간다.

이것은 코드 형태로 표현되어야 한다.

이 코드를 구성하는 방법에 대해 잠시 생각해 보자.

좋다. 이것이 우리가 거래 규칙을 말에서 코드로 바꿀 수 있는 방법이다.

이것은 꽤 적다. iLow()와 iLowest()를 어떻게 코드화할 줄 알았겠는가?

답은, 우리는 그러지 않을 것이다.

새로운 (비프로그래밍) 언어를 배울 때, 당신은 "yes"와 "no"의 단어가 무엇인지 모를 것이다. 당신은 그것을 책, 웹사이트 또는 친구로부터 배울 필요가 있다.

마찬가지로, 우리는 프로그래밍 언어에 대해서도 똑같이 한다. 구글 덕분에 프로그래밍에 대한 도움을 찾는 것이 쉬워졌다.

"MQL4 lowest price"를 검색하면 해답이이 상위 3개 결과에 나타날 것이다.

지금 당장은 코드 전체를 이해하지 못해도 걱정하지 않아도 된다. 우리는 단지 이 시점에서 당신의 직관을 강화하고 있을 뿐이다.

49행의 if문에 코드 마지막 줄을 삽입한다.

지금 BTFD_StockBot_Complete.mq4를 확인하여 올바른 코드를 코딩한 코드와 비교해 보자.

완료되면 컴파일 버튼을 클릭한다.

 

8. 알고리즘을 사용하여 역사 테스트를 실행하기

1분 (경과 시간: 24분)

이제 재미로 우리는 우리의 거래 전략을 통해 지난 7년 동안 어떻게 거래되었을지 볼 것이다.

MT4 플랫폼(MetaEditor가 아님)에서 Strategy Tester 연다.

아래 그림과 같이 정보를 입력한다. 날짜의 경우 데이터가 있는 시작 날짜를 선택한다. 이를 확인하려면 이전 단계에서 말한 대로 Amazon 차트를 가장 초기 지점으로 스크롤한다.

이 가장 빠른 지점은 시작 날짜를 가장 빠른 날짜로 설정할 수 있다.

준비가 되었으면 "시작"을 클릭한다!

이제 막 거래 알고리즘의 첫 번째 테스트를 끝냈다! 축하한다!

성능을 보려면 보고서 탭을 클릭한다.

우리는 지난 7년동안 5만 달러로 4만 달러를 벌었다.

만약 당신이 Amazon을 사들여 버텨냈다면, 당신은 약 40만 달러를 벌었을 것이라는 점을 고려하면, 그건 정말 짜증나는 일이다.

나는 이 테스트를 근거로 알고리즘 트레이딩이 효과가 없다고 말하지 않을 것이다. 대부분의 알고리즘은 이것보다 더 복잡하고 지능적이다.

그러나, 이 백테스팅은 목적 없이 dip을 사는 것이 홀딩에 지는 것을 보여준다. 여기선 놀랄 일도 아닌데, 특히 우리가 거래하는 주식은 Amazon과 같은 rocket ship이기 때문이다.

 

9. 라이브로 실행하기

0.5분 (경과시간 : 24.5분)

이전 단계는 역사 테스트였다. 이제 우리는 데모 머니를 이용해서 오늘 시장에서 라이브를 할 것이다.

데모 계정에는 10만 달러의 가상 자금이 있어야 하며, 이건 진짜 돈이 아니니까 잃어버릴 걱정은 하지 말자.

Terminal 탭을 열어 가상 머니가 얼마나 있는지 확인할 수 있다.

실시간 전략을 실행하기 위해 "Enable Automated Trading" 버튼을 클릭한다.

Amazon의 가격표를 열자.

MT4에서 네비게이터를 아직 열지 않은 경우 이것을 열자.

Amazon의 가격표가 열려 있으면 알고리즘을 마우스 오른쪽 버튼으로 클릭하고 "Attach to a chart"를 클릭한다.

이것은 라이브다!

MT4를 종료하는 순간 알고리즘이 오프라인 상태가 된다. 따라서 24/5 전략을 실행하기 위해서는 클라우드에서 알고리즘을 설정하면 된다.

알고리즘을 제거하려면 차트를 마우스 오른쪽 버튼으로 클릭한다. Expert Advisors/Remove로 이동한다.

이 전략은 단지 교육적인 목적을 위한 것이며, 이 전략을 실제 돈으로 실행하지 않는 것을 추천한다.

게다가, 이 알고리즘은 코드를 이해하기 쉽도록 간소화한 것이다. 리스크 관리나 알림 시스템을 일체 포함하지 않는다.

 

10. 커피 한 잔 만들고 당신의 일에 감사하기

0.5분 (경과시간 : 25분)

나는 당신이 지금 자신에 대해 꽤 좋게 느끼고 있기를 바란다.

거래할 계획이 없더라도 이를 활용해 아이디어를 테스트하고 개선할 수 있다. 그런 다음 거래는 수동으로 입력할 수 있다.

이 가이드 잘 보셨길 바란다!

Disclaimer : 알고리즘 트레이딩(또는 수동 트레이딩)에서 성공하는 것은 어렵다. 그것은 get-rich-quick이 아니며 열심히 해야 한다.

10배 더 멋진 전략을 코딩하고 싶다면, 30,000명 이상의 학생과 함께 내 온라인 강좌를 확인해 보십시오! – https://course.algotrading101.com/p/courses?fpr=ddinvest&fp_sid=ddims

 

 

번역 - 핀인사이트 인턴연구원 김영현

원문 보러가기 >

https://www.datadriveninvestor.com/2019/09/17/how-to-code-an-algorithmic-trading-strategy-in-25-minutes/#

 

전체 0

전체 642
번호 제목 작성자 작성일 추천 조회
공지사항
비밀글 파이썬으로 배우는 블록체인 구조와 이론 (위키북스)
finweb | 2019.07.05 | 추천 0 | 조회 23
finweb 2019.07.05 0 23
580
이상거래(Fraud) 탐지, 위험성 평가 등을 지원하는 핀테크 AI
인사이트캠퍼스 | 2020.09.07 | 추천 0 | 조회 509
인사이트캠퍼스 2020.09.07 0 509
579
인공지능은 당신의 돈을 더 스마트하게 해준다
인사이트캠퍼스 | 2020.09.07 | 추천 0 | 조회 351
인사이트캠퍼스 2020.09.07 0 351
578
게임 산업에서의 AI의 미래에 대한 예측 5가지
인사이트캠퍼스 | 2020.08.27 | 추천 0 | 조회 1422
인사이트캠퍼스 2020.08.27 0 1422
577
"강의에서 배운 attention network를 감성 분석이나 주제 분석에 활용해 보고 싶어요" (현준욱님 인터뷰)
인사이트캠퍼스 | 2020.08.14 | 추천 0 | 조회 630
인사이트캠퍼스 2020.08.14 0 630
576
15개의 데이터셋을 사용한 머신러닝 및 데이터 사이언스 프로젝트 아이디어
인사이트캠퍼스 | 2020.08.13 | 추천 0 | 조회 12881
인사이트캠퍼스 2020.08.13 0 12881
575
핀테크 혁신을 위한 5가지 AI 기반 기술
인사이트캠퍼스 | 2020.08.06 | 추천 0 | 조회 983
인사이트캠퍼스 2020.08.06 0 983
574
파이썬으로 단계별 첫 머신러닝 프로젝트 시작하기
인사이트캠퍼스 | 2020.07.28 | 추천 0 | 조회 2190
인사이트캠퍼스 2020.07.28 0 2190
573
25분 내에 알고리즘 트레이딩 코딩하기
인사이트캠퍼스 | 2020.07.22 | 추천 0 | 조회 1480
인사이트캠퍼스 2020.07.22 0 1480
572
시장의 미시구조와 마이크로 트레이딩 - 2
인사이트캠퍼스 | 2020.06.18 | 추천 0 | 조회 1111
인사이트캠퍼스 2020.06.18 0 1111
571
시장의 미시구조와 마이크로 트레이딩 - 1
인사이트캠퍼스 | 2020.06.15 | 추천 0 | 조회 1174
인사이트캠퍼스 2020.06.15 0 1174
570
딥러닝을 활용한 금융 시계열 분석 - 2
인사이트캠퍼스 | 2020.05.25 | 추천 0 | 조회 2710
인사이트캠퍼스 2020.05.25 0 2710
569
퀀텀 컴퓨팅의 실용화 방안
인사이트캠퍼스 | 2020.05.18 | 추천 0 | 조회 839
인사이트캠퍼스 2020.05.18 0 839
568
딥러닝을 활용한 금융 시계열 분석 - 1
인사이트캠퍼스 | 2020.05.18 | 추천 0 | 조회 2120
인사이트캠퍼스 2020.05.18 0 2120
567
동적 자산 배분과 유니버셜 포트폴리오
인사이트캠퍼스 | 2020.05.14 | 추천 0 | 조회 1269
인사이트캠퍼스 2020.05.14 0 1269
566
2020년 최고의 인공지능 및 머신러닝 소프트웨어 및 프레임워크 Top 20
인사이트캠퍼스 | 2020.05.13 | 추천 0 | 조회 5608
인사이트캠퍼스 2020.05.13 0 5608
565
자주 묻는 머신러닝 인터뷰 질문 및 답변 50선
인사이트캠퍼스 | 2020.05.11 | 추천 0 | 조회 11798
인사이트캠퍼스 2020.05.11 0 11798
564
좋은 vs 나쁜 액티브 펀드 관리 : 3 가지 지표
인사이트캠퍼스 | 2020.05.06 | 추천 0 | 조회 632
인사이트캠퍼스 2020.05.06 0 632
563
그녀는 돈의 보스: 여성 온라인 투자의 4대 트렌드
인사이트캠퍼스 | 2020.05.06 | 추천 0 | 조회 667
인사이트캠퍼스 2020.05.06 0 667
562
변동성 측정의 이해
인사이트캠퍼스 | 2020.05.06 | 추천 0 | 조회 1085
인사이트캠퍼스 2020.05.06 0 1085
561
새로운 재료를 찾는 데 있어 최적화를 촉진하는 신경망
인사이트캠퍼스 | 2020.04.29 | 추천 0 | 조회 712
인사이트캠퍼스 2020.04.29 0 712