그래픽 개체를 만드는 방법을 배우는 방법? MQL4. - 페이지 3

 
Integer :

표시기 가 그래픽 개체 를 생성한 다음 해당 매개변수를 수신하면 아니오입니다.

그러나 여전히 지표를 사용하면 모든 것을 더 쉽게 해결할 수 있습니다. 계산은 표시기에서 수행되고 그 결과는 표시기 버퍼를 통해 표시됩니다.

대안도 있습니다. 라인 대신에 라인 매개변수를 사용하여 전역 변수를 생성합니다. 그러면 GetValueByShift() 함수가 작동하지 않으므로 해당 아날로그를 작성해야 합니다.

분명한. 그러나 그래픽 플롯이 없는 지표에서 추세선을 만드는 방법은 무엇입니까?

막대의 두 인덱스가 알려져 있으며, 선으로 연결되어 오른쪽으로 그려야 합니다.

 
forexman77 :

분명한. 그러나 그래픽 플롯이 없는 지표에서 추세선을 만드는 방법은 무엇입니까?

두 개의 막대 인덱스가 알려져 있으며, 선으로 연결되고 오른쪽에 그려야 합니다.

코드베이스에 그러한 표시기가 있었습니다. 이제 없어졌어, 없어졌어

계산을 통해 모든 작업을 수행합니다. 두 점의 좌표를 알면 세 번째 점의 좌표를 간단히 계산할 수 있습니다.

 
Integer :

코드베이스에 그러한 표시기가 있었습니다. 이제 없어졌어, 없어졌어

계산을 통해 모든 작업을 수행합니다. 두 점의 좌표를 알면 세 번째 점의 좌표를 간단히 계산할 수 있습니다.

이 계산 공식은 어디에서 찾을 수 있습니까?

일반적으로 어떻게 든 멍청한 방식으로 밝혀졌습니다. 터미널에는 모든 종류의 채널, fibo 및 기타 기하학적 칠면조의 바다가 있지만 테스터에서는 쓸모가 없습니다.

 
forexman77 :

이 계산 공식은 어디에서 찾을 수 있습니까?

일반적으로 어떻게 든 멍청한 방식으로 밝혀졌습니다. 터미널에는 모든 종류의 채널, fibo 및 기타 기하학적 칠면조의 바다가 있지만 테스터에서는 쓸모가 없습니다.

 double y3( double x1, double y1, double x2, double y2, double x3){
   return (y1+(x3-x1)*(y2-y1)/(x2-x1));
}

x1, x2 - 막대 번호. y1, y2 - 가격 값. x3 - 계산이 수행되는 막대의 번호입니다.

 
Integer :

x1, x2 - 막대 번호. y1, y2 - 가격 값. x3 - 계산이 수행되는 막대의 번호입니다.

확인. 고맙습니다. 계속 발굴하겠습니다.
 
Integer :

x1, x2 - 막대 번호. y1, y2 - 가격 값. x3 - 계산이 수행되는 막대의 번호입니다.

나는 계산을 기반으로 지표를 만들었으며 그래픽 개체의 지표와 일대일로 판독했습니다.

최적화가 진행 중입니다. 여기서만 트랜잭션이 올바르게 열리지 않는 문제가 있습니다.

차트에 표시기를 놓으면 선이 처음에는 직선이고 새 눈금이 표시되면 원래대로 되고 그대로 유지됩니다.

 
forexman77 :

나는 계산을 기반으로 지표를 만들었으며 그래픽 개체의 지표와 일대일로 판독했습니다.

최적화가 진행 중입니다. 여기서만 트랜잭션이 올바르게 열리지 않는 문제가 있습니다.

차트에 표시기를 놓으면 선이 처음에는 직선이고 새 눈금이 표시되면 원래대로 되고 그대로 유지됩니다.

비주얼 모드에서 테스트해 보세요. 인쇄를 사용하여 주석은 차이점을 찾습니다.
 
Integer :
비주얼 모드에서 테스트해 보세요. 인쇄를 사용하여 주석은 차이점을 찾습니다.

비주얼 모드는 도움이 되지 않습니다. 표시기에 현재 패턴만 표시되도록 했습니다.

표시기 자체는 첫 번째 인덱스(MQL4)의 값을 인쇄하고 첫 번째 인쇄는 잘못된 값으로 나오고 나머지는 새 눈금에서 정확합니다.

코드 보기가 어렵지 않으시다면 개인적으로 쪽지로 보내드렸습니다.

 

일반적으로 추세선을 따라 모든 계산을 Expert Advisor로 전송했습니다. 제대로 인쇄되는 것 같습니다.

전체 라인 스팬에 표시할 인디케이터는 수행할 수 없습니다. 경험이 충분하지 않습니다.

트랜잭션이 올바르게 열렸는지 시각적으로 확인하려면 표시기 자체가 필요합니다.

시각화를 위해 그래픽 개체를 사용하기로 결정했습니다.

오류 4200 문제(개체가 이미 존재함)

매번 개체에 새 이름 을 지정하려고 했습니다. 같은 오류입니다.

여러 개체를 호출할 수 있습니까? 그렇다면 어떻게 보의 여분의 부분을 잘라낼 수 있습니까?

         long    chart_ID= 0 ;         // ID графика
         string name=TimeToStr(Time[0]);
         int     sub_window= 0 ;       // номер подокна
         //--- сбросим значение ошибки
         ResetLastError ();
         //--- создадим трендовую линию по заданным координатам
         if (! ObjectCreate (chart_ID,name, OBJ_TREND ,sub_window,Time[minbar],Low[minbar],Time[IPMIN],Low[IPMIN]))
           {
             Print ( __FUNCTION__ ,
                   ": не удалось создать линию тренда! Код ошибки = " , GetLastError ());
             return ( 0 );
           }
         ObjectSet( "TrendLine" ,OBJPROP_TIME1,Time[minbar]);
         ObjectSet( "TrendLine" ,OBJPROP_PRICE1,Low[minbar]);
         ObjectSet( "TrendLine" ,OBJPROP_TIME2,Time[IPMIN]);
         ObjectSet( "TrendLine" ,OBJPROP_PRICE2,Low[IPMIN]);

 
forexman77 :

일반적으로 추세선을 따라 모든 계산을 Expert Advisor로 전송했습니다. 제대로 인쇄되는 것 같습니다.

전체 라인 스팬에 표시하는 인디케이터는 할 수 없습니다. 경험이 충분하지 않습니다.

트랜잭션이 올바르게 열렸는지 시각적으로 확인하려면 표시기 자체가 필요합니다.

시각화를 위해 그래픽 개체를 사용하기로 결정했습니다.

오류 4200 문제(개체가 이미 존재함)

매번 개체에 새 이름 을 지정하려고 했습니다. 같은 오류입니다.

여러 개체를 호출할 수 있습니까? 그렇다면 어떻게 보의 여분의 부분을 잘라낼 수 있습니까?

생성하기 전에 ObjectFind() 함수를 사용하여 객체가 존재하는지 확인할 수 있습니다. 당신은 아무것도 할 수 없습니다. 알겠습니다. 끔찍한 실수가 아닙니다.

많은 개체. 개체 이름에 막대 시간을 추가하면 고유한 이름을 얻을 수 있습니다.

빔을 잘라냅니다. 속성 ObjectSet(이름,OBJPROP_RAY,거짓);