mql5 언어의 특징, 미묘함 및 작업 방법 - 페이지 181

 
Andrey Khatimlianskii :

그런 터미널에서는 보통 1~2개의 차트를 가지고 있어서 혼동하기 어렵습니다. 그러나 의미는 분명합니다.

나는 더 많은 기호를 거래하고 더 많은 고문이 출시됩니다. 아직 거래 불가능한 기호를 모니터링하십시오. 사용자 정의 기호 가 생성되고 테스터가 쟁기질하는 등의 작업이 수행됩니다.

일반적으로 일꾼입니다.
 
fxsaber :

나는 더 많은 기호를 거래하고 더 많은 고문이 출시됩니다. 아직 거래 불가능한 기호를 모니터링하십시오. 사용자 정의 기호가 생성되고 테스터가 쟁기질하는 등의 작업이 수행됩니다.

일반적으로 일꾼입니다.

나는 모든 계정에 대한 투자 비밀번호 아래에만 일꾼이 있습니다. 조언자가 있든 없든 상관하지 마십시오.

 
trader_number_one :

나는 모든 계정에 대한 투자 비밀번호 아래에만 일꾼이 있습니다. 조언자가 있든 없든 상관하지 마십시오.

고문은 거래만 하지 않습니다. 또한, 일꾼에서 거래할 수 있어야 합니다.

 
fxsaber :

10개의 터미널이 있습니다. 하나의 혼란에서 다른 계정으로 전환했습니다. 시간이 지남에 따라 터미널을보고 다른 계정이 필요하다는 것을 알게되었습니다. 이전 계정으로 전환합니다. 그리고 고문이 교수형에 처할 것이라고 전혀 기대하지 않고 고문이 시작되었음을 알 수 있습니다.

계정을 변경할 때 그런 간단한 코드가 작동합니까?

 bool IsShowMessageBox = true ;
//+------------------------------------------------------------------+
int OnInit ()
{
   if (IsShowMessageBox && MessageBox ( "Произвести запуск эксперта?" , "Run EA" , MB_OKCANCEL ) == IDCANCEL ) return ( INIT_FAILED );
   IsShowMessageBox = false ;
   return ( INIT_SUCCEEDED );
}


연결이 끊어지면 다시 로그인하면 이 코드가 실행됩니까?

 
Igor Makanu :

계정을 변경할 때 그런 간단한 코드가 작동합니까?

아니요.

연결이 끊어지면 다시 로그인하면 이 코드가 실행됩니까?

자동 재로그인은 되지 않습니다. 수동 - 것입니다.

 

해결책은 표면에 있습니다. 전환할 때 그래프에서 변경되지 않는 것은 무엇입니까? 맞습니다. 그래픽 개체입니다. 로봇을 시작할 때 DeInit에서 삭제한 그래픽 개체를 생성하고 정상적인 상황에서는 각각 OnInit에서 개체의 존재를 확인합니다. 존재하는 경우 문제가 발생하고 INIT_FAILED를 반환합니다.

다음과 같이 다소:

 #define NAME "test"

int OnInit ()
  {
   static const string symbol= _Symbol ;
   if ( ObjectFind ( 0 ,NAME)>= 0 ||symbol!= _Symbol ) return INIT_FAILED ;
   else ObjectCreate ( 0 ,NAME, OBJ_HLINE , 0 , 0 , 0 );
   return INIT_SUCCEEDED ;
  }

void OnDeinit ( const int reason){
   switch (reason){
       case REASON_PARAMETERS :
       case REASON_PROGRAM :
       case REASON_REMOVE :
       case REASON_INITFAILED :
       case REASON_CLOSE :
       case REASON_CHARTCLOSE :
       case REASON_TEMPLATE :
       case REASON_CHARTCHANGE : ObjectDelete ( 0 ,NAME);
       case REASON_RECOMPILE :
       case REASON_ACCOUNT : break ;
   }
}

void OnTick (){
}
 
Vladimir Simakov :

해결책은 표면에 있습니다. 전환할 때 그래프에서 변경되지 않는 것은 무엇입니까? 맞습니다 - 그래픽 개체입니다. 로봇을 시작할 때 DeInit에서 삭제한 그래픽 개체를 생성하고 정상적인 상황에서는 각각 OnInit에서 개체의 존재를 확인합니다. 존재하는 경우 문제가 발생하고 INIT_FAILED를 반환합니다.

다음과 같이 다소:

저장하는 것은 문제가 되지 않습니다. 여기에서는 일반적으로 EA 초기화를 올바르게 배포해야 합니다. 계정을 전환하는 경우가 가장 걱정되지만 차트 자체가 시작되는 방식과 차트가 준비되지 않은 경우 - 이것은 미스터리로 가려져 있습니다. 어둠 속에서)))

댓글을 읽었는지 확인했는데... 모든 것이 순조롭게 진행되는 것은 아닙니다. 존재하지 않는 기호에서 계정 간에 전환할 때 "검은 화면"에도 표시되지 않습니다.)

 int OnInit ()
{
   string arr_comm[];
   if ( StringSplit ( ChartGetString ( 0 , CHART_COMMENT ), StringGetCharacter ( ";" , 0 ), arr_comm) == 2 ) Print ( "_StopFlag = " , ( bool )(( int )arr_comm[ 0 ]), " ; _UninitReason = " , ( int )arr_comm[ 1 ]);
   return ( INIT_SUCCEEDED );
}
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
{
   Comment (( string ) _StopFlag + ";" + ( string ) _UninitReason );
}
 
Vladimir Simakov :

해결책은 표면에 있습니다. 전환할 때 그래프에서 변경되지 않는 것은 무엇입니까? 맞습니다 - 그래픽 개체입니다. 로봇을 시작할 때 DeInit에서 삭제한 그래픽 개체를 생성하고 정상적인 상황에서는 각각 OnInit에서 개체의 존재를 확인합니다. 존재하는 경우 문제가 발생하고 INIT_FAILED를 반환합니다.

다음과 같이 다소:

동일한 성공 으로 터미널의 전역 변수를 사용할 수 있습니다. 또한 제거되지 않습니다.

 
Konstantin Nikitin :

동일한 성공 으로 터미널의 전역 변수를 사용할 수 있습니다. 또한 제거되지 않습니다.

맛도 색도... 별로...

 
Vladimir Simakov :

맛도 색도... 별로...

예를 들어 VDS의 모든 개체를 삭제합니다. 일정을로드하지 않는 것은 불필요합니다. 예, 그들은 쓸모가 없습니다. 저는 글로벌을 사용합니다. 그래서 그것은 모두 상황에 달려 있습니다.