This article is a quick guide to MQL4 language functions, it will help you to migrate your programs from MQL4 to MQL5. For each MQL4 function (except trading functions) the description and MQL5 implementation are presented, it allows you to reduce the conversion time significantly. For convenience, the MQL4 functions are divided into groups, similar to MQL4 Reference.
int WindowHandleMQL4(string symbol,
int tf)
{
ENUM_TIMEFRAMES timeframe=TFMigrate(tf);
long currChart,prevChart=ChartFirst();
int i=0,limit=100;
while(i<limit)
{
currChart=ChartNext(prevChart);
if(i==0)currChart=prevChart; // 차트 창만 열려 있는 경우if( currChart<0) break;
if(ChartSymbol(currChart)==symbol
&& ChartPeriod(currChart)==timeframe)
return((int)currChart);
prevChart=currChart;
i++;
}
return(0);
}
주문매직넘버()는 어때요? 고마워요
주문매직넘버()는 어때요? 고마워요
iBarShift()는 사용하기 쉽지만 iBarShiftMQL4()는 상당히 복잡합니다. 그리고...
"TickValue()와 SymbolInfoDouble(_Symbol,SYMBOL_TRADE_TICK_VALUE)"가 항상 "0"을 반환하는 이유는 무엇인가요?!!
안녕하세요, Rosh:
"새로운 메타트레이더 5 클라이언트 터미널에서 MQL4 프로그램을 실행할 수 있는 MQL4 에뮬레이터를 개발할 계획이 있습니다."라고 말씀해 주셔서 감사합니다.
저는 프로그램 디자이너는 아니지만 트레이더입니다. MQL5는 저에게는 너무 어렵습니다.
MQL4 에뮬레이터를 기다리고 있습니다. TKS 백만!
행운을 빕니다.
실수를 발견했습니다.
차트 창이 하나만 열려 있는 경우. 그러면 이 창의 ID는 = -1
-
또한 우선순위에 주의하세요. 저는 반나절 동안 로직을 디버깅하면서 MQL4(|| 우선)와 MQL5(&& 우선)에서 &&와 ||의 우선순위가 다르다는 것을 발견했습니다. 따라서 MQL4에서 MQL5로 마이그레이션할 때는 모든 비교 식을 검색해야 합니다.
또한 우선순위에 주의하세요. 로직을 디버깅하는 데 반나절을 보냈는데 MQL4(|| 우선)와 MQL5(&& 우선)에서 &&와 ||의 우선순위가 다르다는 것을 발견했습니다. 따라서 MQL4에서 MQL5로 마이그레이션할 때는 모든 비교 표현식을 검색해야 합니다.
맞습니다. 우선 순위 규칙을 참조하세요:
테이블의 각 연산 그룹은 동일한 우선순위를 갖습니다. 작업의 우선 순위가 높을수록 테이블에서 그룹의 위치가 높아집니다. 우선순위 규칙에 따라 연산과 피연산자의 그룹이 결정됩니다.
주의: MQL5 언어의 연산 우선 순위는 C++에서 채택된 우선 순위와 일치하며, MQL4 언어에서 주어진 우선 순위와 다릅니다.
실수를 발견했습니다.
차트 창이 하나만 열려 있는 경우. 그러면 이 창의 ID는 = -1
-
내 실수, 사실입니다. :)
안녕하세요
이 모든 함수가 유효성을 검사했는지, 나는 성공하지 못했는지 알고 싶습니다.
함수가 작동하도록 만드는 데 성공하지 못했습니다.
고마워요
Noel