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

 

어드바이저 코드를 스크립트로 옮기려고 했습니다.

스크립트에서 줄이 겹쳤는데 EA에서 작동하지 않는 이유가 명확하지 않습니까?

4명 중 누가 EA 시각화를 시작할 때 차트 하위 창에 개체를 그렸습니까?


 
forexman77 :

어드바이저 코드를 스크립트로 옮기려고 했습니다.

스크립트에서 줄이 겹쳤는데 EA에서 작동하지 않는 이유가 명확하지 않습니까?

4명 중 누가 EA 시각화를 시작할 때 차트 하위 창에 개체를 그렸습니까?


그릴 인디케이터 서브 윈도우의 번호를 지정합니다.
 
Artyom Trishkin :
그릴 인디케이터 서브 윈도우의 번호를 지정합니다.

그래서 나는 고문에 -1을 표시합니다. 스크립트에서는 모든 것이 정상입니다. 위의 그림입니다. 나는 그것을 알아낼 때까지 AD 표시기에 대한 귀하의 기사를 여러 번 읽었습니다. 언제나 그렇듯이 이유는 사소한 것입니다.

내가 아는 한, 어떤 이유로 어드바이저에서 창을 찾을 수 없습니다(오류 4206).

 
forexman77 :

그래서 나는 고문에서 -1을 나타냅니다. 스크립트에서는 모든 것이 정상입니다. 위의 그림입니다. 나는 그것을 알아낼 때까지 AD 표시기에 대한 귀하의 기사를 여러 번 읽었습니다. 언제나 그렇듯이 이유는 사소한 것입니다.

내가 이해하는 한, 어떤 이유로 어드바이저에서 창을 찾을 수 없습니다. 오류 4206입니다.

표시기가 있는 창을 만드는 데 시간이 필요합니다. OnCalculate() 에 대한 첫 번째 호출 이전에 표시기 창에 그릴 수 있습니다. OnInit()에 모든 것을 그리시겠습니까?
 
Karputov Vladimir :
표시기가 있는 창을 만드는 데 시간이 필요합니다. OnCalculate() 에 대한 첫 번째 호출 이전에 표시기 창에 그릴 수 있습니다. OnInit()에 모든 것을 그리시겠습니까?
아니요. 거래가 시작된 후, 즉 먼저 포지션을 여는 선이 있고 열리면 드로잉이 시작됩니다.

다음은 EA의 코드입니다.

 string    shortName= "fraktalSDV" ; 
long    chart_ID= 0 ;         // ID графика
int win_idx= ChartWindowFind (chart_ID,shortName);
string nameobj=TimeToStr(Time[ 0 ]);       
             //--- сбросим значение ошибки
             ResetLastError ();
             //--- создадим трендовую линию по заданным координатам
           if (! ObjectCreate (chart_ID,nameobj, OBJ_TREND ,win_idx,Time[index],maximum1,Time[ 1 ],TRENDmax[ 1 ]))
            {
             Print ( __FUNCTION__ ,
                   ": не удалось создать линию тренда! Код ошибки = " , GetLastError ());
             return ( 0 );
            }
ObjectSet(nameobj, OBJPROP_RAY , false ); 

표시기 자체에 다음 줄이 있습니다.

IndicatorShortName( "fraktalSDV" );

 
forexman77 :

그래서 나는 고문에 -1을 표시합니다. 스크립트에서 위의 그림과 같이 모든 것이 일반적으로 렌더링됩니다. 나는 그것을 알아낼 때까지 AD 표시기에 대한 귀하의 기사를 여러 번 읽었습니다. 언제나 그렇듯이 이유는 사소한 것입니다.

내가 이해하는 한, 어떤 이유로 어드바이저에서 창을 찾을 수 없습니다. 오류 4206입니다.

표시기 하위 창을 찾지 않습니다. 표시기의 짧은 이름 으로 표시기 창을 찾으십시오. 표시기 창의 왼쪽 상단에 표시됩니다. 확실히 검색에 대한 전체 이름을 지정하지 않습니다.
 
Artyom Trishkin :
표시기 하위 창을 찾지 않습니다. 표시기의 짧은 이름 으로 표시기 창을 찾으십시오. 표시기 창의 왼쪽 상단에 표시됩니다. 확실히 검색에 대한 전체 이름을 규정하지 않습니다.

문자열 shortName= "fraktalSDV" ;

그래서 전화합니다. 엑스퍼트 어드바이저에서 지표명을 불러서 출력해보려고 했으나 아직 잘 안되네요.

다음은 지표 자체입니다. 제가 한 일입니다. 그럼 삭제하겠습니다.

 
forexman77 :

문자열 shortName= "fraktalSDV" ;

그래서 전화합니다. 어드바이저에 있는 인디케이터 이름을 불러보려고 했는데 아직 안되네요.

시도

 int win_idx= ChartWindowFind (chart_ID,shortName);

표시창이 아닌 단위로 검색을 입력하세요(차트에 창이 하나뿐인가요?)

그것이 작동하면 창 검색을 제자리로 되돌려 놓습니다.

 long    chart_ID= 0 ;         // ID графика

쓰다

 long    chart_ID= ChartID ();
 
Artyom Trishkin :

시도

표시창이 아닌 단위로 검색을 입력하세요(차트에 창이 하나뿐인가요?)

상단에는 따옴표가 있는 차트 자체가 있고 하단에는 별도의 지표가 있습니다.
 
forexman77 :
상단에는 따옴표가 있는 차트 자체가 있고 하단에는 별도의 지표가 있습니다.
글쎄, 그들이 당신에게 말한대로하십시오;) 당신은 실수를 찾아야합니다 ...