Интересный вопрос для гуру. Определение ближайшего значения из массива. - страница 2

[Deleted]  

Уважаемые господа помогите разобраться. Не могу скампилировать советника Даёт Ошибку  " ма_1"- variable already defined Перерабатывал штатного советника из учебника, причём сперва его немного правил, всё было нормально, а сейчас целиком переписал и получил Ошибку и немогу понять где он уже успел увидать МА ? В функции старт пробовал void,  как в учебнике не помогает вроде всё правильно .

int start()
{
double ma_1,
ma_1=iMA(NULL,0,MovingPeriod_1,MovingShift_1,MODE_SMA,PRICE_CLOSE,0);
for(int i=0;i<OrdersTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
if (OrderSymbol()!=Symbol()) continue;
//----Проверить тип ордера
if(OrderType()==OP_BUY)
{
if (Close[1]<ma_1) == true
OrderClose(OrderTicket(),OrderLots(),Bid,slippage,Green);
break;
}
if(OrderType()==OP_SELL)
{
if (Close[1]>ma_1)==true
OrderClose(OrderTicket(),OrderLots(),Ask,slippage,Blue);
break;
}
}
//---------------------------Открыты ордера но критерия для закрытия нет
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
if (OrderSymbol()!=Symbol()) continue;
if((OrderType()==OP_BUY)== true ||((OrderType()==OP_SELL))== true
{return}
else
{continue}
//----------------------------Открытых ордеров нет

if (Close[1]>ma_1 )==true //Провека критерия на открытия BUY
{
OrderSend(Symbol(),OP_BUY,LotsOptimized(),Ask,slippage,0,0,"",0,0,Blue);
return; //Ордер BUY открыт, выходим
}
if (Close[1]<ma_1 )==true //Проверка критерия на открытия SELL
{
OrderSend(Symbol(),OP_SELL,LotsOptimized(),Bid,slippage,0,0,"",0,0,Red);
return; //Ордер SELL открыт, выходим
}
else return;
}


 

В начале самого советника посмотри наверное там есть описание этой переменой...