English Русский 中文 Español Deutsch 日本語 Português Français Italiano Türkçe
회귀 분석으로 거시경제 데이터가 통화 가격 변동에 미치는 영향 알아보기

회귀 분석으로 거시경제 데이터가 통화 가격 변동에 미치는 영향 알아보기

MetaTrader 5통계 및 분석 | 12 10월 2021, 14:59
299 0
Salavat Bulyakarov
Salavat Bulyakarov

개요

많이들 기본적 분석을 이해하기 어려워 합니다. 어떻게 실행해야 하는지, 어떤 매개 변수를 고려하고 어떤 매개 변수는 제외해야 하는지 알기 힘들죠. 적용된 변수의 영향을 가늠하거나 어느 정도의 기간에 해당 변수를 적용하는지 알아내기도 쉽지 않습니다.

2011년 저는 다중 회귀 분석: 전략 발생기 겸 테스터라는 글을 읽었는데요. 흥미로운 메소드가 제시되어 있더라고요. 기본적 분석에 해당 메소드를 적용하는 방법을 연구하여 그 결과를 아래에 정리했습니다.


'다중 회귀 분석'이란 무엇인가?

다중 회귀 분석은 하나의 변수의 두 개 이상의 독립 변수에 대한 종속성을 평가하는 방법입니다.

수학을 잘 모르시는 분들은 아마 무슨 말인가 싶으실 텐데요. 다중 회귀 분석의 의미와 적용 방법을 한번 설명해 보겠습니다.

보조제 섭취 시 일반 신체 활동의 효율성을 평가하고자 하는 연구자가 있다고 가정할게요. 이 연구자는 24명의 대학생을 대상으로 실험을 진행합니다. 학생들은 6명씩 네 그룹으로 분류되죠. 첫 번째 그룹은 매일 100mg의 보조제를 섭취하고, 두 번째 그룹은 200mg, 세 번째 그룹은 300mg, 그리고 네 번째 그룹은 400mg을 섭취합니다. 해당 실험은 네 가지 보조제 섭취 용량과 세 가지 신체 활동을 포함합니다. 각 그룹 내 여섯 명은 세 짝으로 다시 나뉩니다. 첫 번째 팀은 일주일에 0시간을 운동하고, 두 번째 팀은 5시간, 그리고 세 번째 팀은 10시간을 운동합니다. 실험 결과 모든 참여자의 체중이 줄었습니다. 다음의 표에 해당 결과가 입력되었죠.

실험 참가자 보조제 섭취량(mg/일) 신체 활동 정도(시간/주) 체중 감량(lb)
1 100 0 -4
2 100 0 0
3 100 5 -7
4 100 5 -6
5 100 10 -2
6 100 10 -14
7 200 0 -5
8 200 0 -2
9 200 5 -5
10 200 5 -8
11 200 10 -9
12 200 10 -9
13 300 0 1
14 300 0 0
15 300 5 -3
16 300 5 -3
17 300 10 -8
18 300 10 -12
19 400 0 -5
20 400 0 -4
21 400 5 -4
22 400 5 -6
23 400 10 -9
24 400 10 -7

전체 참가자의 감량 결과

두 가지 질문이 생기네요.

  1. 무엇 때문에 체중이 감량된 걸까요? 보조제일까요? 아니면 신체 활동?
  2. 체중 변화와 영향 요인 사이에는 어떤 관계가 있을까요?

금융 시장에서 나타나는 상황과 굉장히 비슷하지 않나요? 통화쌍 가격이 변하는 경우, 어떤 뉴스가 영향을 미쳤는지 궁금해 하는 것과 같죠. 가격에 영향을 미치는 경제적 요인이 있다면, 요인이 변할 때 가격은 어떻게 될까요?

다중 회귀 분석과 STATISTICA 소프트웨어를 이용하면 이 질문들에 대한 답을 구할 수 있습니다. 스타티스티카로 위의 표를 전송하거나 불러오기한 후 메뉴의 '다중 회귀 분석'을 클릭합니다.

스타티스티카로 예제 데이터 내보내기

그림 1. 스타티스티카로 예제 데이터 내보내기

'다중 회귀 분석' 클릭 후 '변수' 버튼을 클릭하세요.

다중 회귀분석 매개 변수 창

그림 2. 다중 회귀분석 매개 변수 창

분석에 사용될 변수를 선택하는 창이 나타납니다. 해당 창의 왼쪽에는 독립 변수로 보이는 변수가 나타나고(위의 경우 체중 감소에 해당), 오른쪽에서는 영향 요인을 선택할 수 있습니다.

종속 및 독립 변수 설정

그림 3. 종속 및 독립 변수 설정

'OK'를 누르면 이전 대화 상자가 나타나며 체크 박스 클릭 후 'OK'를 누릅니다.

다중 회귀분석 매개 변수 선택

그림 4. 다중 회귀분석 매개 변수 선택

다음 창에서 '전체 효과' 메소드를 선택합니다.

메소드 선택

그림 5. 메소드 선택

메소드를 선택하고 나면 분석 결과 창이 나타납니다. 통계적으로 그 영향이 검증된 요인은 붉은색으로 표시됩니다(위의 경우 신체 활동 정도). 기타 변수

  • 'No. of cases'는 분석에 사용되는 사건의 개수입니다.
  • 'p'는 해당 상관 관계의 통계적 타당도를 나타내며 0.05 미만인 경우 신뢰할 수 있다고 봅니다.
  • 'Multiple R'은 해당 방정식의 독립 및 종속 변수 간의 다중 상관 계수를 나타냅니다.

데이터 프로세싱 유닛

그림 6. 데이터 프로세싱 유닛

'Multiple R=0,71819113'인 경우, '체중 감소와 영향 요인 사이의 다중 상관 계수가 71.82%'임을 의미합니다.

두 요인 중 '신체 활동 정도'가 붉게 나타나 있죠. 보조제 섭취 효과가 미미한 경우 체중 감량에 영향을 끼친 요인입니다.

해당 요인들이 체중 감소에 정확히 어떤 영향을 끼쳤는지 한번 회귀 분석식을 이용해 알아보겠습니다. '회귀 분석 결과 요약' 버튼을 클릭해 새로운 표를 불러옵니다. 'b' 열의 값을 이용해 회귀 분석식을 생성합니다.

회귀 분석식 변수

그림 7. 회귀 분석식 변수

다음의 분석식이 나옵니다.

체중 감량=0,00117*[보조제 섭취 용량]-0,63750*[신체 활동 정도]-2,5625

위의 식에 각각의 변수를 입력해(Ctrl+C в STATISTICA -> Ctrl+V в Excel), 보조제 섭취량 또는 신체 활동 정도 변화 시 체중 변화를 계산할 수 있습니다. 다음의 예를 살펴보죠.

  • 체중 변화1=0.00117*100-0.6375*0-2.5625=-2,4455 하루에 100mg의 보조제를 섭취하는 경우 아무런 운동 없이도 2.4lb를 감량할 수 있음을 의미합니다.
  • 체중 변화2=0.00117*100-0.6375*10-2.5625=-8,8205 하루에 100mg의 보조제를 섭취하면서 일주일에 10시간 운동을 하면 8.82lb까지 감량할 수 있음을 의미하죠.

위의 예시가 다중 회귀 분석 이해에 도움이 되었으면 좋겠네요. 실제 여러분의 식단과 운동량을 확인해 볼 수도 있습니다.

이제 위의 실험 내용을 통화쌍에 적용해 볼 겁니다. 종속 변수가 EURUSD 가격 변화이고 독립 변수는 Forex Factory의 이벤트 캘린더에서 전송된 거시경제 통계라고 가정하겠습니다.

위의 예시처럼 다중 회귀 분석을 이용해 통화쌍 가격에 미치는 거시경제적 요인을 설정할 수 있습니다. 거시경제 통계 발표 후의 통화쌍 가치를 예측하면 방정식을 만들 수도 있죠.


데이터 준비 및 STATISTICA 소프트웨어에서 데이터 불러오기

Forex Factory 웹사이트를 사용하다 보니 다음의 문제가 발생하더군요. 꼭 생각해 볼 필요가 있습니다. 바로 동일한 데이터가 다양한 포맷으로 발표된다는 것이죠. 예를 들어, 숫자가 텍스트 형식을 띄거나 추가 텍스트 데이터를 가지고 있어 일반적인 방식으로는 데이터 수집이 어려울 수 있습니다. 웹사이트 분석을 통한 데이터 수집도 불가능할 수 있죠.

지난 몇 년간의 미국 관련 자료를 직접 찾아 총 99개의 요인을 수집했습니다.

USA 거시경제 지표

그림 8. USA 거시경제 지표

모든 데이터 형식을 통일한 후, 'million'이나 'billion' 같은 숫자 이외의 텍스트 데이터는 모두 삭제했습니다. 그리고 7개의 열을 갖는 표에 전체 데이터를 입력한 후 타임프레임 D1에 대한 EURUSD 시세를 추가했습니다(첨부 파일의 'calendar_usd.zip' 파일 참조).

열 머리글

  • 날짜
  • 월년
  • 시간
  • 시간대
  • 통화
  • 설명
  • 이전

그 결과 6700개가 넘는 거시경제 데이터와 EURUSD 시세가 생성되었습니다. 간단한 수동 분석에는 적용할 수 없는 자료죠. 데이터를 유형과 날짜에 따라 분리하기 위해서는 추가 핸들러가 필요합니다. ListConvertToTable 스크립트를 이용해 데이터를 표로 만들었습니다.

스크립트 설정 대화 상자에서 인풋 파일 이름과 결과 문서 이름을 지정해야 합니다. 인풋 파일은 terminal_data_directory/MQL5/Files 디렉토리에 저장되어야 하며 아웃풋 파일 또한 동일한 위치에 생성됩니다.

데이터 수가 많기 때문에 목록을 표로 변환하는 데에 시간이 꽤 걸립니다. 스크립트에 탑재된 알림 기능이 변환 단계를 알려줍니다. 변환이 완료되어 파일이 준비되면 숫자 '8'이 나타납니다. 다중 회귀 분석의 대상이 되는 표는 본문 하단의 첨부 자료에서 찾아볼 수 있습니다.

저는 다음과 같은 결과를 얻었습니다(첨부 파일 'calendar_usd_out_.zip' 참조).

MQL5 ListConvertToTable 스크립트 실행 결과

그림 9. MQL5 ListConvertToTable 스크립트 실행 결과

다시 한번 STATISTICA를 이용해 데이터를 프로세싱하겠습니다. 아래 순서를 따라 스타티스티카에서 CSV 파일을 불러옵니다.

  • '파일' 메뉴에서 '오픈'을 클릭한 후 '데이터 파일'을 선택하고 원하는 CSV 파일을 불러옵니다.
  • 'Text File Import Type' 창에서 'Delimited'를 선택하고 'OK'를 누릅니다.
  • 새로운 창이 열리면 밑줄이 그어진 항목을 선택합니다.
  • 'Decimal separator character' 필드에는 반드시 구두점을 직접 입력해야 합니다.

STATISTICA 소프트웨어로 .csv 형식 파일 표 불러오기

그림 10. STATISTICA 소프트웨어로 .csv 형식 파일 표 불러오기

'OK'를 누르면 표가 생성됩니다. 다중 회귀분석 준비가 완료됐습니다. 다음의 가격 변동에 대한 데이터의 영향을 분석하기 위해서는 가격 변동 발생 기간을 알아야 합니다. 저의 경우 2010년 이후의 뉴스를 선택한 후 세 가지 종속 변수를 설정했습니다.

  • 뉴스 발표 1일 후 통화 가격 변동
  • 뉴스 발표 5일 후 통화 가격 변동
  • 뉴스 발표 10일 후 통화 가격 변동

STATISTICA로 내보내기되기 이전의 CSV 표에 직접 입력하거나 혹은 프로그램 창에서도 입력할 수 있습니다.

확장형 데이터 표

그림 11. 확장형 데이터 표

이제 데이터가 모두 준비되었으며 환율 변동 요인이 되는 지표도 유추 가능합니다.


통화 가격에 큰 영향을 미치는 요인 구하기

다중 회귀 분석을 시작합니다('Statistics'->'Multiple Regression'). 나타난 창의 'Advanced' 탭에서 표시된 항목을 활성화하세요. 'Variables' 버튼을 클릭합니다.

첫 번째 필드에서 종속 변수를, 두 번째 필드에서 독립 변수를 선택합니다. 회귀 분석식은 선택된 변수 값의 영향을 받습니다.

인디케이터 선택창

그림 12. 인디케이터 선택창

'Variables' 버튼을 클릭해 분석에 적용할 데이터를 선택합니다.

종속 및 독립 변수 설정

그림 13. 종속 및 독립 변수 설정

선택된 변수 가운데 몇몇 독립 변수는 수정 불간으함을 알리는 경고 창이 뜹니다. 해당 열은 삭제해야 합니다. 49번 열의 'USD Federal Open Market Committee Rate Decision'을 삭제하고 분석에 적용될 표를 업데이트 합니다(첨부 파일 'calendar_2010-2011_usd_out.zip' 참조).

'OK'를 클릭합니다. 새로운 창이 뜨면 'Advanced' 탭에서 체크된 항목을 선택합니다.

전진 선택법

그림 14. 전진 선택법

'OK'를 눌러 선택을 완료합니다. 다음 창에서 'Forward Stepwise'를 선택하여 자동 데이터 선택을 활성화한 후 'OK'를 누릅니다.

전진 선택법

그림 15. 전진 선택법

끝이 보이네요. 새 창에 다중 회귀 분석 성공을 알리는 메세지가 나타나면 'Summary: Regression results'를 클릭하세요.

종속 변수와 독립 변수 사이의 다중 상관 계수에 가장 큰 영향을 미치는 지표가 자동으로 선택됩니다. 이 경우 가격에 가장 큰 영향을 미치는 지표들이 선택되죠. 자동 선택은 전략 생성기의 역할을 합니다. 결과로 나타나는 회귀 분석식에는 가격 변동을 가장 신뢰할 수 있는 방식으로 나타내는 지표들만이 포함될 겁니다.

한 가지 주의할 점이 있는데요. 스타티스티카에서 분석에 사용될 지표 선택에 사용되는 규칙이 늘 최선은 아니라는 겁니다. 회귀 분석식에 신뢰도가 떨어지는 지표가 포함될 수도 있죠. 결과표에서 검은색으로 표시되늰 지표들입니다. 목록에 해당 지표가 포함된 경우 선택 단계로 돌아가 해당 지표를 제거합니다.

결과 분석 창에서 'Cancel'을 클릭하면 선택 단계로 돌아갈 수 있습니다. 위의 방법을 이용해 신뢰도가 떨어지는 모든 지표를 제거합니다. 다만 신뢰도가 떨어지는 지표를 제거한 결과 값이 초기값보다 너무 작게 나타나면 안된다는 걸 기억하세요. 신뢰도가 떨어지는 지표는 한 개씩 제거하거나 한꺼번에 제거할 수 있습니다. 하지만 하나하나 제거하는 편이 낫습니다.

제거 후에는 가격 변동에 영향을 미치는 동시에 신뢰할 수 있는 지표만이 표에 남게 됩니다. 모든 표에서 가격에 영향을 미치는 지표는 붉은색으로, 영향을 미치지 않는 지표는 검은색으로 나타납니다.

분석을 통해 몇몇 지표가 발표 후 통화 가격에 영향을 끼친다는 걸 알 수 있습니다. 각 시기 별로 적용된 지표가 다른데요. '1일 후 가격 변동'을 독립 변수로 설정하면 다음의 결과가 나옵니다.

'1일 후 가격 변동' 독립 변수

그림 16. '1일 후 가격 변동' 독립 변수

'Cancel'을 클릭해 뒤로 돌아간 후 'Variables'을 선택해 변수 목록을 다시 엽니다. 위의 단계를 반복해 독립 변수 목록에서 검은색으로 표시된 변수를 모두 제거하고 붉은색으로 표시된 변수만 남깁니다. 이렇게 하면 뉴스 발표 다음 날 가격에 영향을 미치는 변수만이 남게 되죠.

표에 나타난 입력값의 색깔에 주의하세요. 종속 변수에 큰 영향을 미치는 독립 변수는 붉은색으로 나타납니다. 아래의 그림에는 모든 변수가 붉게 나타나 있습니다. 따라서 회귀 방정식 분석에 따른 오류가 이전보다 적게 나타날 겁니다. 각 변수의 영향은 'p-value' 열의 상관 계수 값을 기준으로 평가됩니다. 해당 값은 작을수록 좋습니다. 전혀 영향을 미치지 않는 변수들은 제거합니다.

'5일 후 가격 변동'을 선택한 후 위의 과정을 반복하면 다음의 결과가 나옵니다.

'5일 후 가격 변동' 독립 변수

그림 17. '5일 후 가격 변동' 독립 변수

'10일 후 가격 변동'을 독립 변수로 설정하면 다음의 결과가 나오죠.

'5일 후 가격 변동' 독립 변수

그림 18. '5일 후 가격 변동' 독립 변수

'1일 후 가격 변동'을 독립 변수로 설정하는 경우, 2010년에서 2011년 중반까지의 통화 가격은 부동산 개발 및 Richmond Institute가 발행한 지표에 가장 큰 영향을 받았음을 확인할 수 있습니다.

'5일 후 가격 변동'을 선택하면 제조업과 비제조업 관련 지표, 인건비, 실업률이 개발 산업 데이터에 추가됩니다.

'10일 후 가격 변동'의 경우 영향을 미치는 지표가 변하죠. 제조업 및 비제조업 관련 지표, 부동산 개발 관련 지표, 실업률 및 에너지 가격이 가장 큰 영향을 미치게 됩니다.

따라서 EURUSD 가격에 영향을 미치는 요인이 기본적 분석에 이용되는 거시경제 데이터와 매우 유사함을 알 수 있습니다. 거의 모든 책에서 해당 데이터에 대한 중요성을 강조하고 있죠. 수학과 통계 자료로 그 중요성이 입증되었네요.


회귀 분석식 및 예측 결과

가격에 영향을 미치는 요인만 알아서는 안됩니다. 지표 발표에 따라 어떻게 가격이 변할지 예측할 수 있어야 하죠. 여기에 사용할 회귀 방정식을 만들어 보겠습니다.

그림 17의 표를 기반으로 할게요. 'b' 열의 변수를 이용할 겁니다. 첫 번째 줄은 분석 후반에 얻어진 정수입니다. 아래의 아티클이 그 계산 방법을 설명하고 있습니다.

이 상관 계수를 기반으로 회귀 방정식을 만들어 보겠습니다.

R=-0.0761294138334434+0.355142961984956*[[1일 후 가격 변동]+0.319936701020232*[10일 후 가격 변동]+0.455193706894553*[USD Existing Home Sales(MoM)]-0.146961978306227*[USD MBA Mortgage Applications]+...

'b' 열의 변수가 상관 계수로 이용되었고 거시경제 데이터 값이 대괄호에 대한 승수가 됩니다.

거시경제 지표 값을 입력하면 R 값이 나오는데요. 이는 0이 아닌 수입니다. 결과 값이 0보다 큰 경우 분석 대상 기간 동안 가격이 상승할 것임을 의미합니다. R 값은 가격 상승을 나타내죠. R 값이 0보다 작은 경우 가격이 하락할 수 있습니다. 이 경우 R 값이 가격 하락을 나타내는 거고요.

EURUSD를 예로 들어 위의 공식을 채워보겠습니다. 2010년 4월 8일 데이터를 예로 들어보죠.


b value [b]х[value]
인터셉트 -0.0761 1.00000 -0.0761
1일 후 가격 변동 0.3551 -0.0070 -0.0025
10일 후 가격 변동 0.3199 0.0244 0.0078
USD Existing Home Sales(MoM) 0.4552 -0.022 -0.0100
USD MBA Mortgage Applications -0.1470 -0.044 0.0065
USD Employment Cost Index 144.0041 0.006 0.8640
USD NAPM-Milwaukee 0.0106 59 0.6278
USD Existing Home Sales 0.0000 5660000 -0.6596
USD Unemployment Rate -6.7866 0.099 -0.6719
USD ISM Manufacturing 0.0197 56.2 1.1052
USD Capital Goods Orders Non defense Excluding Air -2.8934 0.048 -0.1389
USD Durables Ex Transportation 4.9290 0.012 0.0591
USD House Price Purchase Index(QoQ) -5.9295 -0.018 0.1067
USD Chicago Purchasing Manager -0.0160 59.1 -0.9433
USD Personal Consumption Expenditure Core(YoY) -19.8579 0.015 -0.2979



-0.0230

R=-0,0230이므로 2010년 4월 8일부터 5일 간 가격 하락세가 계속되었음을 알 수 있습니다. -230 포인트까지 가격이 떨어졌죠. 위 기간에 해당하는 EURUSD 차트를 살펴보겠습니다.

 2010년 8월 EURUSD

그림 19. 2010년 8월 EURUSD

예측이 정확했음을 알 수 있습니다. 가격이 1.3154에서 1.2844로 떨어졌습니다. 5 거래일 만에 -310 포인트가 하락한 거죠(8월 11일 종가 기준). 회귀 분석식을 기반으로 한 가격 하락 예측이 맞았네요. 다른 날짜도 같은 방법으로 적용하면 됩니다.


결론

본문에서는 거시경제 지표 데이터 분석을 통한 기본적 분석 간략화 및 자동화 방법을 알아봤습니다. 이제 초보자들도 다양한 경제 통계 자료를 이용할 수 있습니다.

또한 뉴스에 곧바로 대응하여 거래를 수정할 수 있게 되었죠.

그래도 예측이 항상 100% 신뢰할 수 있는 것은 아니라는 걸 반드시 기억해야 합니다. 예측하지 않은 가격 변동이 발생할 수도 있습니다. 예측 결과는 어디까지나 확률론적이며 다양한 요인에 영향을 받습니다. 새로운 데이터가 추가되면 회귀 분석식을 다시 계산해야 하기도 하고요.

행운을 빌게요!

MetaQuotes 소프트웨어 사를 통해 러시아어가 번역됨.
원본 기고글: https://www.mql5.com/ru/articles/1087

MetaTrader 시그널 서비스 및 소셜트레이딩 이야기 MetaTrader 시그널 서비스 및 소셜트레이딩 이야기
시그널 서비스 개선을 위해 항상 노력하고 있습니다. 메커니즘을 업그레이드하고, 새로운 기능을 추가하고, 문제를 수정하죠. 2012년의 MetaTrader 시그널 서비스와 현재의 MetaTrader 시그널 서비스는 완전히 다른 서비스나 마찬가지입니다. 현재는 MetaTrader 클라이언트 터미널 버전에 따라 서버가 제공되는 가상 클라우드 호스팅 서비스를 제공하고 있습니다.
MetaTrader 마켓 개요(인포그래픽) MetaTrader 마켓 개요(인포그래픽)
몇 주 전에 프리랜서 서비스에 대한 인포그래픽을 게시했습니다. MetaTrader 마켓 관련 통계 자료도 곧 올리겠다고 말씀드렸었는데요. 함께 살펴보시죠.
3세대 신경망: 심층 신경망 3세대 신경망: 심층 신경망
본문은 머신러닝의 새로운 관점에 대해 다룹니다. 딥러닝, 정확히 말하면 심층 신경망에 대한 글이죠. 2세대 신경망도 간략하게 살펴볼 겁니다. 연결 구조, 종류, 학습 메소드 및 규칙, 단점을 다룬 후 3세대 신경망 개발의 역사, 종류, 특성 및 학습 메소드에 대해 알아보겠습니다. 실제 데이터를 이용한 적층 오토인코더를 이용한 심층 신경망 구축 및 학습 실험도 할 겁니다. 인풋 데이터 선택부터 편차 메트릭까지 자세히 다룰 겁니다. 본문의 마지막 부분에서는 MQL4/R 기반 인디케이터가 탑재된 EA를 이용해 심층 신경망을 구현해 보도록 하겠습니다.
최적화 몇 가지 아이디어 최적화 몇 가지 아이디어
최적화 프로세스는 여러분의 컴퓨터 리소스의 상당 부분을 필요로 합니다. MQL5 클라우드 네트워크 테스트 에이전트의 리소스까지 필요로 하는 경우도 있죠. 이번 글에서는 제가 이 과정을 용이하게 하기 위해, 또 MT5 전략 테스터르 개선하기 위해 이용하는 몇 가지 간단한 아이디어를 공유해 보겠습니다. 관련 자료 및 포럼 등을 통해 얻은 아이디어입니다.