[ARCHIVE] 포럼을 어지럽히 지 않도록 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 3. - 페이지 24

 

이미 출시되었습니다. 그는 오랫동안 오프닝 신호를 예측하지 않았고 같은 타이머에서 공기를 공급했습니다.

한마디로 바울은 죽었다.

 
누군가 나에게 말할 수 있습니까? 질문은 진부합니다 우습지만 매일 부술 수는 없다. 양초가 열릴 때 어드바이저가 주문을 열도록 강제하는 방법과 동일한 양초에서 닫히면 새 양초가 나타날 때까지 열리지 않습니다. 여기서 문제는 신호가 나타날 때 주문이 열리며 동일한 양초에서 각각 주문이 마감되었다고 가정해 보겠습니다. 신호는 유효하지만 더 이상 관련이 없기 때문입니다. 로봇은 개점 가격 으로 작성되었습니다. 방법이 있었던걸로 기억하는데 기억이 안나네요.
 

깃발이라고 한다

주문이 열리면 OrderIsOpened=true를 할당합니다. 새 양초를 열 때 - ...=거짓, 그리고 그 모든 것.

 
tara :

깃발이라고 한다

주문이 열리면 OrderIsOpened=true를 할당합니다. 새 양초를 열 때 - ...=거짓, 그리고 그 모든 것.

고맙습니다. 그리고 새 양초 의 시작을 코딩하는 방법은 무엇입니까?
 
kwadrad :
고맙습니다. 그리고 새 양초의 시작을 코딩하는 방법은 무엇입니까?


당신이 원하는 대로 모든 것이 당신의 손에 달려 있습니다. 예를 들어:

- TF의 크기로 시간을 변경할 때 (가장 쉬운 방법)

- "신규" 시가가 "구" 시가와 다른 경우

모두 동일한 "플래그" 기술을 사용합니다.

별말씀을요.

 
kwadrad :
고맙습니다. 그리고 새 양초의 시작을 코딩하는 방법은 무엇입니까?
검색으로 탐색 하십시오.
 
Fartarantula :

안녕 친애하는 mqls. 다음은 코드의 첫 번째 문제입니다.

사실 유행. 작업 표시기는 좌표의 1번째 줄 = 마지막과 전날의 최대값이고 2번째 줄 = 마지막과 마지막 날의 최소 좌표로 트렌디합니다.

모든 것이 아무 것도 아니지만 더 작은 TF로 전환하면 해당 가격 수준에도 불구하고 좌표가 하루의 시작 부분에 달라 붙고 라인의 의미가 완전히 손실됩니다.

추세선 개체를 만들 때 datetime 매개 변수가 책임이 있습니다. 나는 그것을 얻는 방법을 모른다. 극한값의 형성 시간을 계산할 필요가 있습니다. 분명히 이 정보는

분 tf. 그리고 여기에 마개가 있습니다. 추세선이 다시 그려지고 좌표가 극값에 해당하는 막대에 달라붙도록 TF를 변경할 때 날짜/시간을 결정하는 방법.

불행히도 이 주제에 대한 검색 결과가 없습니다. 조언 감사히 받겠습니다.

코드 작성 절차로 인해 어려움이 발생하는 것으로 알고 있습니다.

이 문제에 대해 다음과 같은 솔루션을 제공합니다.

 // Ваша трендовая по High на дневном таймфрейме
datetime Time1 = iTime ( Symbol (), PERIOD_D1 , 1 );
double    High1 = iHigh ( Symbol (), PERIOD_D1 , 1 );
datetime Time2 = iTime ( Symbol (), PERIOD_D1 , 2 );
double    High2 = iHigh ( Symbol (), PERIOD_D1 , 2 );
ObjectCreate ( "High_Trend" , OBJ_TREND , 0 , Time2, High2, Time1, High1, 0 , 0 );

// Ищем точное время High'ев на таймфрейме PERIOD
int PERIOD = PERIOD_M5 ;

int BarTime1 = iBarShift ( Symbol (), PERIOD, Time1);
int BarTime2 = iBarShift ( Symbol (), PERIOD, Time2);
Time1 = iTime ( Symbol (), PERIOD, 
      Highest( Symbol (), PERIOD, MODE_HIGH, BarTime1, 1 ));
Time2 = iTime ( Symbol (), PERIOD, 
      Highest( Symbol (), PERIOD, MODE_HIGH, BarTime2, BarTime1+ 1 ));

ObjectSet ( "High_Trend" , OBJPROP_TIME2, Time1);
ObjectSet ( "High_Trend" , OBJPROP_TIME1, Time2);

유일한 문제는 이 코드가 있는 EA가 테스터에서 실행되고 PERIOD 변수가 PERIOD_M1로 설정된 경우 두 iBarShift 함수 모두 -1을 반환한다는 것입니다. 그런 시간에 TF M1의 바 역사에서 기능을 찾을 수 없었습니다 ... 왜 이런 일이 발생하는지 모르겠습니다.

이유를 알아냈다! 테스트 기간 동안 M1 막대에 대한 이력은 없었습니다.

 
alex12 :

MA에서 전체 상품 이력에 대한 가격 동작을 확인해야 하지만 차트에 배치할 때 표시기가 그려지지 않습니다.

문제가 무엇입니까?

컴파일할 때 = 0과 0.

그건 그렇고 - MT4 터미널이 중단됩니다!

입력 매개변수 History 및 Aver_Bars의 값을 더 작은 값으로 설정하면 터미널이 "멈춤"을 멈춥니다.

그리고 차트에 설치할 때 표시기가 그려지지 않는다는 아이디어는 어디에서 얻었습니까? 이것은 내가 EUR/USD TF M1을 오늘 차트에 던졌을 때 귀하의 지표가 그렸던 것입니다.


:D :D :D

 
artmedia70 :
이러한 오류(0으로 나누기)가 있으면 어드바이저는 더 이상 작업을 중지합니다. 코드에서 0으로 나누기가 발생하는 위치를 찾으십시오. 대부분의 경우 매개변수를 계산한 결과로 0이 얻어집니다.
감사합니다. 주말에 확인하겠습니다.
 

안녕하세요, 친애하는 포럼 사용자.

물론 초보자의 질문 중 일부입니다. 저는 mql4를 탐구하려고 합니다. 저는 프로그램을 만든 적이 없기 때문에 질문이 상당히 원시적일 수 있습니다. 그러나 그것은 스스로 작동하지 않습니다.

나는 히스토그램이 아니라 선을 그려서 볼륨 표시를 약간 "고통"하기로 결정했지만 약간의 처리가 필요했습니다. 코드 조각은 다음과 같은 의미를 가져야 합니다. 두 번째 막대에서 시작하여 이전 막대와 단방향(둘 다 위쪽)으로 볼륨은 두 번째 막대에서 그려집니다. 결과적으로 두 번째 막대에서 위쪽으로 그려지는 표시 창에 점선이 표시되지만 어떤 이유로든 모든 경우에 그런 것은 아닙니다. 때문에 파선이 얻어진다. 렌더링을 위한 나머지 조건은 전혀 정의되지 않았으며 이는 미래의 문제입니다. 그런데 왜 매 초마다 위쪽으로 선이 그려지지 않는지 알 수 없습니다. 도와주세요, 제발.

다음은 코드입니다. 코드의 다른 실수에 대해 더 많은 의견이 있으면 기쁠 것입니다.

 double dVolume=Volume[i];
double vback1=Volume[i+ 1 ];

         {
         double vteor12=(dVolume+vback1)/ 2 ;
            if (Close[i+ 1 ]>Open[i+ 1 ] && Close[i]>Open[i]) double UP12=(Close[i]-Open[i+ 1 ])* 1000 ; else UP12= 0 ;
            if (UP12!= 0 ) double vrealUP12=(dVolume+vback1)/UP12; else vrealUP12= 0 ;
            if (Close[i+ 1 ]>Open[i+ 1 ])
            if (Close[i]>Open[i])
            ExtVolumesBuffer[i]=dVolume+vteor12-vrealUP12;
            if (ExtVolumesBuffer[i]< 0 ) ExtVolumesBuffer[i]= 0 ;
              }