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

 
그리고 여기에 또 다른 질문이 있습니다. SecondsAfterOpenLastPos() 함수. 어드바이저가 비활성화된 경우 이 함수는 어제 마감된 마지막 거래의 값을 반환합니까? (나는 확인할 수 없다 - 시장은 서있다)
 
rigonich :


이러한 문제를 해결하기 위한 몇 가지 옵션이 있습니다. 아마도 가장 간단한 방법은 모든 주문을 반복하고 마지막으로 마감된 주문을 찾고, 주문이 스톱 또는 이익으로 마감되었는지 확인하고, 티켓을 기억하고, 기억하는 티켓이 있는 주문인 경우 새 주문에서 주기를 시작하는 것입니다. 가 선택되면 건너뛰고 마지막에서 마감된 주문을 찾습니다...

PS MODE_TRADES 가 아니라 MODE_HISTORY입니다.


논리는 분명합니다.... 하지만 저에게는 여전히 코드로 작성하는 것이 불가능합니다... 너무 복잡합니다... 저는 반복 주기로 작업한 적이 없습니다... 단지 필요하지 않았을 뿐입니다... 따라서 - 어두운 숲: ))) 그리고 내가 본 그 주기는 나에게 조금 명확합니다.

간단한 예를 들어도 될까요... 하지만 설명과 함께 그곳에서 무슨 일이 일어나고 있고 주기의 어디에서 일어나는지 이해할 수 있습니까?

 
lottamer :

여기에서 두 가지 옵션을 다시 실행할 수 있습니다. https://forum.mql4.com/ru/38949/page5#434244

TimeOpenLastPos() 함수.

이 함수는 마지막 오픈 포지션의 오픈 시간을 반환합니다.

마지막 CLOSED 위치를 열 필요

또는

SecondsAfterOpenLastPos() 함수.

이 함수는 마지막 위치가 열린 이후의 시간(초)을 반환합니다.

몇 시간 안에 필요한 .... 그리고 몇 초가 아닙니다.

이 옵션이 더 가깝습니다

첫 번째 옵션은 최소한의 변경으로 사용할 수 있지만(기록 및 필요한 항목 살펴보기), 두 번째 옵션에 대해서는 왜 선택했는지 명확하지 않습니까? 당신이 당신의 고문에게 정확히 무엇을 원하는지 생각해보십시오. 그가 하루에 한 번 이상 거래를 열지 않도록?
 
lottamer :
그리고 여기에 또 다른 질문이 있습니다. SecondsAfterOpenLastPos() 함수. 어드바이저가 비활성화된 경우 이 함수는 어제 마감된 마지막 거래의 값을 반환합니까? (확인이 안 돼요 - 시장이 서 있어요)


할 것이다.

더 정확하게는 닫히지 않고 열려있을 것입니다.

 
rigonich :


실제로 이것은 주문을 처리하는 모든 올빼미에서 사용됩니다. 먼저 주문을 선택해야 하고 그 다음에는 주문으로 무언가를 할 수 있습니다(주문에 대한 정보 보기, 수정 또는 마감에 대해 서버에 거래 요청 보내기) 터미널에서 주문을 선택하는 두 가지 방법, 티켓으로, 즉, 특정 주문에 대해 변경되지 않는 서버의 주문에 할당된 번호 또는 주문이 터미널에 저장되는 일련 번호(색인)에 의해 결정됩니다. 이 숫자는 어떤 주문이 열리거나, 배치되고, 닫히거나 삭제되는지에 따라 각 틱에서 변경될 수 있습니다.

주문 작업을 위해 주문 열거 주기가 구성됩니다.


예를 들어, 저는 D1 개장 시 지정가 주문이 있습니다. TP와 SL은 며칠 동안 작동하지 않을 수 있습니다. 주문을 확인하면 .. 사용할 수 있게 되며 새 주문을 열지 않습니다. 어울리지 않는다는 뜻입니다. 따라서 잠재적인 거래를 놓치게 됩니다.
 
hoz :

예를 들어, 저는 D1이 열릴 때 지정가 주문이 있습니다. TP와 SL은 며칠 동안 작동하지 않을 수 있습니다. 주문을 확인하면 .. 사용할 수 있게 되며 새 주문을 열지 않습니다. 어울리지 않는다는 뜻입니다. 따라서 잠재적인 거래를 놓치게 됩니다.

그런 다음 모든 주문 의 영업 시간을 확인하고 오늘 영업 중인 주문이 있는지 확인합니다.
 
rigonich :
첫 번째 옵션은 최소한의 변경으로 사용할 수 있지만(기록 및 필요한 항목 살펴보기), 두 번째 옵션에 대해서는 왜 선택했는지 명확하지 않습니까? 당신이 당신의 고문에게 정확히 무엇을 원하는지 생각해보십시오. 그가 하루에 한 번 이상 거래를 열지 않도록?

조건의 총체에 따라 - 어제 마지막 거래의 개장 시간을 정확히 알아야 합니다(다음 날까지 자연스럽게 닫힐 것이지만 정확히 알 수 없는 경우 - 아마도 즉시, 아마도 오늘 아침 일찍) 어제의 거래가 오늘의 거래에 영향을 미치지 않는다는 것을 고문에게 분명히 하십시오. 그것이 내가 의도한 것이기 때문입니다.

그러나 오늘의 닫힌 것은 이미 오늘의 열린 것에 영향을 주어야 합니다(SHOULD).

저것들. EA는 어제의 거래를 아침에 켜졌을 때 오늘의 거래와 구별해야 합니다. 그리고 이것은 OPENING 시간 을 비교해야만 가능합니다.

 
rigonich :


할 것이다.

더 정확하게는 닫히지 않고 열려있을 것입니다.


어제 마지막 거래 의 시작 시간을 얻는 방법?
 
rigonich :


할 것이다.

더 정확하게는 닫히지 않고 열려있을 것입니다.


젠장 맞아 ... 명확하게 쓰여져 있기 때문에

( 주문 선택 (i, SELECT_BY_POS, MODE_TRADES ))

 
rigonich :
첫 번째 옵션은 최소한의 변경으로 사용할 수 있지만(기록 및 필요한 항목 살펴보기), 두 번째 옵션에 대해서는 왜 선택했는지 명확하지 않습니까? 당신이 당신의 고문에게 정확히 무엇을 원하는지 생각해보십시오. 그가 하루에 한 번 이상 거래를 열지 않도록?


옵션을 찾았습니다.

그런 기능이 있다

isTradeToDay() 함수.

이 함수는 오늘의 거래 플래그를 반환합니다. 플래그 제기 - True - 포지션이 오늘 열렸 습니다. 플래그 생략됨 - 거짓 - 오늘 열린 포지션 없음

여기에서만 흥미 롭습니다. 거래가 23시에 열리고 아침 4시에 닫히면이 기능은 아침 7시에 무엇을 표시합니까? 오늘 거래가 있었나요, 없었나요?