나는 당신들에 대해 궁금할 뿐입니다. 여기 누군가(MQL을 작성하기 위해) MetaTrader를 많이 사용하지만 cTrader(cAlgo)를 사용하는 사람은 거의 없습니까?
브로커가 제공하는 특전 외에도 MetaTrader가 EA를 구축하기에 가장 좋은 플랫폼은 아니라고 생각합니다. MQL = C , 기본 코드로 C 를 사용하고 있습니다. 문서 페이지에 다음과 같이 작성되어 있습니다.
https://www.mql5.com/en/docs
cTrader(cAlgo)는 C#을 기본 코드로 사용합니다.
저는 전임 기술 컨설턴트, 응용 프로그램 개발자, 신인 웹 디자이너이며 최근 응용 프로그램 개발 기술의 대부분을 알고 있습니다. 저는 10년 이상 이 일을 해왔고 C#과 Java가 모두 강력한 경쟁자라는 것을 알게 되었습니다. 둘 다 Javascript, Scala, Go, Phyton과 함께 가장 인기 있는 10대 프로그래밍 언어에 이름을 올렸습니다. 그러나 그들 중 어느 것도 C 가 아닙니다. 내 경험에 따르면(3개의 EA를 작성한 후) MQL은 어렵습니다. 논리가 무언가를 계산하는 것처럼 단순하다면 시장을 기반으로 보류 주문이나 포지션을 생성하면 MQL이면 충분합니다. 그러나 더 복잡한 아이디어로 들어가면 MQL만으로는 충분하지 않습니다. 죄송합니다.
제 EA 중 하나인 터널 마틴게일(TM)을 예로 들어 보겠습니다. 내 스레드를 팔로우하면 (
https://www.koreaforex.kr/trading-sy...ivots-win.html) 상용 섹션에서는 실제로 MQL을 사용하여 빌드되었습니다. 논리가 간단하기 때문입니다! 무작위로 시장 포지션을 시작한 다음, 보류 주문에 도달/실행되면 반대 방향으로 보류 주문을 넣은 다음 반대 방향으로 또 다른 보류 주문을 하는 등의 작업을 수행합니다. 전략은 단지 전략일 뿐이고, 실패하고, 투자금을 빨아들인 다음, 다시 도면으로 돌아갑니다.
개선 아이디어가 조금 더 발전함에 따라 MQL을 사용한 코딩은 점점 더 어려워지고 있습니다. 개선할 아이디어 중 하나는 martingale 시리즈를 무제한으로 실행하는 대신 특정 간격/기간 동안 특정 날짜와 시간에만 시간 프레임을 제한할 수 있다는 것입니다. 이제 여기 캐치가 있습니다.
C 에서 날짜와 시간을 처리하는 방식은 현재 1970년 1월 1일부터 계산된 눈금을 나타내는 정수를 기반으로 하는 고대 데이터 유형을 사용하고 있습니다! 그것은 어떤 선사 시대 물건과 같습니다. 이제 A에서 B까지의 특정 날짜와 시간을 정의하려면 해당 날짜의 눈금 표시를 알아야 한다는 것을 이해했습니다.
따라서 TM이 2020년 3월 31일 12:00:00에 시작한다고 쓰고 싶다면 매개변수, 변수 또는 EA의 사용자인 나 사이의 모든 통신 방법에 637212528000000000을 써야 합니다. 그게 아니라 MQL에서 DateTime 함수는 매우 제한적입니다.
이제 또 다른 문제는 입력 매개변수에서 날짜에 대한 개체를 도입하려는 것입니다. MQL과 cAlgo 모두 복잡한 입력 매개변수를 정의하는 방법은 없습니다. 그러나 JSON 또는 XML과 같은 파일 구성을 도입하여 이를 수행할 수 있습니다. MQL에서는 파일을 읽는 데 몇 줄이 걸립니다. 포인터의 개념을 이해해야 합니다. 파일 핸들이 닫혀 있는지 확인해야 합니다. 닫히지 않은 경우 핸들을 닫아야 합니다. 그렇지 않으면 멈춥니다. 등등.
cAlgo에서 이 작업은 함수를 호출한 다음 변수에 할당하여 수행할 수 있습니다. 딱 1줄.
이제 프로그래밍 세계의 객체에 대해 이야기합니다. 일단 구성 파일을 읽으면 객체 내부에 다른 객체 등의 배열이 있는 OOP를 사용하여 구성에 액세스할 수 있습니다. C 의 OOP는 완전히 시간 낭비입니다. 그 이유는 다음과 같습니다.C 에서 단순히 XML이나 JSON을 객체로 읽을 수 없습니다. 이를 달성하기에는 너무 많은 단계가 있지만 cAlgo에서는 최소 2줄로 수행할 수 있습니다. 단순히 객체 배열을 정렬할 수는 없습니다(이것은 어리석은 일입니다). 정렬할 데이터 유형이 날짜 시간과 같은 다른 데이터 유형이 아닌 숫자(int, long, short)인 경우 정렬할 수 있습니다. 그리고 정렬은 매우 간단합니다. 다른 기능은 없습니다. 자신만의 정렬 기능을 만들어야 하고 이렇게 하면 시간이 많이 낭비됩니다. 그 두 가지 이유 때문에 저는 기회를 포기하고 cTrader로 옮겼습니다.
MQL을 배우고 싶지 않다는 것이 아닙니다. 하지만 EA를 작성하는 것은 비즈니스 애플리케이션을 작성하는 것과 같아야 하며, 덜 중요한 내용을 계속 진행하면서 강력하고, 빠르고, 빠르고, 단순해야 합니다. 기계, 로봇, 게임을 위한 코드를 작성하거나 기계어 계층에 더 빠르게 액세스해야 하는 코드를 작성하는 경우가 아니라면 C 가 최선의 선택입니다.
지금 하와이에 있는 서 있는 장소에서 목적지인 뉴욕으로 가고 싶다고 상상해 보십시오. C#(또는 cTrader/cAlgo)을 사용하면 자동차, 페리 티켓, 비행기 티켓, 버스, 기차 등 목적지에 빨리 도달할 수 있는 모든 교통 수단을 사용(또는 구매)하면 됩니다. MQL을 사용하면 1781년에 살고 있는 것처럼 느껴집니다. 그곳에 가려면 손으로 배를 만들어야 합니다.
여러분의 경험은 어떻습니까?