저도 어제부터 ;) 그리고 정확한 이름은 " Updated MQL4 "인 것 같습니다. MQ 쓰기:
(..) 빌드 600부터 MQL4 프로그래밍 언어가 MQL5 수준에 도달 하도록 완전히 수정되었습니다. 이제 통합 MetaEditor 개발 환경, 단일 스타일, 라이브러리 및 디버깅 도구를 사용하여 MQL4/5에서 거래 로봇을 개발할 수 있습니다.
(...) 따라서 MQL4 기능을 완전히 보존하는 MQL5 언어 기능 및 기능을 최대한 구현하기로 결정했습니다. 즉, ООP 및 기본 코드 컴파일러를 포함한 모든 강력한 MQL5 기능 을 MQL4에서 사용할 수 있게 됩니다. (...)
이를 달성하기 위해 MQL4 및 MQL5 언어를 모두 자동으로 지원 하는 통합 컴파일러 를 개발했습니다.(...)
정의의 문제는 "언어"라는 단어입니다. C++이 언어이고 Basic이 언어인 것과 같은 방식으로 언어는 MQL입니다. 업데이트된 MQL4/MQL5는 MQL의 플랫폼별 모드일 뿐 그 이상도 그 이하도 아닙니다. 따라서 (네이티브) MQL4와 업데이트된 MQL4의 비교는 C 및 C++와 거의 동일합니다. 그리고 MQL4.com을 MQL5.com으로 마이그레이션하여 혼란을 완벽하게 만들었습니다. 이 게시물에서 볼 수 있듯이 대부분의 사람들은 나와 마찬가지로 OOP를 MQL4와 연관시키지 않습니다. 저에게 이것은 항상 MT4와 MT5 플랫폼을 모두 지원하는 MQL5였습니다.
그러나 어쨌든, 그것은 꽤 잘 작동하고 MQL 무엇이든 주변의 다른 모든 형편없는 것들과 비교할 때 최고의 인터페이스입니다.
누군가가 여전히 찾고 있는 경우를 대비하여 바당 하나의 거래만 열릴 수 있도록 내 코드에서 발췌한 내용이 있습니다.
if ( iBars ( Symbol (), 0 ) == BarsCurr)DisableTrading = 1 ;
for (i= 0 ;i< OrdersTotal ();i++)
{
if ( OrderSelect (i, SELECT_BY_POS , MODE_TRADES ) == True && OrderMagicNumber () == MagicNumber) DisableTrading = 1 ;
}
for (i= OrdersTotal ();i> 0 ;i--)
{
if ( OrderSelect (i, SELECT_BY_POS , MODE_HISTORY ) == True && OrderMagicNumber () == MagicNumber)
{
if (( OrderClosePrice () >= Open [ 0 ] && OrderClosePrice () <= Close [ 0 ]) && ( OrderOpenPrice () >= Open [ 0 ] && OrderOpenPrice ()<= Close [ 0 ]))
{
DisableTrading = 1 ;
}
}
}
ibars는 막대로 대체될 수 있으며 disabletrading = 1은 아무 것도 하지 않음을 의미합니다. 막대 부분은 정상적으로 게시된 것을 사용하여 더 이해할 수 있습니다. BarsCurr = 0을 초기화 부분에, BarsCurr = Bars를 코드의 매수/매도 주문 부분에 두십시오.
그래도 문제가 있습니다. 신호 역전으로 마감 순서를 구현하려고 합니다. 아이디어가 있습니까?
서버에서 변경(신규 거래 또는 신규 가격 결정)이 감지되면 서버는 신호를 단말기로 보냅니다. 터미널 프로그램은 OnTick() 루틴을 트리거합니다.
이 신호를 통해 다음 정보를 얻습니다.
현재 시간() - 틱이 전송된 서버 시간입니다.
마지막 틱에 대한 정보- SymbolInfoTick() • 틱이 발생한 서버 시간 • 묻다 • 입찰 • 최종 가격(일부 제공업체 제외) • 변경된 사항을 나타내는 플래그. 현재 막대에 대한 정보 – CopyRates() • 막대의 "이름"(예: "10:20:00"). • 오픈-하이-로우-클로즈
새로운 막대 인식 (예: 기간 = M1)
서버는 무언가가 변경된 경우에만 신호를 보내기 때문에 이름이 "hh.mm:00"인 막대가 "hh:mm:00"보다 늦게 나타날 수 있습니다.
이로 인해 유동성이 거의 없는 기호에 특별한 상황이 발생할 수 있습니다.
기간을 처리하는 솔루션은 다음을 감지하지 못합니다.
TimeCurrent() 막대 "이름" 마지막 틱 10:10:07 10.10:00 다음틱 10:11:30 10:11:00
Nether with that (마침표에 0 틱):
TimeCurrent() 막대 "이름" 마지막 틱 10:10:30 10:10:00 다음 틱 10:13:40 10:13:00 10:12:00 막대가 없습니다!
막대가 아닌 동안 서버 시간이 이미 다음 기간으로 전환되는 상황(서버의 부하가 매우 높을 때?)을 거의 본 적이 없습니다.
TimeCurrent() 막대 "이름" 마지막 틱 10:10:00 10:09:00 다음틱 10:10:00 10:10:00
결론:
불필요한 CopyRates()를 억제하기 위해 TimeCurrent()를 사용하는 것이 좋습니다.
향상된 MQL4 ?
들어본 적이 없습니다.
저도 어제부터 ;) 그리고 정확한 이름은 " Updated MQL4 "인 것 같습니다. MQ 쓰기:
(..) 빌드 600부터 MQL4 프로그래밍 언어가 MQL5 수준에 도달 하도록 완전히 수정되었습니다. 이제 통합 MetaEditor 개발 환경, 단일 스타일, 라이브러리 및 디버깅 도구를 사용하여 MQL4/5에서 거래 로봇을 개발할 수 있습니다.
(...) 따라서 MQL4 기능을 완전히 보존하는 MQL5 언어 기능 및 기능을 최대한 구현하기로 결정했습니다. 즉, ООP 및 기본 코드 컴파일러를 포함한 모든 강력한 MQL5 기능 을 MQL4에서 사용할 수 있게 됩니다. (...)
이를 달성하기 위해 MQL4 및 MQL5 언어를 모두 자동으로 지원 하는 통합 컴파일러 를 개발했습니다. (...)
정의의 문제는 "언어"라는 단어입니다. C++이 언어이고 Basic이 언어인 것과 같은 방식으로 언어는 MQL입니다. 업데이트된 MQL4/MQL5는 MQL의 플랫폼별 모드일 뿐 그 이상도 그 이하도 아닙니다. 따라서 (네이티브) MQL4와 업데이트된 MQL4의 비교는 C 및 C++와 거의 동일합니다. 그리고 MQL4.com을 MQL5.com으로 마이그레이션하여 혼란을 완벽하게 만들었습니다. 이 게시물에서 볼 수 있듯이 대부분의 사람들은 나와 마찬가지로 OOP를 MQL4와 연관시키지 않습니다. 저에게 이것은 항상 MT4와 MT5 플랫폼을 모두 지원하는 MQL5였습니다.
그러나 어쨌든, 그것은 꽤 잘 작동하고 MQL 무엇이든 주변의 다른 모든 형편없는 것들과 비교할 때 최고의 인터페이스입니다.
@Lorentzos Roussos
Alain can correct me on this but you may find gaps in instances where on the time horizon of a bar there where no ticks , so no bar will be in place
으으으으으으으으으으으으으으으으으으으으으윽 (아무것도 의미하지 않습니다).
저는 "NewBar-indicator"를 사용하여 이전 막대의 높거나 낮은 스톱을 자동으로 당깁니다.
(사실 "Innenstaebe and Aussenstaebe"(eng. "inside and outside movement" ???)라고 생각하면 조금 더 어렵습니다. 정확한 번역이 뭔지 모르겠습니다.
그러나 나는 이것을 분당 최소 20 - 최대 수백 틱이 있는 유동성 시장에서만 사용할 것입니다.
나는 틱 없이 10분이라는 시간을 찾지 못할 것이라고 생각합니다.
어쨌든 프로그램은 이것을 처리할 수 있어야 합니다.
감사해요!
윌버
@Lorentzos Roussos
Upppsss ... 나는 그런 갭을 본 적이 없습니다. (아무것도 의미하지 않습니다).
저는 "NewBar-indicator"를 사용하여 이전 막대의 높거나 낮은 스톱을 자동으로 당깁니다.
(사실 "Innenstaebe and Aussenstaebe"(eng. "inside and outside movement" ???)라고 생각하면 조금 더 어렵습니다. 정확한 번역이 뭔지 모르겠습니다.
그러나 나는 이것을 분당 최소 20 - 최대 수백 틱이 있는 유동성 시장에서만 사용할 것입니다.
나는 틱 없이 10분이라는 시간을 찾지 못할 것이라고 생각합니다.
어쨌든 프로그램은 이것을 처리할 수 있어야 합니다.
감사해요!
윌버
"iTime을 사용 중입니다"은(는) 무슨 뜻인가요? "iTime"은 프로그램의 변수일 뿐입니다. 원하는 경우 "Bert" 또는 "Clarly"로 이름을 지정할 수 있습니다.
- - - - -
오늘은 몇가지 테스트를 해보았습니다. 그리고 당신이 언급한 몇 가지 공백을 찾았습니다.
예를 들어 20:34에 S&P500에는 막대가 있습니다. 20:35와 20:36에는 서버(ActiveTrades)에서 틱과 막대가 없습니다. 다음 틱은 20:37에 도착했습니다.
결과적으로 이 기간 동안 차트에 막대가 없습니다. (첨부된 M1 차트 참조)
확인은 하지 않았지만 이번에는 CopyRates() 함수 내에 막대가 없는 것 같습니다.
이 시점에서 코드를 확인해야 한다고 생각합니다.
20:37 막대의 첫 번째 눈금 세 개를 새 막대로 표시할 것입니다.
(TimeCurrent()는 20:34에서 20:37로 점프합니다! 거기에 도달하려면 PeriodeSeconds()를 세 번 추가해야 합니다.
void OnTick()
{
//--- if(TimeCurrent()>=projection)
{Print("New Bar "+TimeToString(projection,TIME_DATE|TIME_MINUTES));
projection=projection+PeriodSeconds();
}
윌버
모두들 안녕,
누군가가 여전히 찾고 있는 경우를 대비하여 바당 하나의 거래만 열릴 수 있도록 내 코드에서 발췌한 내용이 있습니다.
ibars는 막대로 대체될 수 있으며 disabletrading = 1은 아무 것도 하지 않음을 의미합니다. 막대 부분은 정상적으로 게시된 것을 사용하여 더 이해할 수 있습니다. BarsCurr = 0을 초기화 부분에, BarsCurr = Bars를 코드의 매수/매도 주문 부분에 두십시오.
그래도 문제가 있습니다. 신호 역전으로 마감 순서를 구현하려고 합니다. 아이디어가 있습니까?
NewBars의 인정에 대한 논쟁이 조금 길어졌으므로 결과를 간단히 요약해 보겠습니다.
기술 환경:서버에서 변경(신규 거래 또는 신규 가격 결정)이 감지되면 서버는 신호를 단말기로 보냅니다. 터미널 프로그램은 OnTick() 루틴을 트리거합니다.
이 신호를 통해 다음 정보를 얻습니다.
현재 시간() - 틱이 전송된 서버 시간입니다.
마지막 틱에 대한 정보 - SymbolInfoTick()
• 틱이 발생한 서버 시간
• 묻다
• 입찰
• 최종 가격(일부 제공업체 제외)
• 변경된 사항을 나타내는 플래그.
현재 막대에 대한 정보 – CopyRates()
• 막대의 "이름"(예: "10:20:00").
• 오픈-하이-로우-클로즈
새로운 막대 인식 (예: 기간 = M1)
서버는 무언가가 변경된 경우에만 신호를 보내기 때문에
이름이 "hh.mm:00"인 막대가 "hh:mm:00"보다 늦게 나타날 수 있습니다.
이로 인해 유동성이 거의 없는 기호에 특별한 상황이 발생할 수 있습니다.
기간을 처리하는 솔루션은 다음을 감지하지 못합니다.
TimeCurrent() 막대 "이름"
마지막 틱 10:10:07 10.10:00
다음틱 10:11:30 10:11:00
Nether with that (마침표에 0 틱):
TimeCurrent() 막대 "이름"
마지막 틱 10:10:30 10:10:00
다음 틱 10:13:40 10:13:00 10:12:00 막대가 없습니다!
막대가 아닌 동안 서버 시간이 이미 다음 기간으로 전환되는 상황(서버의 부하가 매우 높을 때?)을 거의 본 적이 없습니다.
TimeCurrent() 막대 "이름"
마지막 틱 10:10:00 10:09:00
다음틱 10:10:00 10:10:00
결론:
불필요한 CopyRates()를 억제하기 위해 TimeCurrent()를 사용하는 것이 좋습니다.
TimeCurent()가 새로운 기간에 도달하면 막대도 전환되는지 확인해야 합니다.
이것은 Alain이 아주 초기에 논의한 코드로 돌아가게 합니다.
https://www.mql5.com/en/forum/22983
윌버
@emeka 음바네포
내 설명서에는 "iBars"라는 기능 이 언급되어 있지 않습니다.
이것이 MQL5 코드라고 확신합니까?
윌버
@emeka 음바네포
내 설명서에는 "iBars"라는 기능이 언급되어 있지 않습니다.
이것이 MQL5 코드라고 확신합니까?
윌버
아, mql5용이 아닙니다. mql4용인 것 같아요. 여전히, iBars는 놀고 있습니다. 이전에 언급한 바와 같이 일반 기능으로서의 막대입니다.
신호 반전 코드에 대한 지원을 여전히 기다리고 있습니다.
감사해요.
아, mql5용이 아닙니다. mql4용인 것 같아요. 여전히, iBars는 놀고 있습니다. 이전에 언급한 바와 같이 일반 기능으로서의 막대입니다.
신호 반전 코드에 대한 지원을 여전히 기다리고 있습니다.
감사해요.