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

 
solnce600 :
그리고 어떤 버튼으로 웃거나 마음을 잃습니까?

Urri는 이것을 결코 인식하지 못했고이 버튼을 나 자신도 모르지만 때로는 꼬리를 흔듭니다. 선생님 ... :))))
 
lottamer :

다른 조건에 대한 추가 테스트를 위해 2시간 동안 테스트 조각을 작성하려고 했습니다.

작동하지 않습니다!

오류를 알려주세요

주문이 2pp 이후에 열리는 것이 합리적입니다.

판매 시작 및 종료...



모든 것이 논리적으로 옳은 것 같습니다! 주의 사항 - 모든 변수는 괄호 안에 있는 변수를 포함하여 시작 부분 위에 선언되어야 합니다.
 
hoz :


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


원칙적으로 무한한 것으로 판명될 수 있는 while 루프가 있으므로 차트에서 Expert Advisor를 제거하거나 종료를 용이하게 하기 위한 조치가 취해졌습니다.

루핑보다 뭔가 잘못되면 시작을 완전히 완료하는 것이 좋습니다. 다음 눈금에서 반복합니다.

 
lottamer :

Kim의 함수에는 매개변수 time = " 1970년 이후 날짜 및 시간(초) " 이 있습니다.

나는 2가지 옵션을 시도했다

둘 다 현재 날짜가 아니라 전체 역사에 대한 전체 이익을 제공합니다....

현재 날짜는 현재 D1 막대(iTime(NULL, PERIOD_D1 , 0))의 시작 부분에서 시작하지만 쉬운 방법을 찾고 있지 않습니까?! :)))
 
hoz :

별도의 함수를 작성하는 논리를 잘 이해하지 못합니다. 결국 RefreshRates() 함수 자체는 미리 정의된 변수의 데이터를 업데이트하는 역할을 합니다. 그리고 BidAsk 는 결국 미리 정의된 변수입니다. RefreshRates() 함수가 미리 정의된 변수를 업데이트하는 경우 추가 함수를 작성하는 이유는 무엇입니까?설명할 수 있습니까?

한 가지 기능이 있습니다.

bool 새로 고침 비율( )

사전 정의된 변수 및 시계열 배열의 데이터 업데이트. 이 기능은 Expert Advisor 또는 스크립트가 오랫동안 계산을 수행하여 업데이트된 데이터가 필요한 경우에 사용됩니다. 데이터가 업데이트되면 TRUE를 반환하고 그렇지 않으면 FALSE를 반환합니다. 데이터가 클라이언트 단말기의 현재 상태와 일치하기 때문에 업데이트되지 않을 수 있습니다. Expert Advisors 및 스크립트는 기록 데이터의 자체 사본으로 작동합니다. 현재 기호에 대한 데이터 복사본은 Expert Advisor 또는 스크립트를 처음 실행하는 동안 생성됩니다. 다음에 Expert Advisor를 실행할 때마다(스크립트가 한 번 실행되고 들어오는 틱에 의존하지 않음을 기억하십시오) 처음에 생성된 복사본이 업데이트됩니다. Expert Advisor 또는 스크립트가 실행되는 동안 하나 이상의 새 틱이 올 수 있으므로 데이터가 오래될 수 있습니다.

데이터도 즉시 업데이트되지 않습니다. 이것은 통제되어야 합니다.

 
Zhunko :

한 가지 기능이 있습니다.

bool 새로 고침 비율( )

사전 정의된 변수 및 시계열 배열의 데이터 업데이트. 이 기능은 Expert Advisor 또는 스크립트가 오랫동안 계산을 수행하여 업데이트된 데이터가 필요한 경우에 사용됩니다. 데이터가 업데이트되면 TRUE를 반환하고 그렇지 않으면 FALSE를 반환합니다. 데이터는 클라이언트 단말의 현재 상태와 일치하기 때문에 업데이트되지 않을 수 있습니다. Expert Advisors 및 스크립트는 기록 데이터의 자체 사본으로 작동합니다. 현재 기호에 대한 데이터 복사본은 Expert Advisor 또는 스크립트를 처음 실행하는 동안 생성됩니다. 이후에 Expert Advisor를 실행할 때마다(스크립트가 한 번 실행되고 들어오는 틱에 의존하지 않음을 상기하십시오) 처음에 생성된 복사본이 업데이트됩니다. Expert Advisor 또는 스크립트가 실행되는 동안 하나 이상의 새 틱이 올 수 있으므로 데이터가 오래될 수 있습니다.

데이터도 즉시 업데이트되지 않습니다. 이것은 통제되어야 합니다.


이 참고자료를 바탕으로 ASK 가격을 구해보자. RefreshRates() 를 실행하면 미리 정의된 변수 배열의 데이터가 업데이트됩니다. 따라서 ASK 가격이 변경된 경우 RefreshRates() 를 실행한 후 ASK는 새 값을 사용합니다. 그리고 다음과 같이 진행된다면:

데이터는 클라이언트 단말의 현재 상태와 일치하기 때문에 업데이트되지 않을 수 있습니다.  

ACK 값은 변경되지 않았습니다. 따라서 계산은 ACK의 이전 값을 사용합니다. 변경되지 않았습니다.

어쨌든 RefreshRates() 함수가 TRU 값을 반환하면 데이터가 성공적으로 업데이트된 것이므로 제어할 필요가 없습니다! 동의하지 않습니까?

 
hoz :


이 참고자료를 바탕으로 ASK 가격을 구해봅시다. RefreshRates() 를 실행하면 미리 정의된 변수 배열의 데이터가 업데이트됩니다. 따라서 ASK 가격이 변경된 경우 RefreshRates() 를 실행한 후 ASK는 새 값을 사용합니다. 그리고 다음과 같이 진행된다면:

ACK 값은 변경되지 않았습니다. 따라서 계산은 ACK의 이전 값을 사용합니다. 변경되지 않았습니다.

어쨌든 RefreshRates() 함수가 TRU 값을 반환하면 데이터가 성공적으로 업데이트된 것이므로 제어할 필요가 없습니다! 동의하지 않습니까?

아니요. FALSE를 반환할 수 있으며 데이터가 최신 상태가 됩니다.

데이터가 클라이언트 단말기의 현재 상태와 일치하기 때문에 업데이트되지 않을 수 있습니다.

데이터가 신선하다고 생각할 수 있는 신호를 스스로 찾아야 합니다. 다른 작업의 경우 다를 수 있습니다.
 
Zhunko :

아니요. FALSE를 반환할 수 있으며 데이터가 최신 상태가 됩니다.

저것들. 문서에 명확한 버그가 있습니까? 그리고 당신은 문서를 믿을 수 없습니까?

쥰코 :

데이터가 신선하다고 생각할 수 있는 신호를 스스로 찾아야 합니다. 다른 작업의 경우 다를 수 있습니다.

ASK 가격에 대해 이야기하고 있다고 가정해 보겠습니다. 2개의 변수가 있습니다.

ASK - RefreshRates() 함수 실행 후 값 묻기

_ACK - Ask 의 마지막으로 알려진 값.

_____________________________________________________________________________________

글쎄, 말하기 어렵다. 기호는 그것이 될 수 있는 것입니다. 2가지 옵션이 있습니다:

1. 미리 정의된 변수 의 값이 변경되었습니다. RefreshRates()True 를 반환합니다.

2. 미리 정의된 변수의 값은 변경 되지 않았습니다 . RefreshRates()False 를 반환합니다.

반대편에서 보면 표지판을 찾는 것입니다. 2가지 옵션이 있습니다:

1. 미리 정의된 변수의 값이 변경되었습니다. 저것들. 우리의 경우 Ask = ASK

2. 미리 정의된 변수의 값은 변경 되지 않았습니다 . 저것들. 묻다 = _ASK

변경된 값이 있거나 변경되지 않은 것 중 하나이며 다른 것은 제공되지 않습니다. 그러면 어떻게 합니까?

 
hoz :

저것들. 문서에 명확한 버그가 있습니까? 그리고 문서를 믿을 수 없습니까?

ASK 가격에 대해 이야기하고 있다고 가정해 보겠습니다. 2개의 변수가 있습니다.

ASK - RefreshRates() 함수 실행 후 값 묻기

_ACK - Ask 의 마지막으로 알려진 값.

_____________________________________________________________________________________

글쎄, 말하기 어렵다. 기호는 그것이 될 수 있는 것입니다. 2가지 옵션이 있습니다:

1. 미리 정의된 변수의 값이 변경되었습니다. RefreshRates()True 를 반환합니다.

2. 미리 정의된 변수의 값은 변경 되지 않았습니다 . RefreshRates()False 를 반환합니다.

반대편에서 보면 표지판을 찾는 것입니다. 2가지 옵션이 있습니다:

1. 미리 정의된 변수의 값이 변경되었습니다. 저것들. 우리의 경우 Ask = ASK

2. 미리 정의된 변수의 값은 변경 되지 않았습니다 . 저것들. 질문 = _ASK

변경된 값이 있거나 변경되지 않은 것 중 하나이며 다른 것은 제공되지 않습니다. 그러면 어떻게 합니까?

모든 것이 문서에 나와 있습니다. 이것은 단지 설명되었으며 그것이 당신의 관심을 끌었습니다.

데이터가 업데이트되면 TRUE를 반환하고 그렇지 않으면 FALSE를 반환합니다. 데이터가 클라이언트 단말기의 현재 상태와 일치하기 때문에 업데이트되지 않을 수 있습니다.

저것들. 이 함수는 새 데이터가 도착했으며 더 이상 아무것도 없음을 나타냅니다.

나머지는 어떻게 원하시는지 모르겠습니다. 막대가 0인 서버(MarketInfo())의 데이터를 확인합니다. 나는 그들이 동일하기를 기다리고 있습니다. 그건 그렇고, 이것은 즉각적인 역사에 "구멍"이 없다는 것을 보장하지 않습니다. 1, 2 또는 3개의 막대 또는 여러 개의 막대가 쉽게 누락될 수 있지만 0이 있습니다. 때때로 그들은 나중에 옵니다. 가끔 - 아니.

 
Zhunko :

저것들. 이 함수는 새 데이터가 도착했으며 더 이상 아무것도 없음을 나타냅니다.

글쎄, 새로운 데이터가 도착했다면 이것이 우리에게 필요한 것입니다. 그렇지 않습니까?
쥰코 :

막대가 0인 서버(MarketInfo())의 데이터를 확인합니다. 나는 그들이 동일하기를 기다리고 있습니다. 그건 그렇고, 이것은 즉각적인 역사에 "구멍"이 없다는 것을 보장하지 않습니다. 1, 2 또는 3개의 막대 또는 여러 개의 막대가 쉽게 누락될 수 있지만 0이 있습니다. 때때로 그들은 나중에 옵니다. 가끔 - 아니.

네, 0번째 마디의 데이터가 필요합니다. MarketInfo()는 그렇지 않으면 0번째 막대에서 데이터를 가져옵니다. 그렇다면 왜 그것들을 무언가와 비교합니까?
쥰코 :

그건 그렇고, 이것은 즉각적인 역사에 "구멍"이 없다는 것을 보장하지 않습니다. 1, 2 또는 3개의 막대 또는 여러 개의 막대가 쉽게 누락될 수 있지만 0이 있습니다. 때때로 그들은 나중에 옵니다. 가끔 - 아니.

글쎄, 역사에 구멍이 있더라도 이것은 어떤 식 으로든 현재 계산에 영향을 미치지 않습니다. 그리고 그것은 구멍이 있는 순간에 반영될 것입니다. 저것들. 현재 Ask를 얻으면 몇 막대 전에 가격이 얼마였습니까? (공식적으로는 아니지만 특정 시장 변수와 관련된 현재 순간과 관련하여 0번째 막대의 시간이 완전히 정당화됩니다!

물론 깊이 파고 들었지만 어떻게 행동하는 것이 가장 좋은지 이해하고 싶습니다.

여기 Vadim은 위에서 함수를 잘못 작성했다고 말했습니다 . 다음 행을 추가하여 다시 복제하겠습니다.

 double fGet_TradePrice( int fi_price,       // Цена: 0 - Bid; 1 - Ask
                       string fs_symbol)   // валютная пара
{
   double ld_price = 0.0 ;
   
   switch (fi_price)
   {
         case 0 :
         if (fs_symbol == Symbol ())
         {
             RefreshRates();
             ld_price = Bid;
         }
         else
             ld_price = MarketInfo(fs_symbol, MODE_BID);
         
         case 1 :
         if (fs_symbol == Symbol ())
         {
             RefreshRates();
             ld_price = Ask;
         }
         else
             ld_price = MarketInfo(fs_symbol, MODE_ASK);
   }
   
     if (ld_price != 0 )
         return (ld_price);
}

당신의 생각에는 무엇이 문제입니까?

사유: