//+----------------------------------------------- --------------------+ //| 전문가 초기화 기능 | //+----------------------------------------------- --------------------+ int OnInit() { //--- ArraySetAsSeries(a_RatesAll,true);
//--- 반환(INIT_SUCCESSED); } //+----------------------------------------------- --------------------+ //| ChartEvent 함수 | //+----------------------------------------------- --------------------+ 무효 OnChartEvent(const int id, const long &lparam, const 이중 &dparam, const 문자열(&sparam) { //--- //산출 if(id==CHARTEVENT_KEYDOWN && lparam==45) // "삽입" 종료 { ExpertRemove(); } else if(id==CHARTEVENT_KEYDOWN && lparam==48) // "0" { DateTimeRates(c_DStart,c_DEnd); } } //+----------------------------------------------- --------------------+ //| 내 기능 | //+----------------------------------------------- --------------------+ //================================================== ===================== 무효 DateTimeRates(날짜 시간 DStart, 날짜 시간 DEnd) { if ((DStart>0) && (DEnd>0)) { MaxBars=CopyRates(Symbol(),0,DStart,DEnd,a_RatesAll); if(MaxBars<=0) Print("가격 데이터 복사 중 오류 발생 ",GetLastError()); 또 다른 { 인쇄(" "); 인쇄(EnumToString(ChartPeriod(0))); Print("복사됨 ",ArraySize(a_RatesAll)," 막대기"); } } (i=MaxBars-1;i>=0;i--) { 인쇄(a_RatesAll[i].time); } } //================================================== ===================== ===================================================
개발자에게 질문합니다. 거래소는 미결제약정을 각 거래(time&&sales)에 대한 거래량과 동기적으로 방송합니까, 아니면 비동기식으로 방송합니까?
동기식이면 SymbolInfoDouble 을 통해 수신하는 대신 MqlTick ... 에 고정하는 것이 나쁘지 않습니다.
1200 빌드로 업그레이드를 기다리고 있습니다. CopyTicks 를 확인하려면
안녕하세요
주문 섹션의 SL 및 TP 열이 MT5 터미널의 보고서에 채워지지 않은 이유를 알려주십시오.
안녕하세요
주문 섹션의 SL 및 TP 열이 MT5 터미널의 보고서에 채워지지 않은 이유를 알려주십시오.
사실이 아니다. 보고서의 필드는 다음과 같이 채워집니다.
MT5 터미널에서 오류가 발생했습니다. 10/23/15(alpari)에서 빌드 1200
이전 빌드에서는 모든 것이 올바르게 작동했습니다(!).
CopyRates() 함수 가 날짜를 잘못 표시하기 시작했습니다(다른 막대 데이터일 수 있음).
다음은 단기 테스트 프로그램(EA)의 예입니다.
===================================================
날짜/시간 c_DStart=D'01.01.2015';
datetime c_DEnd=D'10/26/2015';
정수 나;
정수 MaxBars;
MqlRates a_RatesAll[];
//-------------------------------------
//+----------------------------------------------- --------------------+
//| 전문가 초기화 기능 |
//+----------------------------------------------- --------------------+
int OnInit()
{
//---
ArraySetAsSeries(a_RatesAll,true);
//---
반환(INIT_SUCCESSED);
}
//+----------------------------------------------- --------------------+
//| ChartEvent 함수 |
//+----------------------------------------------- --------------------+
무효 OnChartEvent(const int id,
const long &lparam,
const 이중 &dparam,
const 문자열(&sparam)
{
//---
//산출
if(id==CHARTEVENT_KEYDOWN && lparam==45) // "삽입" 종료
{
ExpertRemove();
}
else if(id==CHARTEVENT_KEYDOWN && lparam==48) // "0"
{
DateTimeRates(c_DStart,c_DEnd);
}
}
//+----------------------------------------------- --------------------+
//| 내 기능 |
//+----------------------------------------------- --------------------+
//================================================== =====================
무효 DateTimeRates(날짜 시간 DStart, 날짜 시간 DEnd)
{
if ((DStart>0) && (DEnd>0))
{
MaxBars=CopyRates(Symbol(),0,DStart,DEnd,a_RatesAll);
if(MaxBars<=0) Print("가격 데이터 복사 중 오류 발생 ",GetLastError());
또 다른
{
인쇄(" ");
인쇄(EnumToString(ChartPeriod(0)));
Print("복사됨 ",ArraySize(a_RatesAll)," 막대기");
}
}
(i=MaxBars-1;i>=0;i--)
{
인쇄(a_RatesAll[i].time);
}
}
//================================================== =====================
===================================================
시계열의 시작 날짜를 10/14/15 이후로 지정하면 막대의 모든 날짜가 재설정됩니다.
HS 0 09:49:42.561 DateTimeCopyRates(EURUSD,M5)
PM 0 09:49:42.561 DateTimeCopyRates (EURUSD,M5) PERIOD_M5
LE 0 09:49:42.561 DateTimeCopyRates (EURUSD,M5) 2406 막대 복사됨
IM 0 09:49:42.561 DateTimeCopyRates (EURUSD,M5) 1970.01.01 00:00:00
CD 0 09:49:42.561 DateTimeCopyRates (EURUSD,M5) 1970.01.01 00:00:00
MK 0 09:49:42.561 DateTimeCopyRates (EURUSD,M5) 1970.01.01 00:00:00
GS 0 09:49:42.561 DateTimeCopyRates (EURUSD,M5) 1970.01.01 00:00:00
...
등.
시작 날짜를 10/14/15 또는 그 이전으로 지정하면 시계열 날짜가 몇 주에서 몇 달 지연되어 시작됩니다.
다음은 시작 날짜가 10/14/15이고 시리즈가 10/26/15에 시작되는 예입니다.
CS 0 09:53:02.383 DateTimeCopyRates(EURUSD,M5)
KM 0 09:53:02.383 DateTimeCopyRates (EURUSD,M5) PERIOD_M5
GE 0 09:53:02.383 DateTimeCopyRates (EURUSD,M5) 2695바 복사됨
QM 0 09:53:02.383 DateTimeCopyRates (EURUSD,M5) 2015.10.26 15:50:00
PD 0 09:53:02.383 DateTimeCopyRates (EURUSD,M5) 2015.10.26 15:55:00
GK 0 09:53:02.383 DateTimeCopyRates (EURUSD,M5) 2015.10.26 16:00:00
RS 0 09:53:02.383 DateTimeCopyRates (EURUSD,M5) 2015.10.26 16:05:00
DJ 0 09:53:02.383 DateTimeCopyRates (EURUSD,M5) 2015.10.26 16:10:00
...
다음은 시작 날짜가 01/01/15이고 시리즈가 05/12/15에 시작되는 예입니다.
PS 0 09:54:47.726 DateTimeCopyRates(EURUSD,M5)
HM 0 09:54:47.726 DateTimeCopyRates (EURUSD,M5) PERIOD_M5
FF 0 09:54:47.726 DateTimeCopyRates (EURUSD,M5) 60958 막대 복사됨
OL 0 09:54:47.726 DateTimeCopyRates (EURUSD,M5) 2015.05.12 21:55:00
HD 0 09:54:47.726 DateTimeCopyRates (EURUSD,M5) 2015.05.12 22:00:00
QK 0 09:54:47.726 DateTimeCopyRates (EURUSD,M5) 2015.05.12 22:05:00
CS 0 09:54:47.726 DateTimeCopyRates (EURUSD,M5) 2015.05.12 22:10:00
FJ 0 09:54:47.726 DateTimeCopyRates (EURUSD,M5) 2015.05.12 22:15:00
RQ 0 09:54:47.726 DateTimeCopyRates (EURUSD,M5) 2015.05.12 22:20:00
...
개발자에게 이 오류를 수정하도록 요청합니다.
MT5 터미널에 오류가 있습니다. 빌드 1200(10/23/15(alpari))입니다.
이전 빌드에서는 모든 것이 올바르게 작동했습니다(!).
CopyRates() 함수 가 날짜를 잘못 표시하기 시작했습니다(다른 막대 데이터일 수 있음).
표시기에서 SeriesInfoInteger() 함수 데이터를 가져올 수 없습니다! MT4
출원 번호 #1337152 를 참조하십시오.
사실이 아니다. 보고서의 필드는 다음과 같이 채워집니다.
예, 죄송합니다. 먼저 주문은 TP와 SL이 0인 상태로 출발합니다.
하지만 위치를 수정합니다(SL 및 TP).
이 데이터는 보고서에 포함되지 않습니다.
표시기에서 SeriesInfoInteger() 함수 데이터를 가져올 수 없습니다! MT4
출원 번호 #1337152 를 참조하십시오.
네, 죄송합니다. 먼저 주문은 TP와 SL이 0인 상태로 출발합니다.
하지만 위치를 수정합니다(SL 및 TP).
이 데이터는 보고서에 포함되지 않습니다 .
보고서에 정확히 포함되지 않은 것은 무엇입니까(일반적으로 우리 는 보류 중인 주문 이나 포지션에 대해 이야기하고 있습니까?):
MT5 기능이 MT4에서 작동해야 합니까?