시간 문제() - 페이지 2

 

이 또한 작동하지 않습니다 ...

Day() == 1 || Day() == 2 || Day() == 3 || Day() == 4 

RaptorUK는 이미 TimeDayOfWeek ()를 참조하여 답장했습니다. Day() , TimeDayOfWeek()DayOfWeek() 의 차이점은 (이를 주의 깊게 읽으십시오)

int Day() = 해당 월의 현재 날짜, 즉 마지막으로 알려진 서버 시간의 날짜를 반환합니다.

int DayOfWeek() = 마지막으로 알려진 서버 시간의 현재 0부터 시작하는 요일(0-일요일, 1,2,3,4,5,6)을 반환합니다.

int TimeDayOfWeek(datetime Time) = 지정된 날짜에 대해 0부터 시작하는 요일을 반환합니다(0은 일요일,1,2,3,4,5,6을 의미함).


따라서 Day() = 1은 월요일부터 일요일까지 의 어느 날이든 될 수 있습니다.

BTW, 오늘은 5월 31일이고 Day() 함수는 31(날짜)을 반환하고 DayOfWeek()는 4(목요일)를 반환합니다.

내일은 6월 1일이고 Day() 함수는 1(날짜)을 반환하고 DayOfWeek() 함수는 5(금요일)를 반환합니다.

이것을 스크립트로 사용하십시오.

 Alert ( "TimeDay of local time " , TimeDayOfWeek ( TimeLocal ()), " and TimeDay of server time " , TimeDayOfWeek ( TimeCurrent ()));
Alert ( "Day () is " ,Day(), " and DayOfWeek is " , DayOfWeek ());
 
toCFx :

ㅋㅋㅋ!

MT4의 "시간" 기반 기능 대부분이 심각한 결함이 있다고 생각하기 시작했습니다.

내 말은, 내 위치 제어 논리를 다음과 같은 평범한 것으로 재설정하면 TimeHour(TimeCurrent()) == 23 && TimeHour(TimeCurrent()) == 59이고 단독 거래를 전혀 마감할 수 없습니다. (EA는 단순히 코드를 무시합니다!) 그렇다면 MT4에는 이러한 유형의 기능과 관련하여 수정해야 할 몇 가지 문제가 있다고 말하고 싶습니다.

LOL MQL4 시간 기반 기능 에 다른 사람이 지금쯤 알아차렸을 심각한 결함이 있다고 생각하지 않습니까?

함수에 결함이 있다고 주장하기 전에 결함이 있는 코드를 먼저 수정해 볼 수도 있습니다.

마감 기준에서 다음을 변경해 보십시오.

TimeHour(TimeCurrent()) == 23 && TimeHour(TimeCurrent()) == 59

에게:

if (TimeHour(TimeCurrent()) == 23 && 시간 (TimeCurrent()) == 59)

toCFx :

코드가 더 간단할 수 없습니다! 나는 EA에게 00:00에서 00:05 사이에 망할 거래를 열도록 지시하고 있습니다. 코딩하기 어렵지 않습니다. 여섯 살짜리 아이가 그것을 코딩할 수 있습니다. [b]TimeHour(TimeCurrent()) == 00 && TimeHour(TimeCurrent()) <= 05[/b]입니다.

또한 당신은 너무 그것을 수정하려고 할 수 있습니다 lol

변화:

TimeHour(TimeCurrent()) == 00 && TimeHour(TimeCurrent()) <= 05

에게:

if (TimeHour(TimeCurrent()) == 0 && 시간 (TimeCurrent()) <= 5)

 

친애하는 CFx,

내가 욕했다면 사과드립니다. 나는 나쁜 하루를 보낸다. 내 답변을 완전히 읽지 않았기 때문에 PC를 다시 설치해야 하는 다른 포럼 작성자가 있다고 생각합니다.

1. 월요일과 목요일 사이의 거래를 모두 23:57, 금요일 21:57에 마감 하려는 경우

   if (
       (DayOfWeek () >= 1 && DayOfWeek() <= 4 && TimeHour ( TimeCurrent ()) >= 23 && TimeMinute ( TimeCurrent ()) >= 57 )
       || (DayOfWeek() == 5                    && TimeHour ( TimeCurrent ()) >= 21 && TimeMinute ( TimeCurrent ()) >= 57 )
      )
      {
       // close it
      }

그리고 Open Trade에 대해 동일한 코드를 수정할 수 있습니다.

https://www.mql5.com/en/articles/1512 테스트에 대해 읽어보십시오.


2. 이것은 중요합니다: 당신은 "도구"를 언급 했습니다. "도구"가 의미하는 바를 자세히 설명한다면 여기에서 그 이름을 언급하는 것이 좋습니다. 우리는 MetaEditor만을 사용합니다. 온라인 도구를 사용하여 오류를 수정하도록 하는 많은 포럼이 있습니다. 코드가 오류로 가득 차 있을 수 있으므로 그것이 무엇인지 알려야 합니다. 예를 들어 논리는 정확하지만 잘못된 종류의 mql4 기능을 사용합니다.

... who uses a tool for helping me build EAs. That tool allows the use of some MQL structure, but it does not execute on explicit MQL functions. It simply takes MQL code, evaluates whether the MQL based condition is true/false, and then executes a custom function such as OpenBuy, OpenSell, CloseBuy, CloseSell, DeletePendingBuy, DeletePendingSell, etc. But, it does not run MQL code explicitly. For example, you can(not) use the Print or Comment function to get something to appear on the chart window of MT4 (just one example).


3. 당신은 긴 페이지를 쓰는 것을 좋아하는 것 같습니다. 내가 할 수 있는 일은 다음과 같습니다.

이것은 내 첫 번째 게시물입니다. 먼저, 저는 MQL 개발자가 아니라는 점에 유의하십시오.

그래서 당신은 특히 당신이 말한 후에 당황하지 않을 것입니다 ...

저는 MQL 개발자는 아니지만 논리적 구성을 개발하는 데 정말 능숙 하며 시스템 문제를 감지할 때 이를 감지할 수 있습니다.

긴 에세이를 읽는 것을 포함하여 항상 도와드리겠습니다.

여기 당신의 - 매우 긴 - 첫 번째 게시물이 있습니다.

안녕하세요 MQL4 커뮤니티입니다!

이것은 내 첫 번째 게시물입니다. 먼저, 저는 MQL 개발자가 아닙니다. 저는 EA 구축을 돕는 도구를 사용하는 트레이더입니다. 이 도구를 사용하면 일부 MQL 구조를 사용할 수 있지만 명시적 MQL 기능에서는 실행되지 않습니다. 단순히 MQL 코드를 받아서 MQL 기반 조건이 참/거짓인지 평가한 다음 OpenBuy, OpenSell, CloseBuy, CloseSell, DeletePendingBuy, DeletePendingSell 등과 같은 사용자 정의 함수를 실행합니다. 그러나 MQL 코드를 명시적으로 실행하지는 않습니다. 예를 들어, 인쇄 또는 주석 기능을 사용하여 MT4의 차트 창에 표시할 항목을 얻을 수 있습니다(예: 하나의 예).

그래서 저는 MQL에 대해 조금 알고 있습니다. MQL은 EA를 구축하는 데 사용하는 EA 개발 도구를 사용하기에 충분합니다. 지금까지 이 도구를 사용하여 10개의 EA를 구축했고 그 중 7개는 비영리성으로 인해 포기했습니다. 이는 Excel에서 거래 시스템을 구축할 때 사용했던 성공적인 프로토타입 비율보다 약 30% 더 좋습니다. 일반적으로 10개 중 7-8개의 아이디어가 예상만큼 수익성이 없을 것으로 예상하고 2-3개의 디자인은 최적화 프로세스를 시작할 만큼 충분히 수익성이 남습니다. 좋아, 나에 대해 그리고 내가 어떻게 굴러가는지에 대해 충분하다.

여기 내 문제가 있으며 도움을 받기 위해 올바른 위치에 왔기를 바랍니다!

거래를 마감하기 위해 이 코드를 실행하고 있습니다:[/b]

일() == 1 || 일() == 2 || 일() == 3 || 일() == 4 && TimeHour(TimeCurrent()) >=23 && TimeMinute(TimeCurrent()) >=57 || 일() == 5 && TimeHour(TimeCurrent()) >=21 && TimeMinute(TimeCurrent()) >=57

참고: 문제는 모든 거래가 월요일부터 목요일까지 23:57까지 열려 있다는 것입니다. 또한 모든 거래는 금요일 21:57까지 열려 있습니다.


또한 MQL 블록 [b]을 통해 이 코드를 실행하여 거래를 엽니다.[/b]

TimeHour(TimeCurrent()) == 00 && TimeMinute(TimeCurrent()) <= 05

참고: 00:00에서 00:05 사이에 열리는 유일한 거래는 테스터 시작 버튼을 클릭할 때 백 테스트의 첫 번째 거래입니다. 그 거래는 정확히 00:00에 열립니다. 그러나 다른 거래는 주 후반 00:00에서 00:05 사이에 열리지 않습니다.

요약하자면:

- 00:00에 테스터 시작 버튼을 클릭하면 하나의 거래가 열립니다.
- 이후 23:57(월-목) 또는 21:57(금)에 거래가 종료되지 않습니다.
- 이후 00:00 ~ 00:05 사이에는 거래가 열리지 않습니다.

위에 표시된 모든 시간에는 사용 가능한 틱 흐름이 충분합니다. 따라서 Tester에서 사용하는 데이터에는 공백이 없었습니다.

도움을 주시면 감사하겠습니다. 이러한 거래가 코딩된 시간에 마감되지 않는 이유는 무엇입니까? 월요일부터 금요일까지 00:00에서 00:05 사이에 항상 거래 신호가 있는데도 거래가 실행되지 않는 이유는 무엇입니까?

고맙습니다!
cfx

 
   if( DayOfWeek()<1 || DayOfWeek()>5 || TimeMinute(TimeCurrent()) < 57 )
      return(0);
   else if( TimeHour(TimeCurrent()) >= 23  || ( DayOfWeek() == 5 && TimeHour(TimeCurrent()) >= 21) ){
     //Close
   }
 
CFx :

그런 목적으로 Print 문을 사용하지 않았습니다.

왜 안 돼 ? MetaEditor에서 코드를 열고 무슨 일이 일어나고 있는지 알려주는 몇 가지 인쇄 기능 을 추가하십시오. . .

MT4에는 디버거가 없으므로 사용할 수 있는 유일한 도구 중 하나는 Print 입니다. . . 다른 하나는 Comment 입니다. . 그리고 그것은 그것에 관한 것입니다.

 
RaptorUK :

왜 안 돼 ? MetaEditor에서 코드를 열고 무슨 일이 일어나고 있는지 알려주는 몇 가지 인쇄 기능을 추가하십시오. . .

MT4에는 디버거가 없으므로 사용할 수 있는 유일한 도구 중 하나는 Print 입니다. . . 다른 하나는 Comment 입니다. . 그리고 그것은 그것에 관한 것입니다.


그 목적으로도 Alert() 를 많이 사용합니다.
 

도구들. 도구에 대해 알려주세요. 당황하지 마세요. 저는 RaptorUK, dabbler 및 SDC의 댓글을 통해 배웠습니다. 그러니 저희에게 말씀해 주십시오.

:디

 
SDC :

그 목적으로도 Alert() 를 많이 사용합니다.
나는 아니에요 . . . 그것이 내가 그것을 잊은 이유입니다. . . 수정 감사합니다 :-)
 
onewithzachy :

ㅋㅋㅋ. 당신은 비현실적인 사람입니다. 이 코드는 ...

... true를 반환하지 않습니다.

당신은 "당신의" 논리적 구조를 더 발전시켜야 하는 사람입니다.

그리고 이것을 구성 ...


아마도 당신은 OP를 읽으려고 노력해야 할 것입니다. 그것은 내가 MQL 개발자가 아니라는 것을 분명히 알려줍니다. 게다가, 논리적으로 프로그래밍 언어를 구성할 수 있는 것과 지속적으로 수익성 있는 거래 시스템을 논리적으로 구성할 수 있는 것 사이에는 엄청난(거대한) 차이가 있습니다. 불행히도 이 비즈니스에서는 어떤 시장 조건에서도 실제로 작동하는 지능형 거래 시스템을 연구, 설계, 설계, 구축, 엔지니어링, 통합 및 구현하는 데 무엇이 필요한지에 대한 단서가 없는 온라인 프로그래머를 많이 찾습니다. (황소, 곰 및 과도기). 그래서, 나는 당신이 내가 어디에서 왔는지 이해할 수 없다는 것을 이해합니다. 저는 그 지능형 거래 시스템을 구축했고 Excel(모든 것의)로 그것을 했습니다.

지난 3.27년 동안 계속해서 풀타임으로 수익을 냈고, 파트타임으로 지난 7년 동안 평균보다 훨씬 더 나은 결과를 얻었지만 여전히 설계, 구축 및 최적화되었습니다. 100% 맞춤형 지표 프레임워크의 입력으로 설계된 통합된 의사 결정 지원 거래 시스템. 내 시스템에는 50년 이상 된 표준 표시기가 없습니다. 시스템 전체에서 사용되는 모든 표시기는 처음부터 수년간의 연구 및 테스트를 통해 만든 새로운 디자인 및 표시기 개념에서 비롯되었기 때문입니다. 나에게 남은 일은 그것에 관한 책을 쓰는 것뿐이다.

따라서 작동하는 거래 시스템을 설계하는 측면에서 아마도 한동안 이 게시판에서 나와 같은 종류의 것을 본 적이 없을 것입니다. 새로운 등급의 지표 디자인을 만든 사람이 누구인지 아십니까? 기존 표시기 디자인을 가져와 수정하고 새 이름을 지정하는 것에 대해 말하는 것이 아닙니다. 이를 현재 표시기의 발전이라고 합니다. 지금까지 공개적으로 거론되지 않았던 시장 이론에 기반한 새로운 지표 개념을 말하는 건가요? 이를 [b]델타 차등 등급 지표[/b]라고 하며 이전에 본 모든 것의 전통적인 시장 이론을 기반으로 하지 않습니다. 그 사실을 확신합니다.

MQL에 대한 나의 관심은 D2 클래스 표시기가 더 낮은 시간 프레임에 가치가 있는지 여부를 발견하는 것입니다. 프로토타입 시스템은 데이터가 매일, 매주, 매월 및 연간 막대 o 데이터만 사용하여 단일(1)을 생성하기 때문입니다. 지난 3.27년 동안 지정된 목표에 대해 91%에서 99% 사이의 정확도를 유지해 온 거래 신호입니다. 이는 24시간당 17~67핍(핵심 중앙값)의 목표 범위에서 91~99%의 목표 정확도 사이에서 대략 850개 이상의 거래 신호입니다.

현재 프로토타입은 자동화되지 않았으며 MQL이 처리하기에는 너무 복잡합니다. OOP는 그에 대한 최적의 환경이 될 것입니다. 그러나 나는 내게 주어진 다른 일들로 너무 바빠서 C 또는 C++를 배울 만큼 충분히 오래 앉아 있을 수 없었습니다.

이 테스트는 소수의 지표 디자인이 일일 막대 시간 프레임보다 훨씬 아래에서 잘 작동할 수 있는지 여부를 알아보기 위한 POC입니다. 내 디자인을 사용하여 더 낮은 시간 프레임을 자동화하기 위한 기술적 정당성을 찾을 수 있다면 OOP를 배우고 프로토타입을 독립형 독점 Windows Trading 응용 프로그램 으로 전환하는 데 필요한 시간을 정당화할 수 있습니다(어떠한 상황에서도 판매 불가 ).

상인은 거래합니다. 프로그래머, 프로그램. 저는 프로그래머가 아닙니다............. 아직.

 
onewithzachy :

이 또한 작동하지 않습니다 ...

RaptorUK는 이미 TimeDayOfWeek ()를 참조하여 답장했습니다. Day() , TimeDayOfWeek()DayOfWeek() 의 차이점은 (이를 주의 깊게 읽으십시오)

int Day() = 해당 월의 현재 날짜, 즉 마지막으로 알려진 서버 시간의 날짜를 반환합니다.

int DayOfWeek() = 마지막으로 알려진 서버 시간의 현재 0부터 시작하는 요일(0-일요일, 1,2,3,4,5,6)을 반환합니다.

int TimeDayOfWeek(datetime Time) = 지정된 날짜에 대해 0부터 시작하는 요일을 반환합니다(0은 일요일,1,2,3,4,5,6을 의미함).


따라서 Day() = 1은 월요일부터 일요일까지 의 어느 날이든 될 수 있습니다.

BTW, 오늘은 5월 31일이고 Day() 함수는 31(날짜)을 반환하고 DayOfWeek()는 4(목요일)를 반환합니다.

내일은 6월 1일이고 Day() 함수는 1(날짜)을 반환하고 DayOfWeek() 함수는 5(금요일)를 반환합니다.

이것을 스크립트로 사용하십시오.


내 게시물 중 하나에 표시된 것처럼 DayOfWeek()를 사용했지만 여전히 제대로 작동하지 않습니다.