вопрос по циклу

 
Изучаю язык с циклами всё ясно но вот конкретно в код вставить не могу если не трудно киньте кусок кода установка StopLoss по минимальным значениям последних десяти баров.
 
Цикл не нужен, используй
int Highest( string symbol, int timeframe, int type, int count=WHOLE_ARRAY, int start=0)

Возвращает индекс найденного наибольшего значения (смещение относительно текущего бара).

Параметры:

symbol - Символьное имя инструмента, на данных которого будет производиться поиск. NULL означает текущий символ.
timeframe - Период. Может быть одним из периодов графика. 0 означает период текущего графика.
type - Идентификатор таймсерии. Может быть любым из значений иденитификаторов таймсерий.
count - Число элементов таймсерии (в направлении от текущего бара в сторону возрастания индекса), среди которых должен быть произведен поиск.
start - Смещение (относительно текущего) начального бара, с которого начинается поиск наибольшего значения.

Пример:

double val;
// расчет самого верхнего значения в дипазоне с 5 элементов в 25 элементов
// индикатор помещает в диаграмму символ и рамку времени диаграмм индикатора
val=High[Highest(NULL,0,MODE_HIGH,20,4)];

int Lowest( string symbol, int timeframe, int type, int count=WHOLE_ARRAY, int start=0)

Возвращает индекс найденного наименьшего значения (смещение относительно текущего бара).

Параметры:

symbol - Символьное имя инструмента, на данных которого будет производиться поиск. NULL означает текущий символ.
timeframe - Период. Может быть одним из значений периодов графика. 0 означает период текущего графика.
type - Идентификатор таймсерии. Может быть любым из значений идентификаторов таймсерий.
count - Число элементов таймсерии (в направлении от текущего бара в сторону возрастания индекса), среди которых должен быть произведен поиск.
start - Смещение (относительно текущего) начального бара, с которого начинается поиск наименьшего значения.

Пример:

double val=Low[Lowest(NULL,0,MODE_LOW,10,10)];
 
Спасибо
 
Вроде всё прописал но чото не торгует укажите на ощибку если не сложно

#property copyright "Vuki"
#property link

//---- input parameters
extern double Lots=0.1;
extern int MA1=9;//скользящая средняя
extern int MA2=21;//скользящая средняя
extern int MA3=120;//скользящая средняя
extern int MA4=120;//скользящая средняя
extern int Kperiod=5;
extern int Dperiod=3;
double TakeProfit,StopLoss;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
if(Bars<100){ Print("bars less than 100"); return(0); }
if(AccountFreeMargin()<(500*Lots)){
Print("Нету свободных денег. Free Margin = ", AccountFreeMargin());
return(0);
}
if(TakeProfit<10){ Print("TakeProfit less than 10"); return(0); }
if(StopLoss<10){ Print("StopLoss less than 10"); return(0); }

int start()
{
int M1,M2,M3,M4,stok,tiket;
M1=iMA(NULL,0,MA1,0,MODE_EMA,PRICE_CLOSE,0);
M2=iMA(NULL,0,MA2,0,MODE_EMA,PRICE_CLOSE,0);
M3=iMA(NULL,0,MA3,0,MODE_EMA,PRICE_CLOSE,0);
M4=iMA(NULL,0,MA4,0,MODE_EMA,PRICE_CLOSE,1);
stok=iStochastic(NULL,0,Kperiod,Dperiod,3,MODE_SMA,0,MODE_MAIN,0);
//Ставим Стоп
{
StopLoss=Low[Lowest(NULL,0,MODE_LOW,10,10)];
}
//Ставим Профит
{
TakeProfit=High[Highest(NULL,0,MODE_HIGH,20,4)];
}
tiket=OrdersTotal();
{
if(tiket>1)return(0);
}
{
if(AccountFreeMargin()<(500*Lots))
{
Print("Недостаточно денег. Free Margin = ", AccountFreeMargin());
return(0);
}

if((M1<M2)<M3&&(M3<M4)&&(stok>80))
{
tiket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,StopLoss,TakeProfit,
"Мой заказ",Red);
return(0);
}

if((M1>M2)>M3&&(M3>M4)&&(stok<30))
{
tiket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,StopLoss,TakeProfit,
"Мой заказ",Green);
return(0);
}
}
}




 
demon:
Вроде всё прописал но чото не торгует укажите на ощибку если не сложно
((M1<M2)<M3 ) <= ??????????
Если не сложно - что подразумевалось под этим выражением ? Вы результат первого сравнения (ИСТИНА или ЛОЖЬ) сравниваете со значением переменной М3, которая не является логической.

Подозреваю, что это последовательное сравнение, просто записано неверно. Тогда должно быть так:
( (M1<M2) && (M2<M3) )


И, кстати, переменные М1, М2, М3 должны быть описаны как переменные с плавающей точкой, а не целочисленные ( double, а не int) иначе не соответствует возвращаемому значению функции iMA(......);
 
Я уже сам догнал спасибо за ответ извени за тупой вопрос
Причина обращения: