Spec Match Trade Copier MT5
- 유틸리티
- 버전: 1.1
- 업데이트됨: 30 9월 2026
- 활성화: 10
MetaTrader 5용 로컬 트레이드 카피어입니다. 같은 Windows PC 또는 VPS에 있는 MT5 터미널 간에 포지션을 복사하며, 양쪽 브로커의 계약 사양(계약 크기, 틱 가치, 계좌 통화)으로 각 복사 포지션의 크기를 정하므로 두 브로커가 랏을 다르게 정의해도 복사 포지션은 같은 익스포저를 갖습니다. 같은 마스터 포지션의 두 번째 복사 포지션은 절대 열지 않습니다.
기능
각 터미널에서 같은 EA를 차트 하나에 부착합니다:
- 마스터 터미널에서는 Mode 입력값을 Master로 설정합니다.
- 각 리시버 터미널에서는 Mode 입력값을 Receiver로 설정합니다.
마스터는 열린 포지션, 그 심볼 사양, 하트비트를 공유 폴더 Common\Files의 파일에 기록합니다. 각 리시버는 100 ms마다 이 파일을 읽고 자신의 포지션을 마스터에 맞춥니다:
- 새 포지션을 엽니다
- 손절(스톱로스)과 익절(테이크프로핏)을 변경합니다
- 부분 청산합니다
- 청산합니다
서버도, 네트워크 연결도, DLL도, WebRequest도 사용하지 않습니다.
랏 숫자가 아니라 계약을 따르는 랏 크기
브로커마다 "1랏"의 정의가 다릅니다. 금은 랏당 100 oz, 10 oz 또는 1 oz일 수 있습니다. 지수는 포인트당 1, 10 또는 25 단위일 수 있습니다. 센트 계좌는 금액이 100배로 표시됩니다. 랏 숫자를 그대로 복사하는 카피어는 100배 많거나 적게 열 수 있습니다.
이 카피어는 양쪽에서 한 랏의 가치가 얼마인지 측정합니다. 브로커 자체의 손익 계산인 OrderCalcProfit을 계좌 통화로 사용합니다. 그런 다음 마스터 쪽 가치를 리시버의 계좌 통화로 환산합니다. 틱 가치도 함께 확인하며, 두 값이 일치하지 않으면 패널에 경고가 표시됩니다.
마스터 포지션 하나에 복사 포지션은 최대 하나
리시버는 마스터 포지션당 한 줄씩 기록한 복사 맵을 디스크에 보관합니다:
- 모든 복사 포지션에는 SMC:<master position id> 코멘트가 붙습니다.
- 요청은 전송되기 전에 맵에 기록되므로, 거래 도중 크래시나 재시작이 발생해도 두 번째 복사 포지션이 생길 수 없습니다.
- 재시작 후, 그리고 입력값이나 차트 타임프레임을 변경한 후 리시버는 맵을 다시 불러옵니다. 복사 포지션이 열린 상태에서 입력값을 변경하는 경우를 헤징 리시버와 네팅 리시버에서 실시간으로 테스트했으며, 추가 딜은 발생하지 않았습니다.
- 헤징 리시버에서 맵 파일이 유실되면 리시버는 포지션 코멘트로부터 맵을 재구성합니다.
- 네팅 리시버는 유실된 맵을 재구성할 수 없습니다. 하나의 순포지션을 마스터 포지션들로 다시 나눌 수 없기 때문입니다. 대신 복사 포지션이 열려 있는 각 심볼을 NET_HOLD 상태로 둡니다(아래 "카피어가 멈추거나 보류할 때" 참조).
앞뒤가 맞지 않는 상황이 생기면 리시버는 복사를 중지하고 알림을 띄웁니다. 절대 추측하지 않습니다. 예:
- 두 리시버 포지션이 같은 마스터 id를 갖는 경우
- 복사된 포지션의 코멘트에 id가 없는 경우
- 마스터 계좌가 바뀐 경우
- 계좌의 증거금 모드가 바뀐 경우
- 맵 파일이 손상된 경우
- 네팅 계좌의 순볼륨이 수동으로 변경된 경우
패널에는 차단된 중복 건수가 표시됩니다.
복사된 포지션은 마스터의 지시가 있을 때만 청산됩니다
마스터는 청산하는 모든 포지션에 대해 딜 내역에서 가져온 청산 기록을 게시합니다. 리시버는 그 기록을 확인했을 때만 복사 포지션을 청산합니다. 예를 들어 파일이 손상되었거나 내역이 로드되지 않아서, 포지션이 기록 없이 마스터 파일에서 사라질 수도 있습니다. 그 경우 복사 포지션은 HOLD 상태가 되고 알림이 표시됩니다. 청산되지는 않습니다.
다음 중 하나라도 발생하면 리시버는 일시 정지하며, 포지션은 그대로 유지됩니다:
- 마스터 터미널이 종료된 경우
- 마스터 터미널이 강제 종료된 경우
- 마스터 터미널의 연결이 끊긴 경우
- 마스터 파일의 업데이트가 멈춘 경우(하트비트 타임아웃, 기본값 3 s)
모니터링
상태 패널은 리시버 차트에 표시되며, 다음을 보여 줍니다:
- 마스터 상태(ALIVE / SILENT / NOT CONNECTED)
- 활성, 청산, 거부, 보류, 필터링된 복사 포지션의 수
- 마스터 대 리시버의 총 익스포저(계좌 통화 기준)와 그 차이(%)
- 신규 진입, 청산, 부분 청산, SL/TP 변경, 차단된 중복의 건수
- 마지막 동작, 마지막 오류, 경고
- 복사된 포지션당 한 행, 최대 10행까지 표시하고 그 이상은 "... N more" 줄로 표시
모든 동작은 Common\Files\SpecMatchCopier의 CSV 저널에도 기록됩니다.
카피어가 멈추거나 보류할 때
카피어는 절대 추측으로 불일치를 복구하지 않습니다. 원인을 해결한 다음 재시작하십시오.
| 패널 표시 | 의미 | 조치 |
|---|---|---|
| COPYING STOPPED | 리시버가 설명할 수 없는 상황을 발견했습니다: 하나의 마스터 id에 대한 두 포지션, 카피어의 매직은 있으나 id가 없는 포지션, 마스터 계좌 또는 증거금 모드의 변경, 손상된 맵 파일. 원인은 패널과 저널에 표시됩니다. EA를 재시작할 때까지 아무것도 복사되지 않습니다. | 메시지에 나온 원인을 해결한 다음, 차트에서 EA를 제거하고 다시 부착하십시오. 원인이 남아 있으면 다시 중지됩니다. |
| COPYING STOPPED: master account changed | 이제 채널에 다른 마스터 계좌가 연결되어 있습니다. | 의도한 전환이라면: EA를 제거하고, 이전 마스터의 복사 포지션을 수동으로 청산하고, Common\Files\SpecMatchCopier에서 map_<login>_<magic>.txt(이 리시버의 로그인과 매직)를 삭제한 뒤 EA를 다시 부착하십시오. |
| COPYING STOPPED: map file is damaged | 복사 맵의 체크섬 검사가 실패했습니다. | 헤징: 맵 파일을 삭제하고 EA를 다시 부착하면 코멘트로부터 맵이 재구성됩니다. 네팅: NET_HOLD 참조. |
| NET_HOLD (네팅 리시버) | 한 심볼의 순볼륨이 카피어가 연 볼륨과 다릅니다. 예를 들어 수동 거래나 맵 유실 이후입니다. 그 심볼은 더 이상 거래되지 않습니다. 보류 상태는 맵에 저장되므로 재시작해도 해제되지 않습니다. | EA를 제거합니다. 카피어의 포지션을 수동으로 청산합니다. map_<login>_<magic>.txt를 삭제합니다. EA를 다시 부착합니다. 그러면 그 이후에 열린 마스터 포지션을 복사합니다. |
| 한 행에 표시된 HOLD | 복사 포지션 하나가 불확실한 상태입니다. 예를 들어 마스터 포지션이 청산 기록 없이 사라진 경우입니다. 또는 연결이 끊기는 등의 이유로 거래 요청이 확인되지 않았고 15초 이내에 포지션이 나타나지 않은 경우입니다. 포지션이 나중에 나타나면 알림과 함께 보류된 행에 연결되며, 아무것도 두 번 전송되지 않습니다. 보류된 복사 포지션은 마스터가 자신의 포지션을 청산한 경우에도 열린 상태로 유지됩니다. | 복사 포지션을 수동으로 청산하거나 유지하십시오. 카피어는 보류된 복사 포지션을 다시 건드리지 않습니다. |
랏 모드
| 모드 | 리시버 볼륨 | 계약 사양 반영 |
|---|---|---|
| Same exposure (기본값) | 마스터 볼륨 x (마스터 1랏의 가치 / 리시버 1랏의 가치) x 배수 | 예 |
| Balance ratio | Same exposure 볼륨 x (리시버 잔고 / 마스터 잔고) | 예 |
| Equity ratio | Same exposure 볼륨 x (리시버 에쿼티 / 마스터 에쿼티) | 예 |
| Master lot x multiplier | 마스터 볼륨 x 배수. 계약이 다르면 경고가 표시됩니다 | 아니요 |
| Fixed lot | 모든 복사 포지션에 고정 랏 | 아니요 |
모든 모드에서 볼륨은 이후 다음과 같이 처리됩니다:
- 리시버의 볼륨 스텝에 맞춰 반올림(가장 가까운 값 또는 내림)
- 선택 사항인 Max lot과 브로커 최대값으로 상한 적용
- 브로커 최소값보다 작으면 건너뛰거나 최소값으로 올림(사용자 선택)
- 전송 전에 OrderCalcMargin으로 여유 증거금 대비 확인
한쪽의 한 랏이 다른 쪽 한 랏의 1000배를 넘는 가치를 가지면 복사가 거부됩니다. 이 한도는 변경할 수 있습니다. 이런 경우는 대개 심볼 매핑이 잘못되었다는 뜻입니다.
계산 예시: 금, 랏당 100 oz에서 랏당 1 oz로
| 마스터 (브로커 A) | 리시버 (브로커 B) | |
|---|---|---|
| 심볼 | XAUUSD | XAUUSD.cs (자동 매칭) |
| 계약 크기 | 100 oz | 1 oz |
| 계좌 | USD | USD |
| 금 가격 | 4,178.13 | 4,178.13 |
| 1랏의 가치 | 100 x 4,178.13 = 417,813 USD | 1 x 4,178.13 = 4,178.13 USD |
마스터가 0.10랏을 엽니다. 이는 10 oz이며 가치는 41,781 USD입니다.
- Same exposure: 0.10 x 417,813 / 4,178.13 = 리시버에서 10.00랏. 이는 10 oz이며 가치는 41,781 USD입니다. 랏 숫자를 복사하는 카피어라면 0.10랏 = 0.1 oz를 열게 되어, 익스포저가 백분의 일이 됩니다.
- 센트 리시버(계좌 통화 USC, 1 oz 계약): 브로커는 1랏에 대해 417,813 USC를 보고하며, 이는 센트 계수를 적용하면 4,178.13 USD입니다. 리시버는 같은 10.00랏을 받습니다.
- Balance ratio(마스터 잔고 10,000 USD, 리시버 잔고 1,000 USD): 10.00 x 1,000 / 10,000 = 1.00랏.
이 수치들은 테스트 보고서와 함께 제공되는 단위 테스트입니다. 같은 계산을 실시간으로도 실행했습니다. USD 계좌의 랏당 5,000 oz인 XAGUSD를 EUR 계좌의 랏당 1,000 oz인 XAGEUR로 복사했으며, 0.10랏이 0.50랏이 되었습니다.
심볼 매칭
리시버는 다음 순서로 마스터 심볼을 찾습니다:
- 수동 맵(XAUUSD=GOLD.x,US30=DJ30). 항상 우선하며, 다른 방법으로 대체되는 일이 없습니다.
- 같은 이름.
- Suffix / Prefix 힌트(.cs, m, #).
- 브로커가 붙인 장식을 제거한 뒤의 같은 핵심 이름: XAUUSD.cs, XAUUSDm, #XAUUSD, EURUSD.pro, US500Cash, fxEURUSD 등.
- 내장 별칭: GOLD/XAUUSD, SILVER/XAGUSD, US30/DJ30/WS30, NAS100/US100/USTEC, US500/SPX500, GER40/DE40/DAX, UK100, JP225, USOIL/WTI, UKOIL/BRENT, BTCUSD, ETHUSD.
두 리시버 심볼이 똑같이 들어맞으면 마켓 워치(Market Watch)에 있는 심볼을 사용합니다. 둘 다 마켓 워치에 있거나 둘 다 없으면 복사가 거부되고, 패널에서 수동 맵을 요청합니다. 예를 들어 Exness는 US30m(랏당 지수 1단위)과 US30_x10m(랏당 10단위)을 제공합니다. 둘 다 마스터의 US30에 들어맞으므로 원하는 심볼을 마켓 워치에 추가하거나 매핑하십시오. 어느 쪽이든 랏은 환산됩니다.
통화쌍 뒤의 숫자는 브로커의 장식으로 취급하지 않습니다. Exness XAUUSD247m(주말에도 거래되는 금)은 다른 상품이므로, 마스터의 XAUUSD는 XAUUSDm으로 복사되며 XAUUSD247m으로는 절대 복사되지 않습니다. 정말 원한다면 수동으로 매핑하십시오.
심볼을 처음 복사하기 전에 리시버는 두 가격을 자신의 계좌 통화로 비교합니다. 차이가 3%를 넘으면 복사가 거부되며, 이 값은 변경할 수 있습니다. 이를 통해 "GOLD" 같은 매핑을 걸러냅니다. 일부 브로커에서 이 심볼은 금이 아니라 약 40 USD짜리 금광 주식입니다.
입력값
| 입력값 | 기본값 | 의미 |
|---|---|---|
| Mode of this terminal | Receiver | Master는 게시하고, Receiver는 복사합니다 |
| Channel | 1 | 마스터와 그 리시버들을 연결합니다. PC의 마스터마다 다른 텍스트를 사용하십시오 |
| Cent account (this terminal) | Auto | Auto는 USC/EUC 계좌 통화를 센트로 처리합니다. 브로커가 다른 코드를 사용하면 Yes/No로 설정하십시오 |
| Master scan interval, ms | 200 | 거래 이벤트 외에 추가로 마스터가 변경을 확인하는 주기 |
| Master heartbeat interval, ms | 500 | 변경이 없을 때 마스터가 파일을 다시 쓰는 주기 |
| Lot mode | Same exposure | 위의 랏 모드 참조 |
| Fixed lot | 0.01 | Fixed lot 모드에서 사용 |
| Multiplier | 1.0 | Fixed lot을 제외한 모든 모드에 적용 |
| Max lot of one copied position | 0 (끔) | 복사 포지션 하나의 상한 |
| Volume rounding | Nearest | 가장 가까운 볼륨 스텝 또는 내림 |
| Volume below the broker minimum | Skip | 복사를 건너뛰거나 최소 볼륨 사용 |
| Refuse if one lot is worth more than x times the other | 1000 | 잘못된 매핑 방지 |
| Manual symbol map | 비어 있음 | 쉼표로 구분한 MASTER=RECEIVER 쌍 |
| Receiver symbol suffix hint | 비어 있음 | 예: .cs |
| Receiver symbol prefix hint | 비어 있음 | 예: # |
| Refuse a mapping if prices differ by more than, % | 3.0 | 0이면 검사를 끕니다 |
| Copy only these master symbols | 비어 있음 (전체) | 쉼표로 구분 |
| Never copy these master symbols | 비어 있음 | 쉼표로 구분 |
| Copy only these master magic numbers | 비어 있음 (전체) | 쉼표로 구분 |
| Never copy these master magic numbers | 비어 있음 | 쉼표로 구분 |
| Reverse copy | false | 매수는 매도가 되고, 손절과 익절은 서로 자리가 바뀝니다 |
| Copy stop loss and take profit | true | |
| Copy positions already open at the first start | false | 기본적으로 리시버가 시작된 후에 열린 포지션만 복사됩니다 |
| Skip if price moved more than, % since master entry | 0.10 | 일시 정지 후 늦게 복사되는 것을 방지합니다. 0이면 끕니다 |
| Master heartbeat timeout, ms | 3000 | 마스터 파일이 이 값보다 오래되면 복사가 일시 정지됩니다 |
| Hold if a master position vanishes without a close record, s | 30 | |
| Max slippage, points | 20 | 즉시 체결 심볼용 |
| Magic number of copied positions | 7310001 | 계좌와 매직 넘버 조합당 리시버 하나. 같은 계좌의 두 번째 리시버에는 다른 매직 넘버를 사용하십시오 |
| Expected master account | 0 | 0이면 처음 확인된 마스터를 받아들입니다. 그렇지 않으면 다른 계좌가 채널에 나타날 때 복사가 중지됩니다 |
| Show the status panel | true | |
| Panel X / Y offset, px | 12 / 24 | |
| Popup alerts / Push notifications | true / false | |
| CSV journal | true | Common\Files\SpecMatchCopier\journal_<account>_<magic>.csv |
설정 방법
- 두 터미널 모두에 EA를 복사합니다. Common\Files는 Windows 사용자별 폴더이므로 두 터미널은 같은 Windows 사용자로 실행되어야 합니다. 마스터와 모든 리시버 터미널에서 같은 버전의 EA를 사용하십시오. 업데이트한 후에는 모든 터미널에서 업데이트하십시오.
- 마스터 터미널에서 Mode = Master로 아무 차트에나 EA를 부착합니다.
- 각 리시버 터미널에서 Mode = Receiver와 같은 Channel로 아무 차트에나 EA를 부착합니다.
- 리시버 터미널에서 "알고 트레이딩"을 활성화합니다.
- 마스터에서 작은 포지션을 엽니다. 리시버 패널에 복사 포지션과 랏 환산이 표시됩니다.
전략 테스터
전략 테스터에는 두 번째 터미널이 없습니다. 따라서 테스터에서는 EA가 시뮬레이션 마스터를 실행합니다:
- 몇 개의 바마다 가상 포지션을 열고, 수정하고, 부분 청산하고, 청산합니다. 각 포지션은 손절 시 잔고의 약 1%를 잃고 증거금으로 잔고의 최대 10%를 사용하도록 크기가 정해집니다
- 가상 포지션은 절대 주문으로 전송되지 않습니다
- 선택한 랏 모드와 모든 사전 거래 검사를 적용하여 이 가상 포지션을 테스터 계좌로 복사합니다
이를 통해 두 번째 터미널 없이 복사 로직과 랏 환산을 확인할 수 있습니다. 이는 매매 전략이 아니며, 테스터 결과는 수익성에 대해 아무것도 말해 주지 않습니다.
제한 사항 (구매 전에 읽어 주십시오)
- 같은 PC에서만: 마스터와 리시버는 같은 Windows PC 또는 VPS에서 하나의 Windows 사용자로 실행되어야 합니다. 인터넷을 통한 복사는 지원하지 않습니다.
- MQL5 내장 VPS에서는 실행할 수 없습니다. 마이그레이션된 터미널은 각각 별도의 저장소를 갖습니다.
- MT5에서 MT5로만 가능합니다. 대기 주문은 복사되지 않습니다. 대기 주문은 체결되어 포지션이 되면 복사됩니다.
- 시장이 닫힌 경우: 리시버 심볼이 거래 세션 밖에 있으면 아무것도 전송하지 않습니다. 카피어는 세션이 열릴 때까지 기다린 다음, 아직 필요한 것을 복사합니다. 새 포지션에는 여전히 "Skip if price moved" 한도가 적용됩니다. 리시버의 시장이 닫혀 있는 동안 마스터가 실행한 청산은 그 시장이 열릴 때 그 순간의 가격으로 실행됩니다.
- 속도: 데모 계좌에서 측정한 결과, 리시버 포지션은 마스터 거래 후 0.2 s에서 1.1 s 사이에 마스터와 일치했습니다(중앙값 0.3 s, 측정 60회. 1.1 s 사례는 네팅 계좌에서 포지션 10개를 한 번에 청산한 경우). 이는 100 ms의 폴링에 브로커의 체결 시간을 더한 값입니다. 복사 포지션은 리시버 자체의 가격으로 체결되므로, 특히 뉴스 전후에는 마스터의 가격과 다를 수 있습니다.
- 손절 및 익절 레벨:
- 두 심볼이 같은 통화로 호가되면 정확한 레벨이 복사됩니다.
- 그렇지 않은 경우(예: XAGUSD에서 XAGEUR로) 레벨은 가격 비율에 따라 조정됩니다.
- 네팅 리시버에서는 해당 심볼의 모든 마스터 포지션이 같은 레벨을 사용할 때만 SL/TP가 복사됩니다.
- 리시버에서 수동으로 청산하거나 줄인 포지션은 건드리지 않습니다. 절대 다시 열리지 않습니다.
- 리시버가 48시간 넘게 오프라인인 경우: 마스터는 청산 기록을 48시간 동안 보관합니다. 그보다 전에 마스터 포지션이 청산된 복사 포지션은 자동으로 청산되지 않습니다. HOLD 상태가 되어 알림이 표시되며, 수동으로 청산해야 합니다.
- 진입 시 거부된 스톱 레벨: 브로커가 새 복사 포지션의 손절 또는 익절을 거부하면(잘못된 스톱, 예를 들어 뉴스 전후로 스톱 레벨이 넓어진 경우) 복사가 거부되며 재시도하지 않습니다. 패널에는 REFUSED로 표시됩니다.
- 상한이 적용된 복사 포지션: 복사 포지션이 Max lot 또는 브로커의 최대 볼륨으로 제한된 경우, 마스터의 부분 청산은 새로 산정된 볼륨이 현재 열려 있는 볼륨보다 작을 때만 복사 포지션을 줄입니다. 그때까지 복사 포지션은 상한에 머뭅니다.
- 리스크 관리 없음: 카피어는 드로다운이나 일일 손실을 제한하지 않으며 계좌를 관리하지 않습니다. 마스터가 하는 것을 복사합니다.
- 모든 터미널에서 같은 버전: 마스터와 리시버는 같은 코드로 랏의 가치를 측정합니다. 모든 터미널에서 같은 버전의 EA를 실행하십시오. 예를 들어 v1.00 마스터와 v1.01 리시버를 함께 쓰면 주식 CFD 및 랏당 가치가 작은 기타 계약에 대해 v1.00의 센트 반올림이 그대로 유지됩니다.
- 브로커 측 자금 부족: 브로커가 증거금 부족으로 새 복사 포지션을 거부하면 복사가 거부되며 재시도하지 않습니다. 일부 브로커는 MetaTrader 자체의 증거금 계산이 보여 주는 것보다 더 많은 증거금을 요구합니다. 테스트에 사용한 Exness 데모가 그랬습니다.
- 테스트 환경:
- MetaQuotes-Demo 계좌로 실시간 테스트: USD 마스터, EUR 헤징 리시버, USD 네팅 리시버.
- 마스터는 USD 네팅 계좌에서도 테스트했습니다. 추가 진입, 딜 하나로 이루어진 반전, 부분 청산, 전체 청산을 포함합니다.
- 두 브로커, 즉 MetaQuotes-Demo와 Exness Standard 데모(USD, 헤징, "m" 접미사가 붙은 심볼) 사이에서 양방향으로 실시간 테스트:
- MetaQuotes-Demo에서 Exness로, 자동 매칭: XAUUSD에서 XAUUSDm으로, XAGUSD에서 XAGUSDm으로, EURUSD에서 EURUSDm으로. SL/TP를 포함한 진입, SL 변경, 부분 청산, 리시버 재시작, 입력값 변경, 청산으로 테스트했습니다.
- Exness에서 MetaQuotes-Demo EUR 계좌로, 자동 매칭: XAUUSDm에서 XAUUSD로, XAGUSDm에서 XAGUSD로, EURUSDm에서 EURUSD로. 진입, SL 변경, 부분 청산, 청산으로 테스트했습니다. 주식 CFD BACm(랏당 100주)을 BAC(랏당 1주)로 복사했으며, 0.10랏이 10랏이 되었습니다.
- Exness 내에서 계약 크기가 다른 경우, 수동 맵 사용: US30m에서 US30_x10m으로(0.30랏이 0.03랏으로), USTECm에서 USTEC_x100m으로, US500m에서 US500_x100m으로(1.00랏이 0.01랏으로), 그리고 BTCUSDm에서 BTCUSDTm으로.
- 모든 실행에서: 중복 0건, 패널상 익스포저 차이 0.00%에서 0.01%. 잘못된 매핑은 가격 검사로 거부되었습니다. 모호한 매칭은 한 심볼이 마켓 워치에 들어갈 때까지 거부되었습니다.
- 1 oz 금과 센트 계좌는 실시간 계좌가 아니라 합성 브로커 사양을 사용한 단위 테스트로 검증했습니다. 두 브로커 모두 데모에서 이를 제공하지 않았습니다.
- 실제 자금을 복사하기 전에 사용하시는 브로커의 데모 계좌에서 테스트하십시오.
