Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Здравствуйте, ситуация в следующем:
Работал себе советник, работал, отправлял через Webrequest запросы на REST сервис, все было хорошо, а потом смотрю, сигналы перестали обновляться.
Вывел в алерте метатрейдера 5 GetLastError (), а он мне показывает, что не может найти данные индикатора. Раньше - находил, а сейчас - не находит. Внимание вопрос: почему?
Выкладываю код советника (без стартовых значений переменных -по соображениям безопасности, видимо, ошибка у меня где-то именно в условиях)
int OnInit()
{
EventSetTimer(Timer);
char data[];
char result[];
string aQuery;
string headers;
int MA_handle;
double MA_buffer[];
//WebRequest ("GET", URL+"54902", key, 500, data, result, headers);
//Alert (CharArrayToString (result, 0, WHOLE_ARRAY, CP_UTF8));
int ID = 226;
for (int x=0; x<23; x++)
{
for (int y=0; y<9; y++)
{
MA_handle = iMA(aSymbol(x), tf(y),30,0, MODE_SMA, PRICE_CLOSE);
CopyBuffer (MA_handle, 0,0,10, MA_buffer);
if (((((((iHigh(aSymbol(x),tf(y), 1)+iLow(aSymbol(x),tf(y), 1))/2)> iHigh(aSymbol(x),tf(y), 2))&&(MA_buffer[1]>MA_buffer[2]))&&(iClose(aSymbol(x), tf (y), 1)>MA_buffer[1])))&&(iClose(aSymbol(x), tf (y), 2)>MA_buffer[2]))
{//ObjectSetInteger (0,"signal"+IntegerToString(x)+IntegerToString(y), OBJPROP_COLOR, Color_StrongUpTrade);
aQuery = "Id="+IntegerToString(ID)+"&Symbol="+IntegerToString(x)+"&TimeFrame="+IntegerToString(y)+"&Direction="+"strong_UP"+"&Strategy="+"BWSignal"+"&Price="+ DoubleToString(iOpen(aSymbol(x),tf(y), 0), 5)+"&Tp="+DoubleToString(iOpen(aSymbol(x),tf(y), 0)+0.004, 5)+"&Sl="+DoubleToString(iOpen(aSymbol(x),tf(y), 0)-0.002, 5);
StringToCharArray (aQuery,data, 0,WHOLE_ARRAY, CP_UTF8);
ArrayResize(data, StringLen(aQuery));
WebRequest("POST", URL+IntegerToString(ID), key, 5000, data, result, headers);
ID++;
//Alert (CharArrayToString(data, 0,WHOLE_ARRAY, CP_UTF8);
Alert (GetLastError());
}
else
{
if (((((((iHigh(aSymbol(x),tf(y), 1)+iLow(aSymbol(x),tf(y), 1))/2)< iLow(aSymbol(x),tf(y), 2))&&(MA_buffer[1]<MA_buffer[2]))&&(iClose(aSymbol(x), tf (y), 1)<MA_buffer[1])))&&(iClose(aSymbol(x), tf (y), 2)<MA_buffer[2]))
{ //ObjectSetInteger (0,"signal"+IntegerToString(x)+IntegerToString(y), OBJPROP_COLOR, Color_StrongDownTrade);
aQuery = "Id="+IntegerToString(ID)+"&Symbol="+IntegerToString(x)+"&TimeFrame="+IntegerToString(y)+"&Direction="+"strong_DOWN"+"&Strategy="+"BWSignal"+"&Price="+ DoubleToString(iOpen(aSymbol(x),tf(y), 0), 5)+"&Tp="+DoubleToString(iOpen(aSymbol(x),tf(y), 0)+0.004, 5)+"&Sl="+DoubleToString(iOpen(aSymbol(x),tf(y), 0)-0.002, 5);
StringToCharArray (aQuery,data, 0,WHOLE_ARRAY, CP_UTF8);
ArrayResize(data, StringLen(aQuery));
WebRequest("POST", URL+IntegerToString(ID), key, 5000, data, result, headers);
ID++;
//Alert (CharArrayToString(data, 0,WHOLE_ARRAY, CP_UTF8);
Alert (GetLastError());
}
else
{
if ((((iHigh(aSymbol(x),tf(y), 1)+iLow(aSymbol(x),tf(y), 1))/2)> iHigh(aSymbol(x),tf(y), 2))&&(MA_buffer[1]<70))
{
//ObjectSetInteger (0,"signal"+IntegerToString(x)+IntegerToString(y), OBJPROP_COLOR, Color_UpTrade);
aQuery = "Id="+IntegerToString(ID)+"&Symbol="+IntegerToString(x)+"&TimeFrame="+IntegerToString(y)+"&Direction="+"UP"+"&Strategy="+"BWSignal"+"&Price="+ DoubleToString(iOpen(aSymbol(x),tf(y), 0), 5)+"&Tp="+DoubleToString(iOpen(aSymbol(x),tf(y), 0)+0.004, 5)+"&Sl="+DoubleToString(iOpen(aSymbol(x),tf(y), 0)-0.002, 5);
StringToCharArray (aQuery,data, 0,WHOLE_ARRAY, CP_UTF8);
ArrayResize(data, StringLen(aQuery));
WebRequest("POST", URL+IntegerToString(ID), key, 5000, data, result, headers);
ID++;
//Alert (CharArrayToString(data, 0,WHOLE_ARRAY, CP_UTF8);
Alert (GetLastError());
}
else
{
if ((((iHigh(aSymbol(x),tf(y), 1)+iLow(aSymbol(x),tf(y), 1))/2)< iLow(aSymbol(x),tf(y), 2))&&(MA_buffer[1]>30))
{
//ObjectSetInteger (0,"signal"+IntegerToString(x)+IntegerToString(y), OBJPROP_COLOR, Color_DownTrade);
aQuery = "Id="+IntegerToString(ID)+"&Symbol="+IntegerToString(x)+"&TimeFrame="+IntegerToString(y)+"&Direction="+"DOWN"+"&Strategy="+"BWSignal"+"&Price="+ DoubleToString(iOpen(aSymbol(x),tf(y), 0), 5)+"&Tp="+DoubleToString(iOpen(aSymbol(x),tf(y), 0)+0.004, 5)+"&Sl="+DoubleToString(iOpen(aSymbol(x),tf(y), 0)-0.002, 5);
StringToCharArray (aQuery,data, 0,WHOLE_ARRAY, CP_UTF8);
ArrayResize(data, StringLen(aQuery));
WebRequest("POST", URL+IntegerToString(ID), key, 5000, data, result, headers);
ID++;
//Alert (CharArrayToString(data, 0,WHOLE_ARRAY, CP_UTF8);
Alert (GetLastError());
}
else
{
//ObjectSetInteger (0,"signal"+IntegerToString(x)+IntegerToString(y), OBJPROP_COLOR, Color_DontTrade);
aQuery = "Id="+IntegerToString(ID)+"&Symbol="+IntegerToString(x)+"&TimeFrame="+IntegerToString(y)+"&Direction="+"FLAT"+"&Strategy="+"BWSignal";
StringToCharArray (aQuery,data, 0,WHOLE_ARRAY, CP_UTF8);
ArrayResize(data, StringLen(aQuery));
WebRequest("POST", URL+IntegerToString(ID), key, 5000, data, result, headers);
ID++;
//Alert (CharArrayToString(data, 0,WHOLE_ARRAY, CP_UTF8);
Alert (GetLastError());
}
}
}
}
}
}
return(0);
//---
return(INIT_SUCCEEDED);
}
ENUM_TIMEFRAMES tf(int index)
{
switch(index)
{
case 0:return(PERIOD_M1);
case 1:return(PERIOD_M5);
case 2:return(PERIOD_M15);
case 3:return(PERIOD_M30);
case 4:return(PERIOD_H1);
case 5:return(PERIOD_H4);
case 6:return(PERIOD_D1);
case 7:return(PERIOD_W1);
case 8:return(PERIOD_MN1);
}
return(PERIOD_CURRENT);
}
string tfs (int index)
{
switch (index)
{
case 0:return("M1");
case 1:return("M5");
case 2:return("M15");
case 3:return("M30");
case 4:return("H1");
case 5:return("H4");
case 6:return("D1");
case 7:return("W1");
case 8:return("MN1");
}
return(NULL);
}
string aSymbol (int index)
{
switch (index)
{
case 0: return ("EURUSD");
case 1: return ("EURGBP");
case 2: return ("GBPJPY");
case 3: return ("EURJPY");
case 4: return ("GBPUSD");
case 5: return ("USDJPY");
case 6: return ("AUDCAD");
case 7: return ("NZDUSD");
case 8: return ("EURRUB");
case 9: return ("USDRUB");
case 10: return ("USDCHF");
case 11: return ("XAUUSD");
case 12: return ("XAGUSD");
case 13: return ("AUDUSD");
case 14: return ("USDCAD");
case 15: return ("AUDJPY");
case 16: return ("GBPCAD");
case 17: return ("GBPCHF");
case 18: return ("GBPAUD");
case 19: return ("EURAUD");
case 20: return ("USDNOK");
case 21: return ("EURNZD");
case 22: return ("USDSEK");
}
return (Symbol());
}
double iHigh (string symbol,ENUM_TIMEFRAMES timeframe,int index)
{
if(index < 0) return(-1);
double Arr[];
if(CopyHigh(symbol,timeframe, index, 1, Arr)>0)
return(Arr[0]);
else return(-1);
}
double iLow(string symbol,ENUM_TIMEFRAMES timeframe,int index)
{
if(index < 0) return(-1);
double Arr[];
if(CopyLow(symbol, timeframe, index, 1, Arr)>0)
return(Arr[0]);
else return(-1);
}
double iOpen(string symbol,ENUM_TIMEFRAMES timeframe,int index)
{
if(index < 0) return(-1);
double Arr[];
if(CopyOpen(symbol, timeframe, index, 1, Arr)>0)
return(Arr[0]);
else return(-1);
}
double iClose(string symbol,ENUM_TIMEFRAMES timeframe,int index)
{
if(index < 0) return(-1);
double Arr[];
if(CopyClose(symbol, timeframe, index, 1, Arr)>0)
return(Arr[0]);
else return(-1);
}