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

 

hoz :

1. Если эксперт снять с графика тоже поступит команда ТРУ от  IsStopped()  ?

2. 즉 차트에서 올빼미나 스크립트를 제거할 때만 더 자주 발생합니다. 이 기능이 작동하는 이유가 있습니까?

3. 어디에서 읽을 수 있습니까?

4. 그리고 함수의 본문에 조건을 만들고, 조건이 충족되면 IsStopped() = true , 맞습니까?

1. 네.

2. 일정에서 제외된다는 것만 알고 있습니다.

3. 모르겠다.

4. 당신은 할 수 있습니다.

 
4. ?
 
tara :
4. ?

?
 
tara :
4. ?

아마도 질문을 이해하지 못했을 것입니다. IsStopped()=true 가 되도록 직접 만들면 불가능합니다.
 
hoz :

?

구현을 보여주십시오. 그렇지 않으면 제곱 삼항식으로 상상조차 할 수 없습니다.
 
Integer :

아마도 질문을 이해하지 못했을 것입니다. IsStopped()=true가 되도록 직접 만들면 불가능합니다.

모두. 질문이 삭제되었습니다.
 
Integer :

아마도 질문을 이해하지 못했을 것입니다. IsStopped()=true가 되도록 직접 만들면 불가능합니다.


그래서 이해할 수 있습니다. 나는 그것을 스스로 할 의도가 없었다. 실제로 주기에서 무언가가 실행되면 전문가 또는 스크립트가 차트에서 제거될 때까지 실행되며 따라서 그 순간에 명령이 서버로 전송됩니다.

IsStoped() = true ;

나는 여기에서 TarasBy 가 작성한 함수를 열었습니다. 그래서 거기에는 다음과 같은 기능이 있습니다.

 //IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
//|  Автор : TarasBY, taras_bulba@tut.by                                              |
//+-----------------------------------------------------------------------------------+
//|        Запускаем в цикл получение рыночной цены.                                  |
//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
double fGet_TradePrice ( int fi_Price,           // Цена: 0 - Bid; 1 - Ask
                         bool fb_RealTrade,       // реальная торговля или оптимизация\тестирование
                         string fs_Symbol = "" )   // валютная пара
{
     double ld_Price = 0.0 ;
//----
     if (fs_Symbol == "" )
    {
       fs_Symbol = Symbol ();
    }
     //RefreshRates();
     switch (fi_Price)
    {
       case 0 :
           if (fb_RealTrade)
          {
             while (ld_Price == 0.0 )
             {
                 if (fs_Symbol == Symbol ())
                {
                   ld_Price = Bid;
                }
                 else
                {
                   ld_Price = MarketInfo (fs_Symbol, MODE_BID);
                }
                 if (!IsExpertEnabled() || IsStopped ())
                {
                   break ;
                }
                 Sleep ( 50 );
                RefreshRates();
             }
          }
           else
          {
             if (fs_Symbol == Symbol ())
             {
                 return (Bid);
             }
             else
             {
                 return (MarketInfo (fs_Symbol, MODE_BID));
             }
          }
           break ;
       case 1 :
           if (fb_RealTrade)
          {
             while (ld_Price == 0.0 )
             {
                 if (fs_Symbol == Symbol ())
                {
                   ld_Price = Ask;
                }
                 else
                {
                   ld_Price = MarketInfo (fs_Symbol, MODE_ASK);
                }
                 if (!IsExpertEnabled() || IsStopped ())
                {
                   break ;
                }
                 Sleep ( 50 );
                RefreshRates();
             }
          }
           else
          {
             if (fs_Symbol == Symbol ())
             {
                 return (Ask);
             }
             else
             {
                 return (MarketInfo (fs_Symbol, MODE_ASK));
             }
          }
           break ;
   }
//----
   return (ld_Price);
}

왜 여기에 조건이 있는지 궁금합니다.

 if (!IsExpertEnabled() || IsStopped ())

BID를 즉시 얻은 다음 IsStopped()IsExpertEnabled() 함수의 플래그를 확인합니다. 논리는 어디에 있습니까? 제 생각에는 바로 확인하는게 편하고 뭔가 이상하면 그 기능을 빠져나와요..

다음은 RefreshRates() 명령입니다. 처음에는 시장 데이터가 업데이트되지 않았지만, 이후.. 이 BID 변수가 이미 수신되었을 때 이미 업데이트 중입니다. 내가 그렇게 생각하지 않거나 작가가 나와 맞지 않는 특정 사고 방식을 가지고 있습니다. 요점이 뭐야?

 
hoz :

나는 여기에서 TarasBy 가 작성한 함수를 열었습니다. 그래서 거기에는 다음과 같은 기능이 있습니다.

왜 여기에 조건이 있는지 궁금합니다.

BID를 즉시 얻은 다음 IsStopped()IsExpertEnabled() 함수의 플래그를 확인합니다. 논리는 어디에 있습니까? 제 생각에는 바로 확인하는게 편하고 뭔가 이상하면 그 기능을 빠져나와요..

다음은 RefreshRates() 명령입니다. 처음에는 시장 데이터가 업데이트되지 않았지만, 이후.. 이 BID 변수가 이미 수신되었을 때 이미 업데이트 중입니다. 내가 그렇게 생각하지 않거나 작가가 나와 맞지 않는 특정 사고 방식을 가지고 있습니다. 요점이 뭐야?

내일 이고르가 대답할지도...

나는 이것을 할 것입니다 :

 switch (fi_Price)
 {
   case 0 : return (MarketInfo(fs_Symbol, MODE_BID));
   case 1 : return (MarketInfo(fs_Symbol, MODE_ASK));
 }

제 생각에는 다른 모든 것은 불필요합니다.
 

모두에게 좋은!

조언자에게 마지막으로 트리거된 경고를 참조하도록 가르칠 수 있습니까?

 
Zhunko :

내일 이고르가 대답할지도...

나는 이것을 할 것입니다 :

제 생각에는 다른 모든 것은 불필요합니다.


Vadim , 나는 당신이 쓴 것과 똑같이 할 것입니다! 그래서 질문을 했습니다. 내가 몰랐을 수도 있겠다는 생각이 들었다. 당분간은 나 자신의 논리와 다른 프로그래머의 논리를 관찰한다. 기본 논리 외에도 여러 가지 요소를 고려해야 하기 때문입니다.
사유: