기고글 토론 "여러 상품을 거래하는 Expert Advisor 생성" - 페이지 2

 
gisip:
타이머 없이도 MQL4에서 모든 것이 정상적으로 작동합니다.
우리는 다중 통화 테스트에 대해 이야기하고 있습니다. MT4에는 타이머가 없지만 다중 통화 테스터도 없습니다. MT4에서 작업 할 때 전문가 고문은 어떤 경우에도 그것이 작동하는 상품의 견적 흐름의 강도에 따라 다릅니다. EURUSD에 대한 다중 통화 전문가 조언자가 있는데 일정 시간 동안이 쌍에 틱이없는 경우 다른 상품에 새로운 틱이 도착하는 것을 어떻게 추적 할 수 있습니까?
 
Interesting:

글쎄요, MQL4에는 존재하지 않고 구조와 클래스도 거기에 존재하지 않는데 여기서 포기할 것을 제안 하시겠습니까?


IMHO

표준 라이브러리를 사용하거나 사용하지 않는 것은 모든 사람의 취향의 문제이지만 (최악의 경우 자신의 코드 만 사용할 수 있음) MT4에서 사용할 수 없다는 이유만으로 모든 이점을 포기하는 것은 그다지 합리적이지 않습니다.....

나는 그것에 대해 전혀 쓰지 않았습니다.

저는 MQL5가 결함이 있고 특정 상품 조합에서 잘못된 데이터를 생성한다고 썼습니다.

예를 들어 EURUSD 차트에 EUR JPY 또는 EURGBP를 오버레이하면 모든 것이 정상입니다.

그러나 EURCAD를 오버레이하면 차트의 데이터에 오류가 발생하지만 MQL4에서는 이러한 오류가 없었습니다.

 
gisip:

저는 그것에 대해 전혀 쓰지 않았습니다.

저는 MQL5가 특정 상품 조합에서 결함을 일으키고 잘못된 데이터를 생성한다고 썼습니다.

예를 들어 EURUSD 차트에 EURJPY 또는 EURGBP를 오버레이하면 모든 것이 정상입니다.

그러나 EURCAD를 오버레이하면 차트에 오류가 있는 데이터가 표시되지만 MQL4에서는 그렇지 않고 오류가 없습니다.

나는 그것을 이해했지만 Kos 가 맞습니다 (특히 2010.07.02 14:57의 멋진 게시물 ). 모든 개발자 (MQ 포함) 타이머를 지속적으로 무시하는 이유를 이해할 수 없습니다. 다중 통화 거래자에 대한 공식적인 예가 없다는 점을 고려하면이 문제에서 MQ에서는 모든 것이 명확하지만 다른 사람들이 개인적으로 OnTimer ()를 지속적으로 무시하는 이유는 큰 미스터리로 남아 있습니다....
 
gisip:

저는 그것에 대해 전혀 쓰지 않았습니다.

저는 MQL5가 특정 상품 조합에서 결함을 일으키고 잘못된 데이터를 생성한다고 썼습니다.

예를 들어 EURUSD 차트에 EURJPY 또는 EURGBP를 오버레이하면 모든 것이 정상입니다.

그러나 EURCAD를 오버레이하면 차트에 오류가 있는 데이터가 표시되지만, MQL4에서는 오류가 없습니다.

오류가 있는 예시를 제공해 주세요.
 
Renat:
오류의 예를 들어주세요.
글쎄, 나는 여기에 모든 것을 쓰지 않을 것입니다, 그것은 충분히 명확 해 보입니다.
//--------- MQL4 옵션 ---------
#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 Aqua

extern string InstrumentName = "EURCAD";
double Buffer[];
SetIndexBuffer(0,Buffer); // 버퍼에 배열 할당
SetIndexStyle (0,DRAW_LINE,STYLE_SOLID,2);// 라인 스타일

while(i >.= 0){//-- 오른쪽에서 왼쪽으로 이동 (즉, 가장 높은 바에서 아직 형성 중인 0 바까지) --
Buffer[i] = (iHigh(InstrumentName,0,i) + iClose(InstrumentName,0,i) + iLow(InstrumentName,0,i)) / 3;
i--;//-- 다음 바
}//다음 (동안)



//----------- 이제 MQL5에서 거의 동일한 변형 --------
#property indicator_separate_window // Indic. 별도의 창에 그려짐
#property indicator_buffers 1

#property indicator_plots 1
#property indicator_type1 DRAW_LINE
#property indicator_color1 아쿠아

입력 문자열 InstrumentName = "EURCAD";
double Buffer[];
int handle1;

copied=CopyClose(InstrumentName,0,0,CountBars,Buffer);

//-- 이제 EURUSD에 던집니다.

//--어떤 상품에 지표를 배치하든 차트는 변경되지 않아야 합니다.
 
코드를 올바르게 붙여 넣으면 더 쉽게 이해할 수 있습니다.
MQL5.community - Памятка пользователя
MQL5.community - Памятка пользователя
  • 2010.02.23
  • MetaQuotes Software Corp.
  • www.mql5.com
Вы недавно зарегистрировались и у вас возникли вопросы: Как вставить картинку в сообщение на форуме, как красиво оформить исходный код MQL5, где находятся ваши Личные сообщения? В этой статье мы подготовили для вас несколько практических советов, которые помогут быстрее освоиться на сайте MQL5.community и позволят в полной мере воспользоваться доступными функциональными возможностями.
 
Rosh:
코드를 올바르게 입력하면 더 쉽게 이해할 수 있습니다.

//--------- MQL4 옵션 ---------
#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 Aqua

extern string InstrumentName = "EURCAD";
double Buffer[];
int init()
{
SetIndexBuffer(0,Buffer); // 버퍼에 배열 할당
SetIndexStyle (0,DRAW_LINE,STYLE_SOLID,2);// 라인 스타일
}
int start()
{
while(i >= 0){
Buffer[i] = (iHigh(InstrumentName,0,i) + iClose(InstrumentName,0,i) + iLow(InstrumentName,0,i)) / 3;
i--;//-- 다음 바
}//다음 (동안)
}


//----------- 이제 MQL5에서 거의 동일한 변형 --------
#property indicator_separate_window // Indic. 별도의 창에 그려짐
#property indicator_buffers 1

#property indicator_plots 1
#property indicator_type1 DRAW_LINE
#property indicator_color1 아쿠아

입력 문자열 InstrumentName = "EURCAD";
double Buffer[];
int OnInit()
{
{ IndicatorSetString(INDICATOR_SHORTNAME,InstrumentName);
SetIndexBuffer(0,Buffer,INDICATOR_DATA);
}

int OnCalculate(....)
{
copied=CopyClose(InstrumentName,0,0,0,CountBars,Buffer);
}
//-- 이제 EURUSD에 넣습니다.

//-- 어떤 상품에 지표를 넣든 차트는 변경되지 않아야 합니다.
 
Gisip, "SRC" 버튼을 사용하여 코드 삽입을 사용해야 합니다...
 

재현 가능한 예제를 만들어 주세요. 즉, 컴파일하고 차트에 던져 결과를 얻을 수 있는 기성품 코드가 필요합니다.

이것이 없으면 우리가 무슨 말을 하는지 이해하는 사람은 거의 없을 것입니다.
 

의식이 박탈당한 사람들을 도울 것입니다.

//----------- 이제 MQL5에서 거의 동일한 변형 --------
#property  indicator_separate_window    // 표시기는 별도의 창에 그려집니다.
#property indicator_buffers 1

#property indicator_plots   1
#property indicator_type1   DRAW_LINE
#property indicator_color1  Aqua

input string InstrumentName = "EURCAD";
double Buffer[]; 
int OnInit() 
{
   IndicatorSetString(INDICATOR_SHORTNAME,InstrumentName);
   SetIndexBuffer(0,Buffer,INDICATOR_DATA);
return(0);
}

int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime& time[],
                const double& open[],
                const double& high[],
                const double& low[],
                const double& close[],
                const long& tick_volume[],
                const long& volume[],
                const int& spread[])
{
int copied;
int CountBars=rates_total;
  copied=CopyClose(InstrumentName,0,0,CountBars,Buffer);
  return(copied);
}
//-- 이제 EURUSD로 던집니다.

//--어떤 상품에 지표를 배치하든 차트는 변경되지 않아야 합니다.

이상적으로는 그렇지 않아야하지만 알고리즘으로 삐걱 거리는 소리가 나는데 다른 TF에서는 1 TF에만 나타나고 공허함을 분명히 보여주었습니다 .....

한 시간의 테스트 후에도.....

기록을 업로드하려고 시도합니다.