MQL4 및 MQL5에 대한 초보자 질문, 알고리즘 및 코드에 대한 도움말 및 토론 - 페이지 176

 
mila.com :

읽었지만 루프 전에 파일을 여는 것을 짐작하지 못했을 것입니다)

제가 잘못 읽었을 수도 있습니다)
따라서 파일을 처음부터 끝까지 한 줄씩 읽는 예도 있습니다 ...
 

거래 할 때 핀바에서 격퇴하는 고문이 있습니다. 로봇은 통화에서 올바르게 작동하며 CFD에서는 절대적으로 예측할 수 없습니다.

제발, 어떻게 이럴 수 있습니까?

 
RichLux :

나는 거래할 때 핀바에서 밀어내는 로봇을 썼습니다 . 로봇은 통화에서 올바르게 작동하며 CFD에서는 절대적으로 예측할 수 없습니다.

제발, 어떻게 이럴 수 있습니까?

모든 것이 여기 에 있습니다.
 

다음은 이러한 핀바 감지 기능입니다.

 int Pin() { 
   double Close1 = iClose ( _Symbol , _Period , 1 ); 
   double Open1 = iOpen ( _Symbol , _Period , 1 ); 
   double Low1 = iLow ( _Symbol , _Period , 1 ); 
   double High1 = iHigh ( _Symbol , _Period , 1 ); 
   double Close2 = iClose ( _Symbol , _Period , 2 ); 
   double Open2 = iOpen ( _Symbol , _Period , 2 ); 
   double Low2 = iLow ( _Symbol , _Period , 2 ); 
   double High2 = iHigh ( _Symbol , _Period , 2 ); 
   if ( MathAbs (Close1-Open1)/(High1-Low1)<= BodyPercent) 
    { 
       if (Close1>High1 - BodyLocaut*(High1-Low1)&&Open1>High1-BodyLocaut*(High1-Low1)&&Low1<Low2-nose* _Point && High2>High1) 
           return ( 1 ); 
       if (Close1<Low1 + BodyLocaut*(High1-Low1)&&Open1<Low1+BodyLocaut*(High1-Low1)&&High1>High2+nose* _Point && Low2<Low1) 
           return (- 1 ); 
    } 
   return ( 0 ); 
}

그것을 어드바이저에 삽입하면 통화 쌍에 대한 기능이 완벽하게 작동합니다(즉, 어드바이저는 기능 조건에 해당하는 막대 다음의 다음 캔들에 거래를 설정합니다). 그리고 CFD에서는 거래가 어디에나 설정됩니다.

CFD와 통화 쌍 간의 이 기능의 차이점은 무엇입니까?

 
RichLux :

다음은 이러한 핀바 감지 기능입니다.

그것을 어드바이저에 삽입하면 통화 쌍에 대한 기능이 완벽하게 작동합니다(즉, 어드바이저는 기능 조건에 해당하는 막대 다음의 다음 캔들에 거래를 설정합니다). 그리고 CFD에서는 거래가 어디에나 설정됩니다.

CFD와 통화 쌍 간의 이 기능의 차이점은 무엇입니까?

우선, 모든 &&를 {}로 대체하여 각 조건이 자체 블록에 있도록 합니다. 그런 다음 각 블록에서 확인된 결과를 인쇄할 수 있습니다. 로그에서 어떤 값을 얻었는지 살펴보세요.
 
Artyom Trishkin :
우선, 모든 &&를 {}로 대체하여 각 조건이 자체 블록에 있도록 합니다. 그런 다음 각 블록에서 확인된 결과를 인쇄할 수 있습니다. 로그에서 어떤 값을 얻었는지 살펴보세요.

감사합니다. 조언을 따랐습니다. 제가 어리석은 부분을 이해했습니다. 어드바이저가 5자리로 위조하고 있고 CFD가 2자리에 불과하다는 사실 때문에 어드바이저의 반응이 최소 50점 이상일 거라 예상했는데 벌써 5점부터 시작했습니다. 무딘.

이 순간을 도와주세요.

코드에 이 부분이 있습니다.

 MathAbs (Close1-Open1)/(High1-Low1)

때때로 High1=Low1이 발생합니다. 그런 다음 테스터는 0으로 나눌 수 없다는 치명적인 오류 를 제공합니다.

돌아다니는 방법?

 
RichLux :

감사합니다. 조언을 따랐습니다. 제가 어리석은 부분을 이해했습니다. 어드바이저가 5자리로 위조하고 있고 CFD가 2자리에 불과하다는 사실 때문에 어드바이저의 반응은 최소 50점 이상 예상했는데 5점부터 이미 받았습니다. 무딘.

이 순간을 도와주세요.

코드에 이 부분이 있습니다.

때때로 High1=Low1이 발생합니다. 그런 다음 테스터는 0으로 나눌 수 없다는 치명적인 오류 를 제공합니다.

돌아다니는 방법?

당신은 생각할 수 없습니다 :

 MathAbs ((Close1-Open1)/(High1-Low1> 0 ?High1-Low1: 0.00001 ))
 

안녕하세요, 컴파일하는 동안 문제가 발생했습니다.


무효 OnTick()

{

이중 최소 가격=999999, MP, 최대 가격=-999999;

for(int i=0; i<10; i++)

{

mp = iLow(심볼(), PERIOD_CURRENT, i);

if (mp < 최소 가격)

최저 가격=mp;

}


for(int i=0; i<10; i++)

{

mp = iHigh(심볼(), PERIOD_CURRENT, i);

if (mp > maxprice)

최고가=mp;

}

Comment("최소 가격: " + DoubleToString(최소 가격, 5) + "\n"+

"최대 가격: " + DoubleToString(최대 가격, 5));

}


교과서에는 컴파일러가 iLow 및 iHigh에서 맹세하는 이러한 함수와 거기에 있는 Simbol() 변수가 라인 모드에 있지만 true이지만 예제에서 또 다른 문제를 해결합니다. 위의 코드에서 수정해야 할 사항은 무엇입니까? 막혀서 테스트하기 위해 루프를 컴파일할 수 없습니다.

교과서에서

현재 불완전한 막대에 해당하는 값을 가져와야 하는 경우

start_pos=0 및 count=1을 지정하여 호출의 첫 번째 형식을 사용할 수 있습니다.

예시:

#property copyright "2009, MetaQuotes Software Corp."

#속성 링크 "https://www.mql5.com"

#속성 버전 "1.00"

#property description "높음[i] 및 낮음[i] 값을 표시하는 예"

#속성 설명 "임의의 막대용"

이중 높음[], 낮음[];

//+----------------------------------------------- --------------------+

//| 주어진 막대 번호에 대해 낮음 가져오기 |

//+----------------------------------------------- --------------------+

이중 iLow ( 문자열 기호 , ENUM_TIMEFRAMES 시간 프레임, int 인덱스)

{

이중 낮은 = 0;

ArraySetAsSeries(낮음, 참);

int copy=CopyLow(기호, 시간 프레임, 0, 막대(기호, 시간 프레임), 낮음);

if(복사됨>0 && 인덱스<복사됨) 낮음=낮음[인덱스];

반환(낮음);

}

//+----------------------------------------------- --------------------+

//| 주어진 바 번호에 대해 High 얻기 |

//+----------------------------------------------- --------------------+

이중 iHigh ( 문자열 기호 , ENUM_TIMEFRAMES 시간 프레임, int 인덱스)

{

이중 높음 = 0;

ArraySetAsSeries(높음, 참);

정수 복사 = CopyHigh(기호, 시간 프레임, 0, 막대(기호, 시간 프레임), 높음);

if(복사됨>0 && 인덱스<복사됨) 높음=높음[인덱스];

반환(높음);

}

//+----------------------------------------------- --------------------+

Автоматический трейдинг и тестирование торговых стратегий
Автоматический трейдинг и тестирование торговых стратегий
  • www.mql5.com
MQL5: язык торговых стратегий для MetaTrader 5, позволяет писать собственные торговые роботы, технические индикаторы, скрипты и библиотеки функций
 
geratdc :

안녕하세요, 컴파일하는 동안 문제가 발생했습니다.


무효 OnTick()

{

이중 최소 가격=999999, MP, 최대 가격=-999999;

for(int i=0; i<10; i++)

{

mp = iLow(심볼(), PERIOD_CURRENT, i);

if (mp < 최소 가격)

최저 가격=mp;

}


for(int i=0; i<10; i++)

{

mp = iHigh(심볼(), PERIOD_CURRENT, i);

if (mp > maxprice)

최고가=mp;

}

Comment("최소 가격: " + DoubleToString(최소 가격, 5) + "\n"+

"최대 가격: " + DoubleToString(최대 가격, 5));

}


교과서에는 컴파일러가 iLow 및 iHigh b 변수 Simbol()에서 맹세하는 이러한 기능이 있는데, 거기에는 라인 모드, true가 있지만 여기에서 예제의 또 다른 문제를 해결합니다. 위의 코드에서 수정해야 할 사항은 무엇입니까? 막혀서 테스트하기 위해 루프를 컴파일할 수 없습니다.

교과서에서

현재 불완전한 막대에 해당하는 값을 가져와야 하는 경우

start_pos=0 및 count=1을 지정하여 호출의 첫 번째 형식을 사용할 수 있습니다.

예시:

#property copyright "2009, MetaQuotes Software Corp."

#속성 링크 "https://www.mql5.com"

#속성 버전 "1.00"

#property description "높음[i] 및 낮음[i] 값을 표시하는 예"

#속성 설명 "무작위로 선택한 막대의 경우"

이중 높음[], 낮음[];

//+----------------------------------------------- --------------------+

//| 주어진 막대 번호에 대해 낮음 가져오기 |

//+----------------------------------------------- --------------------+

이중 iLow ( 문자열 기호 , ENUM_TIMEFRAMES 시간 프레임, int 인덱스)

{

이중 낮은 = 0;

ArraySetAsSeries(낮음, 참);

int copy=CopyLow(기호, 시간 프레임, 0, 막대(기호, 시간 프레임), 낮음);

if(복사됨>0 && 인덱스<복사됨) 낮음=낮음[인덱스];

반환(낮음);

}

//+----------------------------------------------- --------------------+

//| 주어진 바 번호에 대해 High 얻기 |

//+----------------------------------------------- --------------------+

이중 iHigh ( 문자열 기호 , ENUM_TIMEFRAMES 시간 프레임, int 인덱스)

{

이중 높음 = 0;

ArraySetAsSeries(높음, 참);

정수 복사 = CopyHigh(기호, 시간 프레임, 0, 막대(기호, 시간 프레임), 높음);

if(복사됨>0 && 인덱스<복사됨) 높음=높음[인덱스];

반환(높음);

}

//+----------------------------------------------- --------------------+


이 단어 Simbol()에 오류가 있습니다. Symbol() 또는 _Symbol을 작성해야 합니다.
 
Sergey Gritsay :

이 단어 Simbol()에 오류가 있습니다. Symbol() 또는 _Symbol을 작성해야 합니다.

감사합니다. Symbol의 철자가 올바른 Simbol 버그가 수정되었습니다. iLow 및 iHigh 기능에 문제가 있습니다. 사진 참조

MQL 4와 MQL 5 사이의 일반적인 유사성은 %로 무엇입니까? 그렇지 않으면 이것이 MQL4 비디오 자습서에서 매 주기마다 머리를 깨는 방법입니다.

파일:
1.png  64 kb
사유: