[경고, 주제 닫힘!] 포럼을 어지럽히지 않도록 모든 초보자 질문. 프로, 놓치지 마세요. 당신 없이는 어디에도 없습니다. - 페이지 1069

 
goldtrader :

개별(각각) 거래의 손실이 균형/주식 차트에 표시되지 않음을 증명하는 가장 간단한 실험을 수행해 보겠습니다.

두 줄의 코드로 Expert Advisor를 작성해 보겠습니다.

2010년 5월 1일부터 2010년 8월 1일까지 구간의 EURUSD D1 차트에서 실행해 보겠습니다. 그는 스톱 없이 1.2200의 가격으로 유로를 매수하고 1.3000의 테이크 가격으로 포지션을 청산해야 합니다. 우리는 균형/자본 차트와 시각화 차트에서 하락을 관찰할 것입니다:

보시다시피, 드로우다운은 시각화 차트(스크린샷 상단)에서 볼 수 있지만 균형/자본 차트에서는 볼 수 없습니다. 거래는 하나뿐입니다. 테스터의 보고서를 보겠습니다.

테스터의 보고서에 드로다운이 나타납니다.

이제 문제가 해결되기를 바랍니다.

.

아마도 "이 작업이 수행되는 이유는 무엇입니까?"라는 질문이 남아있을 것입니다. 이것은 사용자인 우리를 위한 질문이 아니라 MT4 개발자를 위한 질문입니다. 내 생각에 이것은 잘못된 것입니다. 왜냐하면. 대차대조표/자본 차트에 초과 할당이 표시되지 않습니다.

알렉산더, 정말 감사합니다! 매우 상세하고 철저하게 작업해 주셔서 대단히 감사합니다. 그리고 MT4 개발자는 여기에 대답하지 않습니까?
 

만날 수 있는 동료.

동시에 열리는 파일 수에 제한이 있습니까? 4 모든 것이 정상이고 5 - 열리지만 쓰지는 않습니다. 무엇이 잘못되었는지 알 수 없습니다.

 

문제가 있습니다. 지표 회랑의 상단(매수) 또는 하단(매도) 경계를 통과할 때 거래가 시작되어야 합니다.

이중 장벽 = 0.08; // 실제로 테두리는 상대적입니다.

R() - 표시기 기능

상한 또는 하한을 통과하는 상태를 확인하는 기능:

정수 RFilter()

{

if ( R(2)> -barier && R(1) < -barier ) return (-1);

if ( R(2)< barier && R(1) > barier ) return (1);

}

사실, 어드바이저는 인디케이터가 경계를 넘을 때 (어느 쪽이든 상관없이) 즉시 포지션을 여는 것으로 나타났습니다. 상승하면 매수, 하락하면 매도

 
dzhini :

문제가 있습니다. 지표 회랑의 상단(매수) 또는 하단(매도) 경계를 통과할 때 거래가 시작되어야 합니다.

...

사실, 어드바이저는 인디케이터가 경계를 넘을 때 (어느 쪽이든 상관없이) 즉시 포지션을 여는 것으로 나타났습니다. 상승하면 매수, 하락하면 매도

변수 barier의 값을 약간 증가
 
costy_ :

감정가를 위한 질문

테스터를 위해 나만의 거래 수단을 만들 수 있습니까?!

EURUSD30_2.fxt를 자신의 것으로 또는 다른 방법으로 교체하십시오.

metaquotes\tester\history\EURUSD30_2.fxt

simple_csv2fxt를 만들려고 했지만 테스터가 파일을 자신의 파일로 교체했습니다.

아마도 누군가 만든 경험이 있을 것입니다. 감사합니다.

예, 있습니다. 그리고 이 주제에 대한 좋은 기사 가 있습니다.
 
Reshetov :
변수 barier의 값을 약간 증가
도움이되지 않았습니다. 이것은 부호 할당 오류 때문일 수 있습니까?
 
dzhini :
도움이되지 않았습니다. 이것은 부호 할당 오류 때문일 수 있습니까?

커피 찌꺼기나 욕으로 운세를 알 수 있습니다. 분명히 정보가 충분하지 않습니다.

1. 표시기 또는 발진기:

2. 오실레이터라면 한계가 있는가 없는가? 그렇다면 최대값과 최소값은 얼마입니까?

3. 문제는 위 함수의 코드가 아니라 그 해석의 코드에 있지 않을까요?

여기에 텔레파시가없고 필요한 모든 정보가 비밀로 분류되어 있기 때문에 질문은 무엇입니까? 이것이 답입니다. 저것들. 즉석에서 지정한 정보로 판단하여 변수를 증가시키면 문제가 해결됩니다.

 
Reshetov :

커피 찌꺼기나 맹세하는 방법으로 운세를 알 수 있습니다. 분명히 정보가 충분하지 않습니다.

1. 표시기 또는 발진기:

2. 오실레이터라면 한계가 있는가 없는가? 그렇다면 최대값과 최소값은 얼마입니까?

3. 문제는 위 함수의 코드가 아니라 그 해석의 코드에 있지 않을까요?

여기에 텔레파시가없고 필요한 모든 정보가 비밀로 분류되어 있기 때문에 질문은 무엇입니까? 이것이 답입니다. 저것들. 즉석에서 지정한 정보로 판단하여 변수를 증가시키면 문제가 해결됩니다.

이것은 다음 공식을 가진 지표입니다.

이중 R(int shift)
{
이중 계수1 = 100.0 * (iMA(NULL, 0, perfast, 0,MODE_LWMA, PRICE_CLOSE, shift) - iMA(NULL, 0, perslow, 0, MODE_LWMA, PRICE_CLOSE, shift)) * iATR(NULL, 0, perfast, shift );
이중 coef2 = coef1 / iMA(NULL, 0, perslow, 0, MODE_LWMA, PRICE_CLOSE, shift) / iATR(NULL, 0, perslow, shift);
이중 주 = ( MathExp (2.0 * coef2) - 1.0) / (MathExp(2.0 * coef2) + 1.0);

리턴(메인);

}

제한: (-1;1)

 
dzhini :

이것은 다음 공식을 가진 지표입니다.

이중 R(int shift)
{
이중 계수1 = 100.0 * (iMA(NULL, 0, perfast, 0,MODE_LWMA, PRICE_CLOSE, shift) - iMA(NULL, 0, perslow, 0, MODE_LWMA, PRICE_CLOSE, shift)) * iATR(NULL, 0, perfast, shift );
이중 coef2 = coef1 / iMA(NULL, 0, perslow, 0, MODE_LWMA, PRICE_CLOSE, shift) / iATR(NULL, 0, perslow, shift);
이중 주 = (MathExp(2.0 * coef2) - 1.0) / (MathExp(2.0 * coef2) + 1.0);

리턴(메인);

}

제한: (-1;1)

그러면 이론적으로 함수가 주석에 지정된 조건에 따라 올바르게 작동해야 합니다.

정수 RFilter()

{

if ( R(2)> -barier && R(1) < -barier ) return (-1); // 이전 막대의 표시 값이 더 낮은 장벽 위에 있고 현재 막대의 표시 값이 바로 이 장벽 아래에 있는 경우 숏 포지션

if ( R(2)< barier && R(1) > barier ) return (1); // 이전 막대의 표시기 값이 상위 배리어 아래에 있고 현재 표시기 값이 이 동일한 배리어 위에 있는 경우 롱 포지션

리턴(0); // 다른 모든 경우에는 아무것도 하지 않습니다.

}

 
Reshetov :

그러면 이론적으로 함수가 주석에 지정된 조건에 따라 올바르게 작동해야 합니다.

정수 RFilter()

{

if ( R(2)> -barier && R(1) < -barier ) return (-1); // 이전 막대의 표시 값이 더 낮은 배리어 위에 있고 현재 막대의 표시 값이 같은 배리어 아래에 있는 경우 매도 위치

if ( R(2)< barier && R(1) > barier ) return (1); // 이전 막대의 표시기 값이 상위 배리어 아래에 있고 현재 표시기 값이 이 동일한 배리어 위에 있는 경우 롱 포지션

반환(0); // 다른 모든 경우에는 아무것도 하지 않습니다.

}

하지만 작동하지 않습니다 :(