English Русский Italiano Türkçe
preview
10분 만에 MQL5 Algo Forge에 프로젝트 코드를 게시하세요: 단계별 가이드

10분 만에 MQL5 Algo Forge에 프로젝트 코드를 게시하세요: 단계별 가이드

MetaTrader 5 — 예 |
26 5
MetaQuotes
MetaQuotes

콘텐츠


소개

귀하의 글이 이미 MQL5에 게시되었나요? 그러면 그 다음 단계로 넘어가세요: 게시글에 코드가 포함되어 있다면 MQL5 Algo Forge에서 이 코드를 완전한 프로젝트로 만들어 보세요. 원본 파일을 압축 파일로만 첨부해 두지 마세요. 독자들이 프로젝트의 최신 버전, 명확한 파일 구조, 변경 내역 및 자세한 설명을 볼 수 있도록 해당 파일들을 저장소로 옮기세요. Algo Forge는 Git을 기반으로 하지만 주요 Git 작업은 이미 MetaEditor 인터페이스에 내장되어 있으며 README.md가 프로젝트의 첫인상의 역할을 합니다.


환경 준비

MQL5 로그인 정보, 게시글에 포함된 모든 파일, 그리고 작성 완료된 README.md 파일을 준비하세요. 프로젝트 게시를 미루지 마세요. 필요한 코드, 설정 및 지원 자료를 모두 손쉽게 이용할 수 있을 때 지금 바로 만들어 보세요. 
몇 가지 간단한 단계만 거치면 프로젝트를 저장소에 게시할 수 있습니다. 코드 게시에는 10분도 채 걸리지 않으며 복잡한 압축 파일은 잊어버리세요. 프로젝트는 클라우드에 저장되고 자동으로 업데이트됩니다.


로그인

MetaEditor를 엽니다. 도구 -> 옵션 -> 커뮤니티로 이동하여 MQL5 계정으로 로그인했는지 확인하세요. 이 인증이 없으면 MetaEditor는 MQL5 Algo Forge와 연동할 수 없습니다.


1. 여러분의 mql5.com의 사용자 이름과 비밀번호를 사용하여 MetaEditor에 로그인하세요.


프로젝트 생성

탐색기 창을 엽니다. 공유 프로젝트 폴더를 찾으세요. 마우스 오른쪽 버튼을 클릭하고 새 프로젝트를 선택하세요. 여기에서 프로젝트를 생성하세요: 여기가 MetaEditor에서 Algo Forge로 진입하는 경로입니다.

2. 코드 편집기에서 새 프로젝트를 생성하세요.


프로젝트 유형

게시글 내용을 바탕으로 프로젝트 유형을 선택하세요:

  • Expert Advisor — EA를 게시하는 경우;
  • Custom Indicator — 지표를 게시하는 경우;
  • Script — 스크립트를 게시하는 경우;
  • Service — 서비스를 게시하는 경우;
  • Library — 라이브러리를 게시하는 경우;
  • Empty — 게시글에 개별적으로 컴파일해야 하는 파일이 많고 빈 템플릿이 필요한 경우.

확실하지 않은 경우나 프로젝트에 컴파일된 주요 파일이 하나만 있는 경우에는 컴파일 된 주요 파일과 일치하는 형식을 선택하십시오. 이렇게 하면 MetaEditor가 즉시 관련 프로젝트 프레임워크를 생성합니다.
만약 게시글에 개별적으로 컴파일해야 하는 여러 파일이 포함되어 있다면 해당 프로젝트는 처음에는 Empty로 생성한 다음 파일을 독립적으로 채워 넣어야 합니다.

만약 비어 있지 않은 프로젝트를 생성하고 그 안에 두 개 이상의 스크립트를 넣으면 그중 하나만 컴파일 될 수 있습니다. 다른 스크립트를 컴파일하려고 하면 해당 유형의 파일이 프로젝트에 이미 존재한다는 오류가 발생합니다.

3. 게시글의 내용에 따라 생성할 프로젝트 유형을 선택하세요.


네이밍

저희가 보내드리는 이름을 사용하세요. 아직 이름이 없다면 명확한 명명 규칙을 사용하세요:

[Material type]-[article ID]-[Short topic]

예를 들어: Article-21732-Code-Tears-And-Algo-Forge. 이 이름은 프로젝트와 게시글을 즉시 떠올리게 해주고 따라서 쉽게 찾도록 해줍니다.


프로젝트 파일

독자가 코드를 빌드, 실행 또는 테스트하는 데 필요한 모든 것을 포함하세요:

  • main .mq5 file;
  • .mqh files;
  • libraries;
  • .set presets;
  • images;
  • CSV, TXT 및 기타 데이터;
  • 프로젝트에서 사용하는 추가 리소스.

하나의 메인 파일만 고집하지 마세요. 문서가 모듈, 리소스 또는 설정 세트에 의존하는 경우 해당 내용도 함께 포함해 주세요. 완성된 프로젝트는 미완성된 자료보다 독자에게 항상 더 유용합니다.

4. 이 프로젝트에 게시글에 있는 파일들을 채워 넣으세요.


폴더 정리

모든 것을 한데 묶지 마세요. 탐색하기 쉽도록 프로젝트를 구성하세요. MetaEditor는 프로젝트 창에서 파일을 논리적 섹션별로 자동으로 표시합니다: 소스, 헤더, 리소스, 설정 및 파일, 그리고 종속성을 각각 별도로 표시합니다. 이러한 순서는 메인 코드, 헤더, 리소스 및 서비스 파일의 위치를 즉시 확인하는 데에 도움이 됩니다.

기존 아카이브를 마이그레이션하는 경우 먼저 모든 파일을 깔끔한 프로젝트 폴더에 모은 다음 MetaEditor에 연결하세요. 이렇게 하면 아무것도 없어지지 않고 버전 간 혼동도 발생하지 않습니다.

5. 프로젝트 내 파일들을 폴더별로 정리하세요


README

README.md 파일을 프로젝트의 루트 디렉토리에 넣어주세요. 하위 폴더에 넣지 마세요. README 파일은 독자에게 프로젝트를 소개하는 역할을 합니다. 코드의 내용, 프로젝트에 포함된 요소, 그리고 시작 방법 등을 설명합니다. 이것이 없으면 저장소는 이름 없는 파일들의 모음처럼 보입니다.

6. README.md 프로젝트 설명 파일을 프로젝트 루트 폴더에 배치하세요.


인코딩 및 컴파일

제출하기 전에 잠시 시간을 내어 프로젝트를 확인하세요.

  • 게시글에 포함된 모든 파일이 추가되었습니다;
  • main .mq5 파일이 제자리에 있습니다;
  • README.md 파일은 루트 디렉토리에 있습니다;
  • 프로젝트는 오류 없이 컴파일됩니다;
  • (압축 파일에서 옮겨온) 기존 텍스트 파일은 UTF-8 형식으로 저장됩니다.
마지막 항목을 건너뛰지 마세요. 이는 공개 프로젝트에 중요합니다: 인코딩이 잘못되면 변경 내역이 올바르게 표시되지 않을 수 있습니다.

7. 모든 프로젝트 파일을 UTF-8 인코딩으로 저장하세요.


프로젝트가 하나의 주요 컴파일 파일로 구성된 경우 탐색기 창에서 프로젝트 이름을 마우스 오른쪽 버튼으로 클릭하고 메뉴에서 컴파일 명령을 선택하여 컴파일을 수행할 수 있습니다.
프로젝트에 컴파일 된 파일이 여러 개 포함된 경우 각 파일을 개별적으로 컴파일해야 합니다. 그렇지 않으면 컴파일 오류가 발생합니다.

8.1 프로젝트가 성공적으로 컴파일 되었는지 확인합니다


8.2 컴파일해야 할 실행 파일이 많은 경우 각각 별도로 컴파일해야 합니다


Git을 사용한 커밋 및 동기화

Git의 "파일/폴더 추가" 명령을 사용하여 새 파일을 Git에 추가한 다음 "Git 커밋"을 클릭합니다. 추가 또는 업데이트한 내용을 간결하고 명확하게 설명하는 커밋 메시지를 작성하세요. 이 항목을 비워두지 마십시오. 좋은 코멘트는 나중에 여러분과 독자 모두가 프로젝트의 이력을 빠르게 이해하는 데 도움이 됩니다. 

일반적인 시나리오에서는 여기까지의 단계로 충분합니다: MetaEditor는 프로젝트의 현재 상태를 커밋하고 변경 사항을 클라우드에 푸시합니다. 프로젝트가 이미 존재하고 해당 프로젝트를 계속 개발하는 경우 먼저 Git Pull을 실행한 다음 수정 사항을 추가하세요. 이렇게 하면 로컬 버전과 클라우드 버전 간의 불필요한 충돌을 방지할 수 있습니다.

9.1 프로젝트 작업을 시작하기 전에 저장소에서 변경 사항을 풀 하세요.


9.2 작업이 완료되면 로컬에서 변경한 내용을 저장소에 푸시하세요.


9.3 모든 커밋에 대해 커밋 메시지를 작성하세요



공개 모드

프로젝트가 준비되고 동기화되면 Algo Forge Algo Forge에서 파일의 웹 버전을 열고 공개로 설정하세요. 그때까지는 비공개로 유지될 수 있습니다. 모든 코드, README 파일, 그리고 제대로 작동하는 구조가 갖춰졌다고 확신할 때 프로젝트를 게시하세요.

10. 프로젝트를 공개하려면 '비공개 프로젝트' 확인란의 선택을 해제하세요


다중 게시글 프로젝트

특정 라이브러리, 지표 또는 EA에 대한 여러 편의 게시글이 있는 경우 맥락 없이 최신 버전만 업로드하지 마세요. 첫 번째 게시글부터 마지막 게시글까지 순차적으로 버전을 추가하고 필요한 경우 Algo Forge 웹 인터페이스에서 해당 릴리스를 생성하십시오. 이렇게 하면 독자는 프로젝트의 어떤 버전이 어떤 게시글과 관련이 있는지 즉시 알 수 있습니다.


11. 시리즈의 각 기사에 대해 프로젝트 개발 이력을 보존하기 위해 저장소의 새 릴리스 버전을 생성하세요


체크리스트

마무리하기 전에 다음 사항을 확인하세요:

  • 해당 프로젝트는 공유 프로젝트에 생성되었습니다;
  • 프로젝트 이름이 정확합니다;
  • 게시글에 포함된 모든 파일이 추가되었습니다;
  • 프로젝트 구조가 명확하고 혼란을 야기하지 않습니다;
  • README.md 파일은 루트 디렉토리에 있습니다;
  • 프로젝트가 컴파일되었습니다;
  • 변경 사항이 커밋되어 Algo Forge로 전송되었습니다;
  • 필요한 경우 해당 프로젝트는 일반에 공개됩니다;

결론

게시글의 코드 부분을 단순히 부록으로만 첨부하지 마세요. 그 코드들을 프로젝트로 만들어 보세요. 이렇게 하면 콘텐츠의 유용성이 높아지고 유지 관리가 간편해지며 수정 내역이 보존되고 독자가 편리하게 콘텐츠에 접근할 수 있게 됩니다. 이 글은 그러한 아이디어에 대해 설명하는 것입니다. MQL5 Algo Forge 프로젝트는 이러한 아이디어를 실제로 구현한 사례를 보여줍니다.

MQL5 Algo Forge에 대한 자세한 개요를 보려면 다음 자료를 꼭 참고하세요:

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

최근 코멘트 | 토론으로 가기 (5)
Vladislav Boyko
Vladislav Boyko | 26 5월 2026 에서 12:49

Именование

저희가 알려드리는 이름을 사용해 주세요. 아직 이름이 정해지지 않았다면, 이해하기 쉬운 형식을 따르세요:

[Тип материала]-[ID статьи]-[Краткая тема]

예를 들어: Article-21732-Code-Tears-And-Algo-Forge. 이러한 이름은 프로젝트를 해당 문서와 바로 연결해 주며 탐색을 용이하게 합니다.

리포지토리 구성에 대해 나름의 생각이 있는 분들에게는 이를 의무적인 표준으로 삼지 말아 주시기 바랍니다.

제 구상은 이렇습니다. 저는 하나의 기사 시리즈와 관련된 리포지토리들을 모아둘 조직( organization)을 만들었습니다. 이는 서로 연관된 리포지토리들을 묶어주는 ‘폴더’와 같으며, 맥락을 제공하고 리포지토리에 간결한 이름을 붙일 수 있게 해줍니다. 조직을 열면, 해당 기사 시리즈와 관련된 모든 리포지토리(그리고 오직 그것들만)가 깔끔하게 정리되어 있습니다.

Vladislav Boyko
Vladislav Boyko | 26 5월 2026 에서 12:58
[Тип материала]-[ID статьи]-[Краткая тема]

예를 들어: Article-21732-Code-Tears-And-Algo-Forge. 이러한 이름은 프로젝트를 해당 기사와 바로 연결해 주며, 탐색을 용이하게 합니다.

제 경우는 다음과 같습니다:

  • 하나의 리포지토리가 여러 기사에 걸쳐 순차적으로 발전할 수 있습니다.
  • 한 기사에는 여러 리포지토리가 포함될 수 있습니다.

그래서 저에게는 이런 방식이 전혀 맞지 않습니다.

아이디어 자체는 훌륭하고 대부분의 저자에게는 아주 잘 맞을 것입니다(제 생각에는요). 하지만 이 방식이 자신에게 적합하지 않은 이유를 논리적으로 설명할 수 있다면, 이를 따르지 않아도 되도록 허용해 주셨으면 합니다.

Vladislav Boyko
Vladislav Boyko | 26 5월 2026 에서 13:15

Типизация

  • Empty — 기사에 별도로 컴파일해야 할 파일이 많을 경우...

그럴 때는 (대개) 여러 개의 리포지토리로 나눌 수 있습니다.

이 작업에 필요한 열정과 자제력을 갖춘 분들을 위한 아이디어로 제시해 봅니다.

Max Brown
Max Brown | 27 5월 2026 에서 12:51
이건 앞으로 제가 일을 체계적으로 정리하는 데 분명 도움이 될 것 같네요. 이번 주말에 설정해 볼게요.

감사합니다.
Rashid Umarov
Rashid Umarov | 27 5월 2026 에서 14:23
Vladislav Boyko #:
저장소 구성에 대해 나름의 생각이 있는 분들에게는 이를 필수적인 표준으로 삼지 말아 주시기 바랍니다.
기사나 프로젝트의 구조를 잘 반영하는 자신만의 체계를 사용하셔도 됩니다.
새로운 기능: MQL5의 커스텀 인디케이터 새로운 기능: MQL5의 커스텀 인디케이터
MetaTrader5와 MQL5의 새로운 기능 전체를 나열하지는 않겠습니다. 종류도 많은 데다가, 별도의 설명이 필요한 기능들도 있거든요. 객체 지향 프로그래밍을 이용한 코드 작성법 또한 다음에 알아보도록 하겠습니다. 다른 기능들과 함께 설명하기에는 조금 어려운 이야기일 수 있으니까요. 이 글에서는 인디케이터와 인디케이터의 구조, 드로잉 타입과 프로그래밍 디테일을 MQL4와 비교해 볼게요. 초보자 분들께 많은 도움이 되면 좋겠고 기존에 사용하시던 개발자 분들도 뭔가 새로운 걸 얻어 가실 수 있길 바랍니다.
"최적 패스"에서 견고한 솔루션으로: MetaTrader 5에서 최적화 표면 탐색하기 "최적 패스"에서 견고한 솔루션으로: MetaTrader 5에서 최적화 표면 탐색하기
이 글에서는 MetaTrader 5의 Expert Advisor를 최적화하기 위한 엔지니어링적인 접근 방식을 살펴봅니다. 사용자 정의 지표 수집부터 최적화 프레임, 매개변수 표면 분석에 이르기까지의 과정을 다룹니다. 간단한 이벤트 기반 EMA/RSI 모델을 통해 Python에서 CSV 내보내기와 평활화 및 로컬 안정성 평가를 시연합니다. 목표는 구성의 안정적인 영역을 찾고 안정적인 구현을 위해 전방 최적화를 통해 이를 검증하는 것입니다.
새 MetaTrader 와 MQL5를 소개해드립니다 새 MetaTrader 와 MQL5를 소개해드립니다
본 문서는 MetaTrader5의 간략 리뷰입니다. 짧은 시간 내에 시스템의 모든 세부 사항을 안내해드리기는 어렵습니다 - 테스트는 2009.09.09에 시작되었습니다. 이는 상징적인 일자로, 전 이것이 행운의 숫자가 될거라 믿어 의심치않습니다. 제가 새 MetaTrader 5 터미널과 MQL5 베타버전을 받은지 며칠이 지났습니다. 아직 모든 기능을 사용해본 것은 아니지만, 벌써부터 감명깊네요.
행렬에서 모델로: MQL5에서 머신러닝 파이프라인을 구축하고 ONNX로 내보내는 방법 행렬에서 모델로: MQL5에서 머신러닝 파이프라인을 구축하고 ONNX로 내보내는 방법
이 글에서는 MetaTrader 5에서 역할 분리를 통해 조정된 머신러닝 파이프라인을 구성하는 방법을 설명합니다: Python은 모델을 학습시키고 ONNX 형식으로 내보내며 MQL5는 행렬/벡터를 통해 정규화 및 PCA를 수행하고 추론을 실행합니다. 이러한 접근 방식을 통해 모델의 입력값을 안정적이면서 검증 가능하게 만들 수 있으며 MetaTrader 5 전략 테스터는 시스템 동작을 분석하기 위한 메트릭을 제공합니다.