프로그래밍 자습서 - 페이지 4

 

C++ 함수(2020) - 재귀란 무엇입니까? 재귀 함수를 배우십시오!


C++ 함수(2020) - 재귀란 무엇입니까? 재귀 함수를 배우십시오! 프로그래밍 자습서

재귀는 함수가 자신을 호출하는 과정이며 해당 함수를 재귀 함수라고합니다.

재귀는 종종 학생들을 혼란스럽게 하는 프로그래밍 주제 중 하나입니다. 이 비디오에서는 재귀가 작동하는 방식을 설명하고 동일한 문제에 대한 서로 다른 솔루션을 비교합니다(루프 사용 및 재귀 사용).

C++ FUNCTIONS (2020) - What is recursion? Learn recursive functions! PROGRAMMING TUTORIAL
C++ FUNCTIONS (2020) - What is recursion? Learn recursive functions! PROGRAMMING TUTORIAL
  • 2020.10.28
  • www.youtube.com
Recursion is a process in which a function invokes itself, and the corresponding function is called a recursive function.Recursion is one of those topics in ...
 

C++ 함수(2020) - 일반 함수 및 템플릿이란 무엇입니까? 프로그래밍 자습서


C++ 함수(2020) - 일반 함수 및 템플릿이란 무엇입니까? 프로그래밍 자습서

안녕하세요 여러분, 제 채널에 오신 것을 환영합니다! 제 이름은 Saldina이고 프로그래밍 관련 동영상을 제작합니다. 프로그래밍에 관심이 있으신 분들은 제 채널을 구독해주시고 이 영상에 엄지척 부탁드립니다. 귀하의 지원은 제가 더 많은 사람들에게 다가가고 프로그래밍 지식을 전파하는 데 도움이 됩니다.

이 비디오에서는 C++의 제네릭과 템플릿에 대해 이야기하고 싶습니다. 제네릭을 사용하면 데이터 유형이 다른 동일한 코드를 사용할 수 있습니다. 이것은 우리가 다른 유형의 데이터와 함께 작동하는 단일 기능을 가질 수 있음을 의미합니다.

이 개념을 이해하기 위해 예를 들어 보겠습니다. 두 변수의 값을 교환하는 함수를 만들고 싶다고 가정합니다. 처음에는 두 개의 정수 변수를 교환하는 함수를 만들었지만 다른 데이터 유형과도 작동하도록 확장할 수 있습니다.

일반 함수를 생성하기 위해 C++에서 템플릿을 사용합니다. 일반적으로 "T"라고 하는 유형 이름 뒤에 "템플릿" 키워드를 사용하여 템플릿 유형을 정의합니다. 함수 내에서 특정 데이터 유형을 "T"로 바꿉니다. 이것은 함수를 일반화하고 다른 데이터 유형으로 작업할 수 있게 합니다.

더 이상 각 데이터 유형에 대해 별도의 함수를 만들 필요가 없습니다. 템플릿 함수는 스와핑 논리를 지원하는 모든 데이터 유형과 함께 사용할 수 있습니다.

함수를 테스트하기 위해 원하는 유형의 변수를 생성하고 일반 스왑 함수에 전달합니다. C++의 유형 유추 메커니즘을 사용하면 유형을 명시적으로 지정하는 것을 생략할 수 있습니다.

제네릭과 템플릿을 사용하면 코드 중복을 제거하고 더 유연하고 재사용 가능한 코드를 작성할 수 있습니다. 이 접근 방식을 사용하면 각 유형에 대해 별도의 함수를 만들지 않고도 다양한 데이터 유형을 처리할 수 있습니다.

이 비디오가 C++의 제네릭 및 템플릿 개념을 이해하는 데 도움이 되었기를 바랍니다. 도움이 되셨다면 제 채널 구독과 이 영상에 엄지척 부탁드립니다. 귀하의 지원에 감사드립니다. 시청해주셔서 감사하고 다음 영상에서 뵙겠습니다. 안녕히 가세요!

C++ FUNCTIONS (2020) - What are generic functions and templates? PROGRAMMING TUTORIAL
C++ FUNCTIONS (2020) - What are generic functions and templates? PROGRAMMING TUTORIAL
  • 2020.11.11
  • www.youtube.com
Generic programming is used to increase the efficiency of the code. The advantage of writing generic code is code reusability (which means that code that was...
 

C++에서 ATM 애플리케이션을 구축하는 방법은 무엇입니까? (초보자용)


C++에서 ATM 애플리케이션을 구축하는 방법은 무엇입니까? (초보자용) - 프로그래밍 튜토리얼 (2020)

내 채널에 오신 것을 환영합니다! 프로그래밍 관련 영상을 만드는 Saldina입니다. 관심이 있으시면 제 채널을 구독하고 이 비디오에 좋아요를 눌러주세요.

이 비디오에서는 ATM 애플리케이션을 구축하는 방법을 보여드리겠습니다. 먼저 애플리케이션의 기능을 계획해 보겠습니다. 다음이 필요합니다.

  1. 잔액 확인
  2. 보증금
  3. 돈을 인출
  4. 메뉴 보기

이제 "메뉴 표시" 기능을 구현하여 시작하겠습니다. 사용자에게 메뉴 옵션을 표시하는 "showMenu"라는 함수를 만듭니다.

메뉴를 정의한 후 "showMenu" 함수를 호출하여 표시합니다. 그런 다음 사용자가 옵션을 선택할 수 있도록 합니다.

사용자의 선택을 처리하기 위해 스위치 케이스를 사용합니다. 각각의 경우에 해당하는 작업을 수행합니다. 옵션 1의 경우 잔액을 표시합니다. 옵션 2의 경우 입금액을 요청하고 그에 따라 잔액을 업데이트합니다. 옵션 3의 경우 잔액을 업데이트하기 전에 출금 금액을 요청하고 유효한지 확인합니다. 마지막으로 옵션 4를 추가하여 프로그램을 종료합니다.

사용자가 메뉴와 반복적으로 상호 작용할 수 있도록 do-while 루프를 사용합니다. 루프는 사용자가 옵션 4를 선택할 때까지 계속됩니다.

계정 간 송금과 같은 더 많은 기능을 추가하여 프로그램을 향상시키십시오. 의견에 코드를 공유하면 검토하겠습니다. 좋아요, 구독, 벨 아이콘 누르는 것을 잊지 마세요. 다음 영상에서 만나요!

How to build an ATM application in C++? (For beginners) - PROGRAMMING TUTORIAL (2020)
How to build an ATM application in C++? (For beginners) - PROGRAMMING TUTORIAL (2020)
  • 2020.08.03
  • www.youtube.com
📚 Learn how to solve problems and build projects with these Free E-Books ⬇️C++ Lambdas e-book - free download here: https://bit.ly/freeCppE-BookEntire Objec...
 

최신 C++의 람다 식(단계별 심층 자습서)


최신 C++의 람다 식(단계별 심층 자습서)

내 채널에 오신 것을 환영합니다, 여러분! 이 비디오에서는 최신 C++의 중요한 주제인 람다라고도 하는 람다 식에 대해 설명합니다. 이전에 람다에 대해 들어본 적이 있을 것입니다. 오늘은 최신 C++에서 람다를 사용하여 더 빠르고 깔끔한 코드를 작성하기 위해 알아야 할 모든 것을 설명하겠습니다.

가장 중요한 개념을 다루겠지만 람다는 배울 것이 많은 광범위한 주제라는 점을 명심하십시오. 추가 예제와 연습을 원하는 경우 최신 C++의 람다에 중점을 둔 설명에서 무료 책을 제공하겠습니다. 부담 없이 확인해보세요.

람다 식은 최신 C++에서 도입되었으며 C++11 이상에서 사용할 수 있습니다. 주요 목적은 인라인 익명 함수를 작성할 수 있도록 하는 것입니다. 그렇다면 인라인 익명 함수란 무엇입니까? 일반 함수를 사용하면 코드를 한 번 작성하고 해당 코드가 다시 필요할 때마다 함수를 호출하여 재사용할 수 있으므로 중복 코드가 필요하지 않습니다. 일반 기능. 이름이 필요하지 않고 별도의 함수를 만들 필요가 없는 작은 코드 스니펫에 자주 사용됩니다. 람다는 간결하고, 읽기 쉽고, 실행이 빠르고, 모든 것을 한 곳에 보관하는 명명되지 않은 함수를 작성하는 방법을 제공하므로 빛을 발합니다.

이제 코드를 살펴보겠습니다. 이 데모에서는 C++ 사용자 인터페이스 애플리케이션 구축에 이상적인 IDE인 C++Builder를 사용하겠습니다. C++ 사용자 인터페이스 애플리케이션에 대해 알아보는 데 관심이 있는 경우 설명에 C++Builder를 다운로드할 수 있는 링크를 제공하겠습니다. 시작하려면 콘솔 애플리케이션을 만들어 보겠습니다. "파일"을 클릭한 다음 "새 기타"를 클릭하고 "콘솔 응용 프로그램"을 선택합니다. C++가 선택되었는지 확인하고 "확인"을 클릭합니다. 다음은 초기 코드입니다. 몇 가지를 추가해 보겠습니다.

먼저 코드 실행 후 콘솔 창을 열어두기 위해 "시스템 일시정지" 명령을 추가하겠습니다. 다음으로 입력/출력 작업을 위한 "iostream" 라이브러리를 포함하겠습니다. 이제 코드를 실행할 준비가 되었습니다. 프로그램을 실행하면 "Hello, World!" 콘솔의 메시지. 이제 람다 식의 구조를 살펴보겠습니다. 이전 코드를 제거하고 간단한 예제부터 시작하겠습니다. 람다를 생성하기 위해 다음 구문을 사용합니다: 각괄호(캡처 절), 괄호(매개 변수) 및 중괄호(함수 정의).

capture 절 내에서 람다 내에서 사용하려는 둘러싸는 범위의 변수를 지정할 수 있습니다. 지금은 캡처 절을 비워두고 매개변수에 집중하겠습니다. 괄호 안에 매개변수를 정의할 수 있습니다. 이 예에서는 "p"라는 단일 매개변수를 사용하겠습니다. 마지막으로 중괄호 안에 람다의 함수 본문을 정의합니다. 이제 문제가 발생하는 예제를 만든 다음 람다를 사용하여 해결해 보겠습니다. 우리는 벡터로 작업할 것이므로 "벡터" 라이브러리를 포함해야 합니다. "v"라는 정수 벡터를 만들고 일부 값으로 초기화하겠습니다. 다음으로 "for_each"라는 "알고리즘" 라이브러리의 유용한 함수를 소개하겠습니다. 이 함수는 벡터와 같은 범위의 요소를 반복하고 주어진 함수를 각 요소에 적용합니다.

"for_each" 함수 내에서 "v.begin()" 및 "v.end()"를 사용하여 범위를 지정합니다. 이제 각 요소로 수행할 작업을 정의해 보겠습니다. 처음에는 코드의 문제를 보여주고 해결 방법으로 람다를 소개하겠습니다. 매개변수를 인쇄하는 오버로드된 연산자가 있는 구조를 추가했습니다. "for_each" 함수가 벡터의 모든 요소를 인쇄할 것으로 기대합니다. 코드를 실행하면 예상대로 작동하지 않는 것을 볼 수 있습니다. 마지막 요소만 인쇄합니다. 이는 오버로드된 연산자가 값으로 전달되고 각 호출에 대한 매개 변수를 복사하여 잘못된 출력을 초래하기 때문입니다. 이 문제를 해결하기 위해 오버로드된 연산자를 람다 식으로 바꿀 수 있습니다. 앞에서 논의한 람다 식 구문을 복사하여 "for_each" 함수 안에 붙여넣겠습니다. 이제 코드를 다시 실행해 봅시다.

보시다시피 람다 표현식은 완벽하게 작동하며 벡터의 모든 요소를 출력합니다. 람다 식은 코드를 단순화하고 가독성을 향상시킵니다. 또한 각 호출에 올바른 매개변수가 전달되도록 하여 이전에 발생한 문제를 방지합니다. 이제 둘러싸는 범위에서 변수를 캡처하는 기능인 람다의 또 다른 유용한 기능을 살펴보겠습니다. 이 기능을 통해 람다는 변수에 액세스하고 람다 내에서 변수를 사용할 수 있습니다. 그러나 기본적으로 람다는 변수를 값으로 캡처합니다. 즉, 변수의 복사본을 만듭니다.

다음 예제에서는 "multiplier"라는 변수를 만들고 2로 설정합니다. 람다 내에서 이 변수를 사용하여 벡터의 각 요소를 곱합니다. 이번에는 데모용으로 "for_each" 함수 대신 범위 기반 for 루프를 사용하겠습니다. 코드를 실행하면 캡처된 변수 덕분에 벡터의 요소에 2가 곱해지는 것을 볼 수 있습니다. 그러나 값으로 변수를 캡처하는 데는 제한이 있습니다. 람다 내에서 캡처된 변수를 수정할 수 없습니다.

이 한계를 극복하기 위해 참조로 변수를 캡처하여 값을 수정할 수 있습니다. 람다 식에 증가 연산을 추가하여 이를 보여드리겠습니다. 이제 코드를 실행하면 벡터의 요소에 2를 곱한 다음 1씩 증가하는 것을 볼 수 있습니다. 둘러싸는 범위에서 변수를 캡처하면 유연성이 제공되고 람다가 외부 데이터와 원활하게 작동할 수 있습니다. 참조로 변수를 캡처하면 수명 관리 및 잠재적인 데이터 경합과 같은 의미가 있을 수 있음을 명심하는 것이 중요합니다. 따라서 이 기능을 사용할 때 주의를 기울이고 람다 실행 중에 캡처된 변수가 유효한지 확인하십시오.

요약하면 람다 식은 간결하고 읽기 쉬운 코드를 작성하기 위한 최신 C++의 강력한 도구입니다. 이를 통해 인라인 익명 함수를 생성할 수 있으므로 작은 코드 스니펫에 대한 별도의 함수 필요성이 줄어듭니다. Lambda는 또한 둘러싸는 범위에서 변수에 액세스하여 유연성을 제공하고 코드 재사용을 향상할 수 있습니다.

이 비디오가 최신 C++의 람다 식을 이해하는 데 도움이 되었기를 바랍니다. 질문이 있으시면 아래 의견에 자유롭게 질문하십시오. 이 비디오를 좋아하고 더 많은 C++ 자습서를 보려면 내 채널을 구독하는 것을 잊지 마십시오. 시청해 주셔서 감사합니다. 행복한 코딩하세요!

Lambda expressions in modern C++ (in depth step by step tutorial)
Lambda expressions in modern C++ (in depth step by step tutorial)
  • 2021.11.17
  • www.youtube.com
A lambda is an unnamed function that is used for short snippets of code that cannot be reused and are not worth naming. It makes the code cleaner, easier to ...
 

전문가를 위한 Visual Studio 팁 및 요령 - Visual Studio 자습서



전문가를 위한 Visual Studio 팁 및 요령 - Visual Studio 자습서

여러분, 안녕하세요! 제 이름은 Leslie Richardson이고 Visual Studio 디버깅 및 진단 팀에서 프로그램 관리자로 일하고 있습니다. 이 비디오에서는 Autos, Locals 및 Watch 창에 대한 검색 기능이라는 Visual Studio 2019의 새로운 기능에 대해 설명하게 되어 기쁩니다. 이 기능은 디버깅 경험을 크게 향상시키고 귀중한 시간을 절약하여 생산성을 높이도록 설계되었습니다.

이 기능을 시연하기 위해 Visual Studio 2019에서 .NET Core 애플리케이션이 열려 있는 시나리오를 고려해 보겠습니다. 이 애플리케이션 내에는 여러 레시피 개체를 포함하는 목록이 있습니다. 제가 직면한 문제는 이 목록 내에서 특정 레시피를 찾는 것인데, 이는 특히 목록에 61개의 개체가 포함된 경우 상당히 지루할 수 있습니다. 각 개체를 수동으로 확장하고 제목 속성을 찾고 "샐러드"와 같은 내 검색 기준과 일치하는지 확인하는 것은 시간이 많이 걸리는 작업입니다.

이 프로세스를 단순화하기 위해 "디버거 디스플레이"라는 기능을 활용하겠습니다. 이 기능을 사용하면 Autos, Locals 및 Watch 창을 포함하여 다양한 디버거 창에 개체가 표시되는 방식을 사용자 지정할 수 있습니다. 개체의 클래스 정의에 "디버거 표시" 특성을 추가하여 이러한 창의 값 열에 표시되어야 하는 속성을 지정할 수 있습니다. 이 경우 각 레시피를 제목별로 보고 싶기 때문에 레시피 제목 속성을 표시하도록 "디버거 표시" 특성을 설정합니다.

이제 레시피 목록을 다시 확장하면 각 개체의 제목을 즉시 볼 수 있으므로 각 개체를 개별적으로 확장하지 않고도 원하는 레시피를 훨씬 쉽게 찾을 수 있습니다. 이는 상당한 개선 사항이지만 61개 항목으로 인해 내가 관심 있는 특정 레시피를 찾는 데 여전히 시간이 걸릴 수 있습니다. 여기에서 감시 창의 검색 기능이 유용합니다.

목록을 수동으로 스크롤하거나 확장하는 대신 제공된 검색 기능을 사용할 수 있습니다. "샐러드"와 같은 검색어를 입력하고 Enter 키를 누릅니다. Visual Studio는 키워드의 첫 번째 항목으로 즉시 이동하므로 많은 시간과 노력을 절약할 수 있습니다. "다음 찾기" 단추를 사용하여 Visual Studio에서 찾은 다른 일치 항목을 탐색할 수도 있습니다. 일치 목록을 앞뒤로 탐색하기 위해 검색 깊이를 결정하는 검색 단계 매개변수를 조정할 수 있습니다.

검색 기능 외에도 C#, F# 또는 Visual Basic을 사용하는 사용자와 같은 관리 코드 사용자가 디버거 표시 기능을 사용할 수 있다는 점도 언급하고 싶습니다. C++ 사용자의 경우 NATVIS라는 동등한 기능을 사용할 수 있습니다. NATVIS를 사용하면 디버거 창에 표시할 속성을 정의할 수 있는 별도의 XML 파일을 만들어야 합니다.

이 설명이 도움이 되었기를 바랍니다. 시청 해주셔서 감사합니다!

이제 Visual Studio의 인터페이스를 보다 체계적으로 만들고 성능을 향상시키는 방법을 살펴보겠습니다. Visual Studio에서 솔루션을 열면 솔루션 탐색기에서 마지막으로 사용한 문서의 상태, 스크롤 위치 및 확장/축소된 섹션을 기억합니다. 이는 유용할 수 있지만 CPU 주기도 소비하므로 항상 바람직한 것은 아닙니다. 새로 시작하고 성능을 개선하기 위해 일부 설정을 변경할 수 있습니다.

도구 > 옵션 메뉴의 프로젝트 및 솔루션 섹션에는 고려해야 할 두 가지 설정이 있습니다. "솔루션 로드 시 문서 다시 열기" 옵션은 이전에 열었던 문서를 기억하고 "솔루션 로드 시 솔루션 탐색기 프로젝트 계층 구조 상태 복원" 옵션은 솔루션 탐색기의 확장/축소 상태를 기억합니다. 이러한 옵션을 선택 취소하면 Visual Studio는 솔루션을 열 때 이전 상태를 복원하지 않습니다. 대신 솔루션 탐색기에서 열려 있는 문서나 확장된 섹션 없이 깨끗한 상태로 시작합니다. 이를 통해 성능을 개선하고 각 솔루션을 새롭게 시작할 수 있습니다.

Visual Studio에서 Git으로 작업할 때 생산성과 공동 작업을 향상시킬 수 있는 몇 가지 기능이 있습니다. Git 변경 창은 Git 리포지토리의 포괄적인 보기를 제공하며 Visual Studio 내에서 직접 변경 내용을 준비, 커밋 및 푸시할 수 있습니다. 보기 > Git 변경으로 이동하여 이 창에 액세스할 수 있습니다. 또한 Visual Studio는 서로 다른 코드 버전 간의 차이점을 강조 표시하는 기본 제공 Git diff 도구를 제공합니다. 솔루션 탐색기에서 파일을 마우스 오른쪽 버튼으로 클릭하고 "수정되지 않은 파일과 비교" 또는 "최신 파일과 비교"를 선택하여 이 기능에 액세스할 수 있습니다.

Visual Studio의 또 다른 유용한 기능은 코드 리팩터링 기능입니다. 리팩토링은 동작을 변경하지 않고도 코드의 구조와 가독성을 개선하는 데 도움이 됩니다. Visual Studio는 변수 또는 메서드 이름 바꾸기, 별도의 메서드 또는 클래스로 코드 추출, 코드 블록 재구성과 같은 다양한 리팩터링 옵션을 제공합니다. 이러한 리팩터링 옵션에 액세스하려면 리팩터링하려는 코드를 마우스 오른쪽 버튼으로 클릭하고 상황에 맞는 메뉴에서 "리팩터링"을 선택하십시오. Ctrl + R, Ctrl + R과 같은 일반적인 리팩터링 작업에 키보드 단축키를 사용하여 기호 이름을 바꿀 수도 있습니다.

코딩 환경을 더욱 향상시키기 위해 Visual Studio에서 코드 조각을 활용할 수 있습니다. 코드 조각은 바로 가기를 입력하고 Tab 키를 눌러 코드에 빠르게 삽입할 수 있는 미리 정의된 코드 템플릿입니다. Visual Studio는 다양한 프로그래밍 언어 및 프레임워크에 대한 광범위한 기본 제공 코드 조각을 제공합니다. 반복적인 코딩 작업을 자동화하기 위해 고유한 사용자 정의 코드 스니펫을 생성할 수도 있습니다. 코드 조각에 액세스하고 관리하려면 도구 > 코드 조각 관리자로 이동합니다.

디버깅은 개발 프로세스의 필수 부분이며 Visual Studio는 강력한 디버깅 기능을 제공합니다. 코드에 중단점을 설정하여 실행을 일시 중지하고 변수 및 개체의 상태를 검사할 수 있습니다. 디버깅하는 동안 조사식 창을 사용하여 특정 변수 또는 식의 값을 모니터링할 수 있습니다. 직접 실행 창을 사용하면 디버깅하는 동안 코드를 실행하고 식을 평가할 수 있습니다. 특정 조건이 충족될 때만 트리거하는 조건부 중단점과 디버거를 일시 중지하지 않고 출력 창에 메시지를 인쇄하는 추적점을 활용할 수도 있습니다.

Visual Studio는 또한 코드의 품질과 정확성을 보장하는 데 중요한 단위 테스트를 지원합니다. MSTest, NUnit 또는 xUnit과 같은 다양한 테스트 프레임워크를 사용하여 단위 테스트를 만들 수 있습니다. Visual Studio는 솔루션에서 사용 가능한 모든 테스트를 표시하고 개별적으로 또는 그룹으로 테스트를 실행하거나 디버그할 수 있는 테스트 탐색기 창을 제공합니다. 속성을 사용하여 테스트 방법 및 어설션을 정의하여 예상 결과를 확인할 수 있습니다. 또한 Visual Studio는 코드가 단위 테스트에서 얼마나 많이 커버되는지 보여주는 코드 커버리지 분석을 제공합니다.

대규모 프로젝트나 솔루션으로 작업할 때 코드베이스를 탐색하고 이해하는 것이 어려울 수 있습니다. Visual Studio는 코드 탐색 및 이해를 지원하는 여러 기능을 제공합니다. 솔루션 탐색기를 사용하면 솔루션 구조를 탐색하고 특정 파일이나 클래스로 빠르게 이동할 수 있습니다. 탐색 기능(Ctrl + ,)을 사용하여 솔루션 내에서 기호, 파일 또는 유형을 검색할 수도 있습니다. CodeLens 기능은 편집기 내에서 직접 참조, 변경 사항 및 테스트 범위와 같은 코드에 대한 추가 정보를 표시합니다.

웹 개발을 위해 Visual Studio는 HTML, CSS 및 JavaScript와 같은 널리 사용되는 웹 기술에 대한 뛰어난 지원을 제공합니다. HTML 편집기는 IntelliSense, 코드 서식, 편집기 내에서 HTML 페이지를 직접 미리 볼 수 있는 기능과 같은 기능을 제공합니다. CSS 편집기는 색상 선택기, CSS 속성에 대한 IntelliSense, CSS 변경 내용의 실시간 미리 보기를 포함하여 유사한 기능을 제공합니다. Visual Studio는 또한 JavaScript 디버깅을 지원하므로 중단점을 설정하고, 변수를 검사하고, 코드를 단계별로 실행하여 문제를 식별하고 수정할 수 있습니다.

Visual Studio에는 개발 환경을 향상할 수 있는 확장 및 플러그인의 방대한 에코시스템이 있습니다. 이러한 확장은 특정 프레임워크 또는 플랫폼을 위한 추가 기능, 언어 지원 및 도구를 제공합니다. 확장 > 확장 관리로 이동하여 Visual Studio 내에서 직접 확장을 찾아보고 설치할 수 있습니다. 널리 사용되는 일부 확장 프로그램에는 고급 코드 분석 및 리팩터링 도구를 제공하는 ReSharper와 가벼운 크로스 플랫폼 코드 편집기를 제공하는 Visual Studio Code가 포함됩니다.

협업 프로젝트에서 작업할 때 Visual Studio는 Azure DevOps 및 GitHub와 같은 협업 플랫폼과의 통합을 제공합니다. Visual Studio 프로젝트를 원격 Git 리포지토리에 쉽게 연결하고 변경 사항 푸시, 풀 및 병합과 같은 일반적인 Git 작업을 수행할 수 있습니다. Visual Studio는 코드 검토, 작업 항목 추적, 지속적인 통합 및 배포 워크플로를 위한 도구도 제공합니다.

Visual Studio는 .NET, C++, Python, JavaScript 등을 비롯한 광범위한 프로그래밍 언어 및 프레임워크를 지원합니다. IntelliSense, 코드 조각, 각 언어에 맞는 디버깅 기능과 같은 언어별 기능을 제공합니다. 선호하는 프로그래밍 언어에 대한 개발 경험을 더욱 향상시키기 위해 언어별 확장 및 SDK를 설치할 수 있습니다.

성능 최적화 및 문제 해결을 위해 Visual Studio는 애플리케이션의 병목 현상 및 메모리 누수를 식별하는 데 도움이 되는 프로파일링 도구를 제공합니다. 성능 프로파일러를 사용하면 코드의 성능을 분석하고 최적화할 수 있는 영역을 식별할 수 있습니다. 메모리 프로파일러는 애플리케이션의 메모리 관련 문제를 감지하고 진단하는 데 도움이 됩니다. 이러한 프로파일링 도구는 코드를 최적화하고 애플리케이션 성능을 개선하는 데 도움이 되는 자세한 보고서와 통찰력을 제공합니다.

Visual Studio는 또한 Android 및 iOS와 같은 플랫폼을 위한 모바일 앱 개발을 지원합니다. Xamarin 또는 React Native와 같은 프레임워크를 사용하여 플랫폼 간 모바일 앱을 만들 수 있습니다. Visual Studio는 사용자 인터페이스를 디자인하고, 모바일 앱을 디버깅하고, 에뮬레이터 또는 물리적 장치에 배포하기 위한 도구를 제공합니다. 백엔드 통합 및 저장을 위해 Azure Mobile Apps와 같은 클라우드 서비스를 활용할 수도 있습니다.

기존 데스크톱 및 웹 애플리케이션 외에도 Visual Studio는 IoT(사물 인터넷) 애플리케이션 개발을 지원합니다. Visual Studio를 사용하여 Raspberry Pi, Arduino 및 기타 IoT 디바이스와 같은 디바이스용 애플리케이션을 빌드할 수 있습니다. Visual Studio IoT 개발 도구는 IoT 시나리오를 위한 프로젝트 템플릿, 디버깅 지원 및 배포 옵션을 제공합니다.

Visual Studio는 또한 Azure와 같은 널리 사용되는 클라우드 플랫폼에 대한 통합과 함께 클라우드 개발 기능을 제공합니다. Visual Studio 내에서 직접 클라우드 리소스를 생성, 관리 및 배포할 수 있습니다. 클라우드 애플리케이션 구축 및 배포, 클라우드 서비스와의 통합, 클라우드 리소스 모니터링을 위한 도구를 제공합니다.

이는 Visual Studio가 개발자에게 제공하는 많은 기능 중 일부에 불과합니다. 광범위한 개발 요구 사항과 워크플로를 충족할 수 있는 강력하고 다재다능한 IDE입니다. 소규모 프로젝트에서 작업하든 대규모 엔터프라이즈 솔루션에서 작업하든 관계없이 Visual Studio는 개발 프로세스를 간소화하고 생산성을 높일 수 있는 도구와 기능을 제공합니다.

Visual Studio Tips and Tricks for Professionals - Visual Studio Tutorial
Visual Studio Tips and Tricks for Professionals - Visual Studio Tutorial
  • 2020.07.01
  • www.youtube.com
Learn to use Visual Studio like pro from creating layouts to keyboard shortcuts.C++ tutorial: https://youtu.be/mUQZ1qmKlLYJava tutorial : https://youtu.be/Wq...
 

20분 안에 MetaTrader 5용 코드 완료 EA!



20분 안에 MetaTrader 5용 코드 완료 EA!

오늘 MetaTrader 거래 플랫폼을 위한 첫 번째 EA(Expert Advisor) 기록을 시작하게 되어 기쁩니다. 이 EA는 MetaTrader를 위한 거래 시스템으로 설계되었으며, 비디오에서는 성능을 평가하기 위해 빠른 백테스트도 수행할 것입니다.

시작하려면 MetaTrader 플랫폼을 시작하고 "도구"를 클릭하고 드롭다운 메뉴에서 "MetaQuotes 언어 편집기"를 선택하여 MetaEditor에 액세스합니다. MetaEditor는 MetaTrader에 대한 스크립트 및 지표뿐만 아니라 전문 고문을 만드는 곳입니다.

새로운 Expert Advisor를 생성하려면 MetaEditor의 왼쪽 상단 모서리에 있는 "New" 버튼을 클릭합니다. 나타나는 마법사에서 첫 번째 옵션을 선택하고 "다음"을 클릭합니다. 그런 다음 EA에 "First EA"와 같은 이름을 지정하고 "다음"을 다시 클릭할 수 있습니다. 추가 옵션 선택을 건너뛰고 "마침"을 클릭하여 진행합니다.

이제 EA의 초기 코드가 있습니다. 먼저 코드 자체에 기능을 제공하지 않는 회색 주석과 같은 불필요한 주석을 제거하여 코드를 정리합니다. 기본 설정에 따라 처음 다섯 줄과 기타 불필요한 줄을 삭제합니다.

코딩을 시작하기 전에 잠시 시간을 내어 EA가 무엇을 하길 바라는지 생각해 봅시다. 이 비디오의 목표는 EA가 특정 시간에 구매 거래를 시작하고 하루 중 미리 정해진 다른 시간에 종료하도록 하는 것입니다. 이를 달성하려면 두 개의 입력 변수가 필요합니다. 하나는 시작 시간이고 다른 하나는 종료 시간입니다.

MetaEditor로 돌아가서 "Variables"라는 새 섹션에서 이 두 입력 변수를 선언합니다. "input" 키워드를 사용하여 이러한 변수가 코드 외부에서 변경될 수 있음을 지정합니다. 특정 시간 값을 입력하려고 하므로 유형을 정수로 설정합니다. 예를 들어 변수 "openHour" 및 "closeHour"의 이름을 지정할 수 있습니다.

변수를 선언한 후 코드를 컴파일하여 오류가 없는지 확인합니다. 모든 것이 정확하면 도구 상자에 오류 메시지가 없음을 알 수 있습니다.

다음으로 MetaTrader 플랫폼으로 다시 전환하고 EA를 차트로 드래그합니다. "Expert Advisors" 아래의 네비게이터에서 EA의 이름, 버전 및 링크를 볼 수 있습니다. EA를 확장하면 코드를 수정하지 않고도 입력 변수에 액세스하고 해당 값을 변경할 수 있습니다.

이제 가격이 변할 때마다 호출되는 "OnTick" 기능으로 넘어가겠습니다. 사용자가 지정한 오픈 시간에 도달했는지 확인하고 싶습니다. 이렇게 하려면 심볼과 서버의 현재 시간을 검색해야 합니다. "datetime" 유형의 "time"이라는 변수를 만들고 "TimeCurrent" 함수를 사용하여 현재 시간을 할당합니다.

"time" 변수에 저장된 현재 시간으로 이제 오픈 시간과 일치하는지 확인할 수 있습니다. "if" 문을 사용하여 "openHour" 변수를 현재 시간의 시간 구성 요소("time.hour")와 비교합니다. 조건이 참이면 "if" 블록에 들어갑니다.

"if" 블록 내에서 "OrderSend" 기능을 사용하여 포지션을 엽니다. 기호, 거래 방향(매수), 랏 크기(1랏) 및 매도 가격을 매개 변수로 지정합니다. 또한 손절매를 설정하고 선호도에 따라 이익을 얻습니다.

코드를 컴파일하고 MetaTrader 전략 테스터를 사용하여 백테스트를 실행한 후 EA가 지정된 오픈 시간에 포지션을 오픈하는 것을 관찰합니다. 그러나 "OnTick" 기능을 다시 트리거하는 후속 가격 변동으로 인해 여러 포지션이 열린 것으로 나타났습니다.

여러 포지션이 열리는 것을 방지하기 위해 "isTradeOpen"이라는 부울 변수를 도입하여 거래가 이미 열려 있는지 추적합니다. 처음에는 "isTradeOpen" 값을 false로 설정했습니다. 새 위치를 열기 전에 "isTradeOpen"이 거짓인지 확인합니다. 그렇다면 포지션 오픈을 진행하고 "isTradeOpen" 값을 true로 설정합니다. 이렇게 하면 "OnTick" 기능이 여러 번 트리거되더라도 이미 열려 있는 거래가 없는 경우에만 새 위치가 열립니다.

이 논리를 구현한 후 코드를 다시 컴파일하고 백테스트를 실행합니다. 이번에는 EA가 지정된 오픈 시간에 포지션을 오픈하고 이전 포지션이 마감될 때까지 추가 포지션을 오픈하지 않는 것을 관찰합니다.

지정된 마감 시간에 거래를 마감하려면 "OnTick" 기능에 또 다른 확인 기능을 도입해야 합니다. 포지션을 연 후 현재 시간을 사용자가 지정한 종료 시간과 비교합니다. 일치하면 "if" 블록을 입력합니다.

"if" 블록 내에서 "OrderClose" 기능을 사용하여 거래를 청산합니다. 청산할 포지션의 티켓 번호와 로트 크기 및 입찰가를 매개변수로 제공합니다. 또한 원하는 경우 손절매 및 이익 실현 값과 같은 추가 매개변수를 설정할 수 있습니다.

코드를 다시 컴파일하고 백테스트를 실행하여 지정된 마감 시간에 거래가 마감되었는지 확인합니다. 백 테스트 중에 거래 내역을 확인하여 지정된 시간에 따라 포지션이 열리고 닫히는지 확인할 수 있습니다.

MetaTrader 거래 플랫폼을 위한 첫 번째 EA를 성공적으로 만들었습니다. EA는 특정 시작 시간에 구매 거래를 시작하고 미리 결정된 종료 시간에 종료하도록 설계되었습니다. 코드를 수정하지 않고 개폐 시간을 사용자 정의할 수 있도록 입력 변수를 구현했습니다. 확인 및 변수를 도입하여 한 번에 하나의 거래만 개시되고 지정된 마감 시간에 마감되도록 합니다.

Code complete EA for MetaTrader 5 in 20 Minutes!
Code complete EA for MetaTrader 5 in 20 Minutes!
  • 2022.06.27
  • www.youtube.com
Program your first EA for MetaTrader. I will show you how you can easily code your first Expert Advisor or trading system in Mql5.As an algo trader I develop...
 

이동 평균 크로스오버 EA mql5 프로그래밍



이동 평균 크로스오버 EA mql5 프로그래밍

안녕하세요, Toby입니다. 오늘 영상에서는 MetaTrader 5를 위한 간단한 이동 평균 교차 전문 고문을 코딩하는 방법을 보여드리겠습니다. 시작하겠습니다.

먼저 전문가 고문이 수행할 작업을 정의해 보겠습니다. 빠른 이동 평균(파란색 선)이 느린 이동 평균(빨간색 선) 위로 교차할 때 EA가 매수 포지션을 열고 빠른 이동 평균이 느린 이동 평균 아래로 교차할 때 매도 포지션을 열기를 원합니다. 또한 손절매를 추가하고 이동 평균 기간에 대한 입력 변수뿐만 아니라 EA에 이익을 얻을 것입니다.

코딩을 시작하려면 MetaTrader 5에서 MetaEditor를 엽니다. 템플릿을 사용하여 새 전문가 고문을 만들고 이름을 "이동 평균"으로 지정합니다. 불필요한 줄과 주석을 제거하여 코드를 정리합니다. 다음으로 빠르고 느린 이동 평균 기간에 대한 입력 변수를 추가합니다. 이러한 변수에 대한 기본값을 설정하고 EA 설정의 입력 탭에 표시합니다.

유효한 값이 입력되었는지 확인하려면 OnInit 함수에서 사용자 입력을 확인하십시오. 입력이 유효하지 않은 경우(0 또는 음수) 경고 메시지를 표시하고 EA를 중지합니다. ma 함수를 사용하여 빠르고 느린 이동 평균에 대한 핸들을 만듭니다. 각 이동 평균에 대한 기호, 기간 및 입력 변수를 설정합니다. 핸들 생성이 성공했는지 확인합니다. 그렇지 않은 경우 경고 메시지를 표시하고 EA를 중지합니다. 지표 값을 저장하기 위한 전역 변수를 만듭니다. 빠르고 느린 버퍼에 동적 배열을 사용하십시오. OnTick 함수에서 최신 지표 값을 버퍼에 복사하고 충분한 데이터가 있는지 확인합니다. 그렇지 않은 경우 돌아가서 경고 메시지를 표시합니다.

화면에 표시기 값을 인쇄하여 모든 것이 올바르게 작동하는지 확인하십시오. 주석 기능을 사용하여 빠르고 느린 이동 평균 값을 표시합니다.

Strategy Tester에서 EA를 테스트하여 지표 값이 올바르게 표시되는지 확인하십시오. 이제 이동 평균의 교차를 확인할 수 있습니다. 빠른 이동 평균이 막대 1에서 느린 이동 평균보다 낮고 막대 0에서 느린 이동 평균보다 높으면 크로스오버가 발생합니다. 이 경우 구매 포지션을 엽니다.

위치를 열려면 CTrade 클래스를 사용하십시오. 거래 변수를 정의하고 필요한 조치를 진행합니다. 코드를 컴파일하고 Strategy Tester에서 EA를 테스트하여 교차 조건이 올바르게 작동하고 그에 따라 포지션이 열리는지 확인합니다.

여기까지가 MetaTrader 5의 이동 평균 교차 전문 고문을 코딩하기 위한 것입니다. 그런 다음 trade.Buy 기능을 사용하여 구매 포지션을 열 수 있습니다. 당사는 고정된 값이거나 위험 관리 전략에 따라 포지션의 볼륨을 지정합니다. 지금은 0.1랏의 고정 볼륨을 사용하겠습니다. 이제 매도 포지션을 확인하기 위한 조건을 추가해야 합니다. 빠른 이동 평균이 막대 1의 느린 이동 평균 위에 있고 현재 막대에 대한 아래에 있으면 반대 방향으로 크로스오버가 있는 것입니다. 이 경우 매도 포지션을 열고 싶습니다. 이를 위해 trade.Sell 기능을 사용할 수 있습니다.

마지막으로 손절매를 추가하고 포지션에 이익을 취할 수 있습니다. trade.SetStopLoss 및 trade.SetTakeProfit 기능을 사용합니다. 이 예에서는 손절매를 100핍으로 설정하고 이익을 200핍으로 설정해 보겠습니다. 이제 간단한 이동 평균 크로스오버 전문 고문을 위한 완전한 코드가 있습니다. MetaTrader 5 플랫폼에서 컴파일하고 테스트할 수 있습니다.

오류 없이 코드를 컴파일하면 전문 고문을 저장하고 MetaTrader 5에서 사용할 수 있습니다. 실제 현금으로 사용하기 전에 전문가 고문을 백 테스트하고 최적화하는 것을 잊지 마십시오.

Moving Average Crossover EA mql5 Programming
Moving Average Crossover EA mql5 Programming
  • 2022.09.06
  • www.youtube.com
Today I will show you how to code a simple Moving Average Crossover EA for Metatrader 5. If you are new to mql5, just follow my steps and we will create a f...
 

범위 브레이크아웃 EA mql5 프로그래밍 | 파트 1/4



범위 브레이크아웃 EA mql5 프로그래밍 | 파트 1/4

안녕하세요 Toby입니다. 오늘 영상에서는 MetaTrader 5에 대한 시간 범위 브레이크아웃 전문 고문(EA)을 코딩하는 방법을 보여드리겠습니다. 목표는 영상에 표시된 전략과 유사한 결과를 달성하는 것입니다.

먼저 EA의 논리에 대해 논의해 보겠습니다. 특정 시간에 시작하여 다른 시간에 끝나는 간단한 시간 범위를 정의합니다. EA는 이 범위 내에서 최고 및 최저 가격을 저장합니다. 가격이 범위 이후 최고가를 돌파하면 EA는 매수 거래에 들어갑니다. 반대로 가격이 범위 아래로 떨어지면 EA는 매도 거래에 들어갑니다. 또한 모든 포지션을 청산할 마감 시간을 설정할 것입니다. 이 간단한 논리가 EA를 안내할 것입니다.

코딩을 시작하려면 MetaEditor를 열고 새로운 전문 고문을 만드십시오. 개인 취향에 따라 템플릿 코드를 정리하고 불필요한 줄을 제거합니다.

다음으로 시작 시간, 범위 기간, 종료 시간, 로트 크기 및 매직 번호에 대한 입력 변수를 정의합니다. 이러한 입력을 통해 사용자는 EA의 동작을 사용자 정의할 수 있습니다. 잘못된 입력을 방지하기 위해 입력 값을 확인하는 것이 중요합니다. 예를 들어, 매직 넘버가 0이나 음수가 아니고, 로트가 음수가 아니며, 시작 시간과 기간이 유효한 범위 내에 있고, 종료 시간이 시작 시간에 범위 기간을 더한 것과 같지 않도록 할 수 있습니다.

입력 변수를 정의하고 값을 확인한 후 전역 변수 생성으로 이동합니다. 이러한 변수는 EA 전체에서 사용됩니다. 범위와 관련된 변수를 "범위 구조"라는 구조로 그룹화합니다. 이 구조에는 시작 시간, 종료 시간, 종료 시간, 고가 및 저가에 대한 변수와 진입 플래그, 높은 돌파 및 낮은 돌파가 포함됩니다.

또한 변수의 초기 값을 미리 정의하는 구조의 생성자를 정의합니다. 이렇게 하면 기본값으로 구조를 초기화하는 데 도움이 됩니다. 또한 목적을 설명하기 위해 각 변수 뒤에 주석을 추가합니다.

코드를 컴파일하여 오류를 확인하고 모든 것이 올바르게 작동하는지 확인합니다.

마지막으로 MetaTrader 5 "MqlTick" 유형의 "MqlTick" 및 "last_tick"과 같은 몇 가지 변수를 더 생성합니다. 또한 거래 관련 작업을 처리하기 위해 "CTrade" 유형의 변수를 정의합니다.

이 시점에서 우리는 EA에 필요한 변수와 구조를 설정했습니다. 다음 부분에서는 "OnTick" 기능에서 EA의 실제 논리를 코딩하는 방법을 살펴보겠습니다. 비디오의 다음 부분에서는 OnTick 기능에서 Expert Advisor의 실제 논리를 코딩하는 데 중점을 둘 것입니다. 그러나 진행하기 전에 먼저 지금까지 수행한 작업을 검토해 보겠습니다.

우리는 범위의 시작 시간, 기간, 종료 시간, 로트 크기 및 매직 번호와 같은 EA에 대한 입력 변수를 정의하는 것으로 시작했습니다. 또한 사용자가 이러한 입력에 유효한 값을 입력했는지 확인하기 위해 입력 유효성 검사를 추가했습니다. 다음으로 시작 시간, 종료 시간, 종료 시간, 범위의 상한 및 하한, 진입 플래그, 높은 돌파 및 낮은 돌파 등 범위와 관련된 변수를 저장하기 위해 rangeStructure라는 구조를 만들었습니다. 그런 다음 rangeStructure에 대한 생성자를 정의하여 기본값으로 변수를 초기화했습니다. 또한 rangeStructure의 인스턴스, 현재 및 이전 틱을 저장하기 위한 MqlTick 유형의 두 변수, 거래 작업을 처리하기 위한 CTrade 객체를 포함한 일부 전역 변수를 선언했습니다.

이제 OnTick 함수 구현으로 이동하여 EA의 주요 로직을 코딩해 보겠습니다. 다음은 비디오의 연속입니다. OnTick 함수에서 먼저 SymbolInfoTick 함수를 사용하여 현재 틱 정보를 업데이트합니다. 이를 통해 입찰 및 요청 가격과 틱 시간에 액세스할 수 있습니다. 다음으로 현재 틱 시간이 사용자가 정의한 범위 내에 있는지 확인합니다. 이를 위해 현재 틱 시간을 범위의 시작 시간 및 종료 시간과 비교합니다. 틱 시간이 범위 내에 있으면 flagEntry를 true로 설정하여 범위 내에 있음을 나타냅니다.

그런 다음 높은 탈주를 확인합니다. 현재 틱 가격이 범위의 이전 고점을 초과하고 flagHighBreakout이 거짓이면 매수 거래를 시작합니다. 반복되는 항목을 피하기 위해 flagHighBreakout을 true로 설정합니다. 마찬가지로, 우리는 낮은 탈주를 확인합니다. 현재 틱 가격이 범위의 이전 저점 아래로 떨어지고 flagLowBreakout이 거짓이면 매도 거래를 시작합니다. 여러 항목을 방지하기 위해 flagLowBreakout을 true로 설정했습니다. 마지막으로 현재 틱 시간이 마감 시간과 같은지 확인합니다. 그렇다면 trade.CloseAll 메서드를 사용하여 열려 있는 모든 포지션을 청산합니다.

이것이 EA의 기본 논리입니다. 물론 손절매 및 이익 실현 수준, 자금 관리 규칙 및 추가 거래 필터와 같이 기능을 향상시키기 위해 추가할 수 있는 추가 요소가 있습니다. 하지만 이번 영상에서는 시간 범위 돌파 전략의 핵심 개념에 집중했습니다.

이 EA는 시작점 역할을 하기 위한 것이며 요구 사항 및 거래 선호도에 따라 추가로 사용자 정의할 수 있습니다.

비디오의 다음 부분에서는 논의된 논리를 구현하는 데 필요한 코드를 추가하여 코딩 프로세스를 계속 진행합니다. 이 비디오가 도움이 되었다면 좋아요를 남기고 내 채널을 구독하여 향후 비디오를 업데이트하는 것을 잊지 마십시오. 질문이 있거나 도움이 필요한 경우 언제든지 의견을 남겨 주시면 기꺼이 도와 드리겠습니다. 시청해주셔서 감사하고 다음 영상에서 뵙겠습니다. 안녕!

Range Breakout EA mql5 Programming | Part 1/4
Range Breakout EA mql5 Programming | Part 1/4
  • 2022.09.25
  • www.youtube.com
Today I will show you how to code a Time Range Breakout EA for Metatrader 5. If you are new to mql5, just follow my steps and we will create a time range br...
 

범위 브레이크아웃 EA mql5 프로그래밍| 파트 2/4



범위 브레이크아웃 EA mql5 프로그래밍| 파트 2/4

안녕하세요, 저는 Toby입니다. 오늘 동영상에서는 MetaTrader 5에 대한 시간 범위 브레이크아웃 EA를 계속 코딩할 것입니다. 아직 첫 번째 동영상을 보지 않았다면 여기에서 링크를 찾을 수 있습니다. 이전 영상에서는 EA의 논리와 우리가 코딩하려는 내용에 대해 설명했습니다.

이제 MetaEditor로 전환하고 코딩을 재개하겠습니다. 우리는 우리 심볼의 가격이 바뀔 때마다 호출되는 OnTick 기능에 대해 작업할 것입니다. 이 함수에서는 범위 계산 및 브레이크아웃 확인을 코딩합니다. 먼저 기호의 현재 눈금을 가져와야 합니다. 우리는 currentTick이라는 변수에 현재 틱을 저장하고 이전 틱을 저장하는 변수 previousTick도 있습니다.

다음으로 새 범위를 계산해야 하는지 확인합니다. 새로운 범위를 계산하기 위한 몇 가지 조건이 있습니다.

  1. 범위 종료 시간이 설정되어 있고 현재 틱 시간이 범위 종료 시간보다 크거나 같으면 새 범위를 계산합니다.

  2. 높은 브레이크아웃 플래그와 낮은 브레이크아웃 플래그가 모두 true로 설정된 경우 새 범위를 계산합니다.

  3. EA를 처음 실행하고 아직 범위를 계산하지 않은 경우 새 범위를 계산합니다.

  4. 범위 종료 시간이 0이 아니고 범위 이후에 있고 범위에 들어가지 않은 경우 새 범위를 계산합니다.

또한 열려 있는 직책이 있는지 확인합니다. 열린 포지션이 없으면 새로운 범위를 계산합니다.

새 범위를 계산해야 한다고 판단되면 CalculateRange 함수를 호출합니다. 이 함수에서는 모든 범위 변수를 기본 상태로 재설정합니다. 그런 다음 하루의 시작을 가져오고 입력 범위 시작 시간(분)을 추가하여 범위 시작 시간을 계산합니다. 계산된 시작 시간이 이미 지난 경우 토요일과 일요일을 주말로 간주하여 다음 날로 이동합니다. 마찬가지로 입력 범위 기간(분)을 시작 시간에 추가하여 범위 종료 시간을 계산합니다. 종료 시간이 토요일 또는 일요일인 경우 다음 유효한 날짜로 이동합니다.

또한 시작 시간 및 종료 시간 계산과 동일한 논리를 사용하여 범위 종료 시간을 계산합니다. 계산된 시간을 차트에 시각화하기 위해 ObjectCreate 함수를 사용하여 객체를 생성합니다. 범위 시작 시간에 대한 수직선 개체를 만들고 이전에 그린 개체를 삭제합니다.

이것은 지금까지 우리가 이룬 진전이며 다음 비디오에서 코딩을 계속할 것입니다.

Range Breakout EA mql5 Programming| Part 2/4
Range Breakout EA mql5 Programming| Part 2/4
  • 2022.10.01
  • www.youtube.com
Today I will show you how to code a Time Range Breakout EA for Metatrader 5. If you are new to mql5, just follow my steps and we will create a time range br...
 

범위 브레이크아웃 EA mql5 프로그래밍 | 파트 3/4


범위 브레이크아웃 EA mql5 프로그래밍 | 파트 3/4

안녕하세요, 저는 Toby입니다. 오늘 비디오에서는 브레이크아웃 EA를 계속 코딩할 것입니다. 이전 비디오에서 범위 시작 시간, 종료 시간 및 종료 시간을 이미 계산했습니다. 이제 우리는 범위 상한과 하한 범위, 탈주 조건 및 위치 폐쇄를 코딩하려고 합니다. 이전 비디오를 보지 않았다면 아래 설명에서 링크를 찾을 수 있습니다. MetaEditor로 이동하여 코딩을 시작하겠습니다.

먼저 OnTick 기능으로 이동합니다. 범위 내에 있는지 확인하고 높은 값과 낮은 값을 저장하는 것으로 시작합니다. if 문을 사용하여 현재 시간이 범위 시작 시간과 종료 시간 사이에 있는지 확인합니다. 그렇다면 그에 따라 높은 값과 낮은 값을 업데이트합니다. 또한 항목 플래그를 true로 설정하여 범위 내에 틱이 있음을 나타냅니다. 그런 다음 상한 및 하한 범위에 대한 차트 개체를 업데이트합니다.

다음으로 DrawObject 함수로 이동하여 범위의 높은 수준과 낮은 수준을 그립니다. 종료 시간 동안 코드 블록을 복사하고 높은 수준에 필요한 변경을 수행합니다. 우리는 개체 이름 "Range High"를 사용하고 범위 시작 시간에서 범위 최고가까지 추세선을 그립니다. 또한 범위 높은 값을 표시하도록 도구 설명을 업데이트합니다. 저가 범위에 대해서도 동일한 작업을 수행하여 개체 이름을 변경하고 범위 시작 시간에서 범위 저가까지 추세선을 그립니다.

중단을 나타내는 범위 끝에서 종료 시간까지 선을 그리기 위해 코드 블록을 다시 복사하고 그에 따라 수정합니다. 개체 이름을 변경하고 범위 종료 시간에서 종료 시간까지 추세선을 그립니다. 또한 선 스타일을 점선으로 설정했습니다.

시각적 테스트를 컴파일하고 실행한 후 차트에 표시되는 고가 범위, 저가 범위 및 돌파 라인을 볼 수 있습니다. 이제 브레이크아웃 조건을 코딩해 보겠습니다. OnTick 함수 내에 CheckBreakouts라는 새 함수를 추가합니다. 먼저 범위 종료 시간 이후인지 확인합니다. 또한 항목 플래그가 true로 설정되어 범위 내에 틱이 있음을 나타냅니다. 이러한 조건이 충족되면 높고 낮은 브레이크 아웃을 확인합니다.

높은 브레이크아웃의 경우 높은 브레이크아웃 플래그가 거짓인지, 마지막 틱의 매도 가격이 높은 범위보다 크거나 같은지 확인합니다. 그렇다면 PositionOpen 기능을 사용하여 매수 포지션을 엽니다. 마찬가지로 낮은 브레이크아웃의 경우 낮은 브레이크아웃 플래그가 거짓인지, 마지막 틱의 입찰가가 낮은 범위 이하인지 확인합니다. 이러한 조건이 충족되면 매도 포지션을 엽니다.

코드를 컴파일하고 시각적 테스트를 실행하여 브레이크아웃이 발생할 때 포지션이 열리는지 확인합니다. 다음으로 포지션 클로저를 구현합니다. 새 범위를 계산하기 전에 현재 시간이 범위 종료 시간보다 크거나 같은지 확인합니다. 그렇다면 ClosePositions 함수를 호출합니다. 이 함수는 지정된 매직 넘버로 열린 모든 위치를 반복하고 PositionClose 함수를 사용하여 닫습니다. 카운트다운 루프를 사용하여 루프 중에 총 위치 수가 변경되더라도 모든 위치가 닫히도록 합니다.

마지막으로 코드를 컴파일하고 시각적 테스트를 실행하여 범위 마감 시간에 도달하면 포지션이 마감되는지 확인합니다.

이것이 이 비디오의 전부입니다. 질문이 있으시면 아래 의견에 자유롭게 남겨주십시오. 더 많은 코딩 동영상을 보려면 좋아요와 구독을 잊지 마세요. 시청 해주셔서 감사합니다!

Range Breakout EA mql5 Programming | Part 3/4
Range Breakout EA mql5 Programming | Part 3/4
  • 2022.10.09
  • www.youtube.com
Today I will show you how to code a Time Range Breakout EA for Metatrader 5. If you are new to mql5, just follow my steps and we will create a time range br...
사유: