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

 
okvseok :


음, 예를 들어 마우스 휠(키)을 3분 동안 왼쪽이나 오른쪽으로 돌리지 마십시오))), 막대의 특정 날짜 또는 다른 것을 입력하기만 하면 됩니다.

답변 해주셔서 감사합니다!


스페이스바를 누르고 원하는 날짜를 입력하세요.

답은 무의미한 사실입니다. 질문과 완전히 일치합니다.

 
TarasBY :
차트의 왼쪽 하단 모서리(날짜가 있는 위치)에서 두 번 클릭하고 열리는 창에서 원하는 날짜를 DD.MM.YYYY 형식으로 입력합니다. 이러한 "비수동" 옵션이 적합할까요?
네, 정말 감사합니다. 다 괜찮아.
 
Run :

또는 다른 말로 할 수 있습니다
스크립트는 계획대로 대략 n번째 줄을 작성해야 하며 한 줄만 작성합니다.

먼저 파일을 열고 닫는 절차를 루프 외부로 이동합니다.
 

감사합니다

  handle= FileOpen ( "AUDJPY.csv" , FILE_READ | FILE_WRITE , '\t' );
   for ( int i=NumberOfCandels; i> 0 ; i--) {
    arrowbuy = iCustom ( NULL , 0 , "xxx" , 0 , i);
    arrowsell = iCustom ( NULL , 0 , "xxx" , 1 , i);
     if (arrowbuy != EMPTY_VALUE && arrowsell == EMPTY_VALUE ) {
       if (handle> 0 ) {
         FileWrite (handle, TimeToStr(Time[i], TIME_DATE|TIME_MINUTES), " Buy" );
        }
      }
     if (arrowsell != EMPTY_VALUE && arrowbuy == EMPTY_VALUE ) {
       if (handle> 0 ) {
         FileWrite (handle, TimeToStr(Time[i], TIME_DATE|TIME_MINUTES), " Sell" );
        }
      }
  }
   FileClose (handle);
 
okvseok :


음, 예를 들어, 마우스 휠(키)을 3분 동안 왼쪽이나 오른쪽으로 돌리지 마십시오))), 막대의 특정 날짜 또는 다른 것을 입력하기만 하면 됩니다.

답변 해주셔서 감사합니다!

그런 기능이 있다

int iBarShift ( 문자열 기호, int timeframe, datetime time, bool exact=false)
시간으로 바를 검색하세요. 함수는 지정된 시간이 속한 막대의 오프셋을 반환합니다. 지정된 시간 동안 막대가 없으면(히스토리에 "구멍") 정확한 매개변수에 따라 -1 또는 가장 가까운 막대의 오프셋이 반환됩니다.
옵션:
기호 - 도구의 상징적 이름입니다. NULL은 현재 문자를 의미합니다.
시간대 - 기간. 차트 기간 중 하나일 수 있습니다. 0은 현재 차트의 기간을 의미합니다.
시각 - 검색할 시간 값입니다.
정확한 - 막대를 찾을 수 없는 경우 반환 값입니다. FALSE - iBarShift는 가장 가까운 것을 반환합니다. 참 - iBarShift는 -1을 반환합니다.
예시:
 datetime some_time=D'2004.03.21 12:00';
  int shift=iBarShift("EUROUSD",PERIOD_M1,some_time);
  Print("열린 시간이 있는 막대의 이동 ",TimeToStr(some_time)," is ",shift);

 
Chiripaha :

:))))))))) (표기 없이... 그리고 주석 없이)

둘 중 질문자와 답변자, 오히려 질문자인 당신은 지연이 작동할 때 어떤 일이 발생하는지 잘 이해하지 못합니다. 보류 중인 주문은 가장 가까운 가격으로 실행됩니다. 연기 규칙 - 가격에 도달하면 거래가 시장에 나타납니다. 그리고 가격은 중요하지 않습니다. 이것은 손절매에도 적용됩니다. 그들은 또한 주문을 보류하고 있으며 거래 자체의 반대 위치에 있습니다. 이것은 증권 거래소에서의 거래와 다소 다릅니다. 아마도 그것이 당신이 혼란스러워하는 이유일 것입니다.

이런 의미에서 많은 것은 브로커의 품질에 달려 있습니다. 이것은 트랜잭션 실행에 대한 규칙과 이 브로커의 유동성 가용성, 그리고 아마도 다른 많은 기능을 의미합니다. 정직성 등을 가정합니다. 거의 모든 외환 브로커(DC)와의 계약을 읽으면 다음과 같이 바뀝니다. 귀하의 거래(다른 거래자와 마찬가지로)는 이 "브로커"의 편리한 가격으로 체결될 수 있으며 이는 법률 및 규정의 틀 내에서 이루어지기 때문입니다. 당신이 서명했습니다. - 그러나 이것은 다른 주제입니다. 프로그래밍과 관련이 없습니다.


이것은 이해할 수 있지만 나는 데모에 로봇을 포함시켰습니다! 거기에는 일반적으로 사람들을 끌어들이기 위해 열리는 모든 규범이 있습니다. 동시에, 다시 반복합니다. 예금은 손으로 열었고 노출된 곳에서는 열렸습니다!
 
Ekburg :

이것은 이해할 수 있지만 나는 데모에 로봇을 포함시켰습니다! 거기에는 일반적으로 사람들을 끌어들이기 위해 열리는 모든 규범이 있습니다. 동시에, 다시 말하지만, 예금은 손으로 열었고 노출된 곳에서는 열렸습니다!

결론은 다음과 같습니다. 물론 관심을 끌기 위해 일반적인 설명만 제공했기 때문에 조건을 더 자세히 설명하도록 요청할 수 있습니다. 지연이 로봇에 의해 설치되었을 때(미리 여부, 수동 시간적으로 로봇과 거의 동일합니다. 그러나 어쨌든이 경우 브로커와 만 처리해야합니다. 왜냐하면. 그는 아마도 트랜잭션 실행을 대기열에 넣는 자신의 스레드를 가지고 있습니다. 대기열에 먼저 수동 연기가 있는 경우 연기에 대한 실행 시간(다른 클라이언트의 대기열 포함)이 다르므로 가격도 다를 수 있다고 가정합니다. 그리고 로봇이 신호를 형성하는 기간 동안 지연을 설정하면 대기열에 들어가는 것이 다시 명확하지 않으므로 실행 가격의 변동이 가능합니다. 아무 것도 쓰지 않은 위치의 크기도 영향을 줄 수 있습니다... 등등...

하지만...역시 브로커(DC)를 통해서만 알 수 있습니다. 그리고 나는 그가 내가 언급하지 않은 많은 이유를 찾을 것이라고 생각합니다. -그리고 조언은 정확했습니다. 물론 보류중인 주문 에 대한 요청이 이동했다고 생각하는 경우 손과 브로커에 로그인하십시오. 그러나 두 가지 다른 개념을 혼동하지 마십시오. 보류 중인 주문과 이 보류 중인 주문에 대한 거래. 보류 주문은 신고된 수량과 가장 가까운 가격으로 시장에 진입하는 주문입니다. 거래는 선언된 금액(로트)에 대해 주문을 실행할 수 있었던 가격입니다. - 그리고 이러한 주문의 가격은 (특히 링크가 제공된 빠른 시장에서) 다를 가능성이 큽니다. 지정가 주문의 경우 주문 가격과 실행 가격은 동일합니다(정의에 따라).

그리고 브로커와 데모와 실제가 다르지 않다는 사실-좋습니다! - 이것은 브로커가 고객을 유치하기 위해 거래를 조작하지 않는다는 것을 암시합니다(귀하의 말에서). - 이 경우 불일치가 보이지 않습니다.

 
Zhunko :

1. 어떻게 런칭하셨나요? 먼저 업데이트하지 않고 시작해야 합니다. 저것들. IsRefreshRate = 거짓. 데이터가 업데이트되지 않습니다.

2. 그런 다음 IsRefreshRates = true로 실행합니다. 데이터가 업데이트됩니다.

스크린샷 1: 스크린샷 2:

바 시간에주의하십시오. 또한 MarketInfo()가 시장 개요에서 데이터를 가져오는 것을 볼 수 있습니다.

여기 전문가가 있습니다. 조금 수정했습니다. 악기의 이름을 표시합니다.


1. 하나의 단말기에서 업데이트 유무에 관계없이 어쨌든 화면은 동일합니다! Duki에서 99% 인용을 위해 올빼미를 테스트하기 위한 스크립트와 함께 터미널을 다운로드했습니다. 나는 그것들을 채웠다. 왜냐하면 사이즈가 커서 첨부하지 않았습니다. 여기 링크가 있습니다: http://www.load.to/PqWVW2JQ75/Tick_quotes_for_MT4_tester_from_DukasCopy.zip

2. 다른 터미널에서는 이미 상황이 다릅니다. 예를 들어 Oanda에서:

2.1 초기에 다음과 같은 경우:

IsRefreshRates = false

그래서:

2.2 다음의 경우:

IsRefreshRates = true

이와 같이..

첫 번째 모드에서 볼 수 있듯이 가격은 AUDNZD... 쌍에서 멀리 떨어져 있지만 유로를 따라 그리고 두 번째 모드에서는 가격이 정확히 우리가 보고 싶었던 것입니다...

RefreshRates()는 여전히 서버에서 따옴표를 "가져옵니다". 지원이 잠자기 상태이므로 이 옵션은 원래 있던 것보다 더 가깝습니다.

 
Zhunko :
RefreshRates()는 Expert Advisor가 작동하는 항목만 업데이트합니다. 그래서 그는 알게 됩니다. 전문가로부터. 오래 전에 Metaquote의 누군가가 이에 대해 썼습니다.


Vadim, RefreshRates() 가 전문가가 필요로 하는 도구를 알고 있는지 의심스럽습니다. 결국 모든 Expert Advisors가 전역 매개변수에 기호 이름 을 설정한 것은 아닙니다. 그렇습니까? 그렇다면... 그렇다면, RefreshRates() 는 업데이트할 상품과 업데이트하지 않을 상품의 시장 데이터를 어떤 기호로 찾아내는가?
 
Integer :

Junko, 페이지 409, 맨 아래 메시지 - 데이터가 업데이트되는 이유를 알려줍니다. iOpen(), iClose() 함수가 호출되기 때문에 RefreshRates()에서 이를 증명합니다. 처음에는 RefreshRates() 없이 스크립트가 실행되었지만 터미널에서 데이터를 로드하는 iOpen(), iClose() 함수가 호출되었습니다. 두 번째 실행에서 데이터는 이미 거기에 있었고 0 막대가 먼저 로드되었음을 알고 있으므로 데이터가 모두 로드되었지만 모두 로드되지는 않았지만 진행 중이라는 인상을 받았습니다.

...또한 데이터를 로드하는 방법을 알아냈음을 증명합니다... 여기에서 어떤 종류의 흐름과 동기화에 대해 이야기할 수 있는지...


그리고 왜 iOpen() 이 갑자기 서버에서 데이터를 펌핑할까요? 문서에는 값을 반환한다고 나와 있습니다. 따라서 여전히 반환되지만 펌핑되지는 않습니다.
사유: