тут определяется условия индикатора
double UP1= iCustom(Symbol(),0,"BBands_Stop_v1_BAR",Length,Deviation,MoneyRisk,Signal,Line,4,1); // гистограмма синего цвета
double DW1= iCustom(Symbol(),0,"BBands_Stop_v1_BAR",Length,Deviation,MoneyRisk,Signal,Line,5,1); // гистограмма красного цвета
double UP2= iCustom(Symbol(),0,"BBands_Stop_v1_BAR",Length,Deviation,MoneyRisk,Signal,Line,4,2); // гистограмма синего цвета
double DW2= iCustom(Symbol(),0,"BBands_Stop_v1_BAR",Length,Deviation,MoneyRisk,Signal,Line,5,2); // гистограмма красного цвета
ниже условия открытия бай и селл:
if (DW1>UP1 && DW2<UP2) // сигнал на покупку
if (UP1>DW1 && UP2<DW2) // сигнал на продажу
// Открытие ордеров
while(true)
{
if (Total==0 && Opn_B==true) // Открытых орд. нет +
{
// критерий откр. Buy
if (DW1>UP1 && DW2<UP2) // сигнал на покупку
RefreshRates(); // Обновление данных
SL=Bid-StopLoss*Point; // Вычисление SL откр.
TP=Bid+TakeProfit*Point; // Вычисление TP откр.
Alert("Попытка открыть Buy. Ожидание ответа..");
Ticket=OrderSend(Symb,OP_BUY,Lots,Ask,3,SL,TP);//Открытие Buy
if (Ticket > 0) // Получилось
{
Alert ("Открыт ордер Buy ",Ticket);
return; // Выход из start()
}
if (Fun_Error(GetLastError())==1) // Обработка ошибок
continue; // Повторная попытка
return; // Выход из start()
}
// критерий откр SELL
if (Total==0 && Opn_S==true) // Открытых орд. нет +
{
if (UP1>DW1 && UP2<DW2) // сигнал на продажу
RefreshRates(); // Обновление данных
SL=Ask + StopLoss*Point; // Вычисление SL откр.
TP=Ask - TakeProfit*Point; // Вычисление TP откр.
Alert("Попытка открыть Sell. Ожидание ответа..");
Ticket=OrderSend(Symb,OP_SELL,Lots,Bid,3,SL,TP);//Открытие Sel
if (Ticket > 0) // Получилось
{
Alert ("Открыт ордер Sell ",Ticket);
return; // Выход из start()
}