전역 초기화 실패!!!!!!! - 페이지 3

 

힌트 감사합니다!

646부터 이상한 일들이 일어나고 있고, 아무도 도울 수 없는 것 같습니다!

1. 레이블이 XDISTANCE 및 YDISTANCE를 준수하지 않은 것처럼 라인에서 벗어납니다.

그들은 Tf를 앞뒤로 전환한 후에만 인라인으로 돌아갑니다.

차트 창을 전환하거나 매개변수 입력을 변경하면 라인이 벗어납니다.

2. 일부 오래된 인디스가 MT4를 충돌시킵니다.

3. MT4를 시작한 후 먼저 계정에 로그인하고 잠시 후 로그아웃하고 다시 로그인해야 합니다.

4. OrderClose()가 있는 스크립트와 EA는 작동하지 않으며 주문을 닫지 않습니다.

OrderModify()는 잘 작동합니다.

MetaQuotes가 그것에 대해 뭔가를 하도록 하기 위해 우리는 무엇을 할 수 있습니까???

결국, MT4는 거래 플랫폼이므로 장난감이 아니라 진지한 도구입니다!!!

아, 그리고 한 가지 더:

몇 가지 계산을 기반으로 인디가 있는 직사각형을 만들고 있다고 가정해 보겠습니다.

계산은 start() 내부에 있습니다.

그래도 MT4를 시작한 후 진드기에도 내 사각형이 표시되지 않습니다.

그러나 indi를 다시 초기화하거나 Tf를 전환하면 거기에 있습니다.

지금까지 이런 일은 없었다!

 
Dadas :

힌트 감사합니다!

646 이후로 이상한 일들이 일어나고 있고, 아무도 도울 수 없는 것 같습니다!

1. 레이블이 XDISTANCE 및 YDISTANCE를 준수하지 않은 것처럼 라인에서 벗어납니다.

그들은 Tf를 앞뒤로 전환한 후에만 인라인으로 돌아갑니다.

차트 창을 전환하거나 매개변수 입력을 변경하면 라인이 벗어납니다.

즉, 코드에서 수정할 수 있습니다.

2. 일부 오래된 인디스가 MT4를 충돌시킵니다.

코드를 새로운 세계에 맞게 조정해야 합니다. (B600 >) 예를 들어 "제로 나누기"는 심각한 오류이며 표시기를 사라지게 만듭니다(B600 이전에는 없었음).

3. MT4를 시작한 후 먼저 계정에 로그인하고 잠시 후 로그아웃하고 다시 로그인해야 합니다.

열려 있는 차트를 모두 닫고 터미널을 비워 두고(차트를 열지 않은 상태로) 터미널을 다시 시작하고 문제가 계속되면 서비스 데스크에 보고하십시오.

4. OrderClose()가 있는 스크립트와 EA는 작동하지 않으며 주문을 닫지 않습니다.

문제가 귀하의 코드에 있다고 확신합니다. 관련 코드를 보여주시면 누군가 도와드릴 것입니다.

OrderModify()는 잘 작동합니다.

MetaQuotes가 그것에 대해 무언가를 하도록 하려면 무엇을 할 수 있나요???

결국 MT4는 거래 플랫폼이므로 장난감이 아닌 진지한 도구입니다!!!

동의합니다. 하지만 (거의 확실하게) 중요한 오류가 코드에 있다고 생각합니다. 코드를 사용하고 있습니다. 즉, 당시 오류로 작성되었으며 표시기/EA가 작동하는 것을 막지 못한 오류이지만 이제 그들은 중요한 오류이며 수정해야 합니다.

 

다다스,

저는 동료 개발자이며 귀하의 모든 질문에 답할 수 없습니다. 상업화하려는 앱에서 일부 PITA 문제를 직접 처리하고 있습니다. 내가 확실히 제안하는 한 가지는 최소한 init 및 deinit 기능 을 새로운 OnInit() 및 OnDeInit() 기능으로 교체하는 것입니다. start를 OnStart()로 교체할 수도 있습니다. 문서에 따르면 구현은 이전 버전과 호환되어야 하지만 내 경험은 그 반대입니다. 내 인디 중 하나에서 deinit()가 호출되지 않는 상황이 발생했습니다. 내 deinit()가 객체를 삭제하고 있었고 객체가 여전히 존재하기 때문에 재초기화를 일으킨 모든 것이 실패했습니다. 나는 여전히 OnStart() 대신 start()를 사용하지만 그 지혜가 확실하지 않습니다. 나는 내가 선을 따라 문제를 요구하고 있다는 직감이 있습니다. 내 제안을 시도하기로 선택하면 어떻게 되는지 알려주십시오. 우리 개발자들은 함께 뭉쳐야 합니다. :-)

 
Dadas :

아, 그리고 한 가지 더:

예를 들어, 몇 가지 계산을 기반으로 인디가 있는 직사각형을 만들고 있다고 가정해 보겠습니다.

계산은 start() 내부에 있습니다.

그래도 MT4를 시작한 후 틱에도 직사각형이 표시되지 않습니다.

그러나 indi를 다시 초기화하거나 Tf를 전환하면 거기에 있습니다.

지금까지 이런 일은 없었다!


위에서 썼듯이 새로운 세상이 우리 앞에 있습니다
"OnTick"(EA) 또는 "OnCalculate"(지표)를 "시작"하지 마십시오.
 
qjol :

위에서 썼듯이 새로운 세상이 우리 앞에 있습니다
"OnTick"을 "시작"하지 마십시오.


보세요, MetaQuotes는 ProfessorMetal 이 말했듯이 이전 버전과 호환되어야 하는 플랫폼을 출시하고 있습니다!

이미 존재하는 수천 개의 지표, 스크립트 및 EA를 모두 다시 작성할 수 있는 사람은 아무도 없다고 생각합니다.

내 코드가 잘못되었다는 귀하의 제안에 동의하지 않습니다. 일부 레이블은 가장 단순한 코드일 뿐입니다.

그들에게는 아무 것도 없으며 레이블 개체를 만들고 무언가를 계산한 다음 그에 따라 개체를 설정합니다.

다음과 같은 특별한 철학은 없습니다.

   ObjectSet     ( "Lot_Size_Label" , OBJPROP_CORNER ,Corner);

   ObjectSet     ( "Lot_Size_Label" , OBJPROP_XDISTANCE ,XDistance);
   ObjectSet     ( "Lot_Size_Label" , OBJPROP_YDISTANCE ,YDistance);
   ObjectSetText ( "Lot_Size_Label" ,comment,Font_Size,Font_Type,Font_Color);
   ObjectSet     ( "Lot_Size_Label" , OBJPROP_SELECTABLE , false ); 

주문 마감 스크립트와 EA에 관해서는 이전 빌드(500)에서 잘 작동했던 스크립트에 대해 이야기하고 있습니다.

따라서 그것은 내 코드가 정확하고 그렇지 않은 문제가 아닙니다.

그것은 MetaQuotes가 일을 망치는 문제입니다!

나는 힌트를 시도 할 것입니다 프로페서메탈 그래도 코딩을 모르는 유저들은???

그리고 솔직히 말해서, 그들은 코딩에 대해 아는 것도 전혀 없습니다!

그들은 거래 플랫폼을 사용하기로 되어 있습니다!!!

 
ProfessorMetal :

다다스,

저는 동료 개발자이며 귀하의 모든 질문에 답할 수 없습니다. 상업화하려는 앱에서 일부 PITA 문제를 직접 처리하고 있습니다. 내가 확실히 제안하는 한 가지는 최소한 init 및 deinit 기능을 새로운 OnInit() 및 OnDeInit() 기능으로 교체하는 것입니다. start를 OnStart()로 교체할 수도 있습니다. 문서에 따르면 구현은 이전 버전과 호환되어야 하지만 내 경험은 그 반대입니다. 내 인디 중 하나에서 deinit()가 호출되지 않는 상황이 발생했습니다. 내 deinit()가 객체를 삭제하고 있었고 객체가 여전히 존재하기 때문에 재초기화를 일으킨 모든 것이 실패했습니다. 나는 여전히 OnStart() 대신 start()를 사용하지만 그 지혜가 확실하지 않습니다. 나는 내가 선을 따라 문제를 요구하고 있다는 직감이 있습니다. 내 제안을 시도하기로 선택하면 어떻게 되는지 알려주십시오. 우리는 개발자들이 뭉쳐야 합니다. :-)


덕분에 deinit에서 객체가 삭제되지 않는 것과 동일한 문제가 발생했습니다.

인디를 개발하고 있었는데 이상한 결과가 나왔는데, 개체 목록에서 보니 여전히 거기에 있었습니다.

아마도 가장 간단한 방법으로 start()의 ObjectDelete()를 사용하여 이 문제를 해결했습니다.

예, init()를 OnInit()으로 변경하고 deinit()를 OnDeinit()으로 변경하면 레이블이 다시 올바르게 지정됩니다! 감사해요!

그랬더니 얼마 지나지 않아 그렇지 않더라구요!!! 그들은 여전히 같은 춤을 추고 있습니다.

 

코드가 가장 간단한 경우 구현은 실제로 구현되는 코드에 따라 다릅니다. 오류가 발생했을 때 indi/ea가 올바르게 처리할 수 있도록 중요한 지점에서 오류 검사 를 수행해야 합니다. 지난번에도 문제가 있었지만 오류 처리기를 넣으면 지난번에 발생한 문제를 잊어버릴 정도로 원활하게 실행됩니다.


still, what about the users who don't know a thing about coding???

And, frankly speaking, they aren't even supposed to know anything coding!

They are supposed to be using the trading platform!!!

플랫폼은 메타 트레이더 이며 모든 기본 요구 사항이 제공되며 아무도 코딩을 강요하지 않습니다.

 

라벨을 정렬하는 데 무엇이 도움이 되었는지 아십니까?

내 X, Y 좌표는 extern에서 가져옵니다.

 extern int XDISTANCE = 9 ;
extern int YDISTANCE = 9 ;

그 다음에:

 int X,Y;

int OnInit ()
  {
 X = XDISTANCE;
 Y = YDISTANCE;
 ObjectCreate ( "INSTR" , OBJ_LABEL , 0 , 0 , 0 ); 
 
     return ( 0 );
  }

int start() {
         ObjectSet ( "INSTR" , OBJPROP_CORNER ,Corner);
         ObjectSetText ( "INSTR" ,Symbol_Period+Date_Time,FontSize, "Berlin Sans FB" , Color);
         ObjectSet ( "INSTR" , OBJPROP_XDISTANCE , X);
         ObjectSet ( "INSTR" , OBJPROP_YDISTANCE , Y); 
         ObjectSet ( "INSTR" , OBJPROP_SELECTABLE , false );   
   return ( 0 );
  }

이렇게 하면 제대로 됩니다.

또는 오히려 정확하게 옳은 것이 아니라 더 나은 것을 만듭니다.

 
deysmacro :

코드가 가장 간단한 경우 구현은 실제로 구현되는 코드에 따라 다릅니다.


플랫폼은 메타 트레이더 이며 모든 기본 요구 사항이 제공되며 아무도 코딩을 강요하지 않습니다.


당신의 댓글이 누군가에게 어떻게 도움이 될까요???
 
int X,Y;

int OnInit ()
  {
 X = XDISTANCE;
 Y = YDISTANCE;
 ObjectCreate ( "INSTR" , OBJ_LABEL , 0 , 0 , 0 ); 
 
     return ( 0 );
  }

int start() {
         ObjectSet ( "INSTR" , OBJPROP_CORNER ,Corner);
         ObjectSetText ( "INSTR" ,Symbol_Period+Date_Time,FontSize, "Berlin Sans FB" , Color);
         ObjectSet ( "INSTR" , OBJPROP_XDISTANCE , X);
         ObjectSet ( "INSTR" , OBJPROP_YDISTANCE , Y); 
         ObjectSet ( "INSTR" , OBJPROP_SELECTABLE , false );   
   return ( 0 );
  }

객체가 이미 존재하는지 여부를 확인하기 위해 객체 찾기 기능 을 넣지 않습니다. 거기에서 그에 따라 개체를 만듭니다.


How's your comment supposed to help anybody??? 

나는 지금 당신을 돕고 있습니다.