А что в этой ситуации возвращает ArrayResize(TikProp,cntOrd); и какой результат GetLastError() после этого?
А что в этой ситуации возвращает ArrayResize(TikProp,cntOrd); и какой результат GetLastError() после этого?
чтобы это выяснить, добавил немного кода и подождал...
повторение ситуации.
код:
...
int cntTik[1]={0}; ArrayResize(cntTik,cntOrd);
double TikProp[1][3]={0.0,0.0,0.0}; ArrayResize(TikProp,cntOrd);
double InfoOrders[1][4]={0.0,0.0,0.0,0.0}; int tmp0=ArrayResize(InfoOrders,cntOrd);
err_otlov(86);
for(i=0; i<cntOrd; i++) //заполним массив свойств ордеров
{
cntTik[i]=iOrd_cur[i+1][5]; err_otlov(89);
TikProp[i][0]=MarketInfo(MagicToString(cntTik[i]),MODE_POINT); err_otlov(90);
TikProp[i][1]=ContractPr(cntTik[i],1,accLeverage); err_otlov(91);//PiP
TikProp[i][2]=ContractPr(cntTik[i],0,accLeverage); //StLot
}
if(err_otlov(94)>0) Print("cntOrd/i=",cntOrd,"/",i," Size cntTik/TikProp=",ArraySize(cntTik),"/",ArraySize(TikProp),"/",tmp0);
...
int err_otlov(int stroka)
{
int er_=GetLastError();
if(er_>4000){Print("XXX стр.",stroka,": ERROR=",er_,"/");
return(er_);}
return(0);
}
принтует:
16:55:51 2006.01.02 20:00 Moving_Average EURUSD,M30: R111 стр.90: ERROR=4002/
16:55:51 2006.01.02 20:00 Moving_Average EURUSD,M30: R111 стр.91: ERROR=4002/
16:55:51 2006.01.02 20:00 Moving_Average EURUSD,M30: R111 стр.94: ERROR=4002/
16:55:51 2006.01.02 20:00 Moving_Average EURUSD,M30: cntOrd/i=1/1 Size cntTik/TikProp=1/0/0
16:55:51 2006.01.02 20:00 Moving_Average EURUSD,M30: R111 стр.91: ERROR=4002/
16:55:51 2006.01.02 20:00 Moving_Average EURUSD,M30: R111 стр.94: ERROR=4002/
16:55:51 2006.01.02 20:00 Moving_Average EURUSD,M30: cntOrd/i=1/1 Size cntTik/TikProp=1/0/0
чтобы ошибка исчезла, достаточно перегрузить терминал.
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
вот кусок кода как это делается...
... if(cntOrd<=0) return(false); ... int cntTik[1]={0}; ArrayResize(cntTik,cntOrd); double TikProp[1][3]={0.0,0.0,0.0}; ArrayResize(TikProp,cntOrd); double InfoOrders[1][4]={0.0,0.0,0.0,0.0}; ArrayResize(InfoOrders,cntOrd); for(i=0; i<cntOrd; i++) { cntTik[i]=iOrd_cur[i+1][5]; err_otlov(89); TikProp[i][0]=MarketInfo(MagicToString(cntTik[i]),MODE_POINT); err_otlov(90); TikProp[i][1]=ContractPr(cntTik[i],1,accLeverage); err_otlov(91); TikProp[i][2]=ContractPr(cntTik[i],0,accLeverage); } if(err_otlov(94)>0) Print("cntOrd/i=",cntOrd,"/",i," Size cntTik/TikProp=",ArraySize(cntTik),"/",ArraySize(TikProp)); ...иногда при перекомпиляции возникает ошибка
23:44:17 2006.05.30 14:05 Moving_Average EURUSD,M30: R111 стр.91: ERROR=4002/
23:44:17 2006.05.30 14:05 Moving_Average EURUSD,M30: R111 стр.94: ERROR=4002/
23:44:17 2006.05.30 14:05 Moving_Average EURUSD,M30: cntOrd/i=1/1 Size cntTik/TikProp=1/0
при повторной перекомпиляции ошибка исчезает ?!