Но для теста нужно чтобы советник мог открывать позиции по сигналу. добавим функции открытия ордеров BUY и SELL, а так же функцию формирования сигнала ind(); Функция открытия ордера BUY
функция открытия ордера buy
//возвращает тикет(порядковый номер ордера)
//входные параметры:
//лот
// стоп лосс и тейк профит(в пунктах)
int openbuy(double l;int s;int t)
{
int tik; //тикет
double ask=MarketInfo(Symbol(),MODE_ASK);
double bid=MarketInfo(Symbol(),MODE_BID);
//проверяем размерность лота
//минимально допустимый размер лота
double min=MarketInfo(Symbol(),MODE_MINLOT);
//максимально допустимый размер лота
double max=MarketInfo(Symbol(),MODE_MAXLOT);
//если размер лота >max или max
{
//фиксируем ошибку в журнале
Print("Ошибка! Недопустимый размер лота! лот=",l);
//дублируем сообщение на экране
Comment("Ошибка! Недопустимый размер лота! лот=",l);
//выход
tik=-1;
return(tik);
}
// нормализуем значение лота
l=NormalizeDouble(l,2);
//проверяем значения стопов
//минимальный уровень стопов в пунктах
int stop=MarketInfo(Symbol(),MODE_STOPLEVEL);
//спред в пунктах
int spread=MarketInfo(Symbol(),MODE_SPREAD);
stop=stop+spread;
//если лосс или тейк меньше допустимого
if((s<=stop&&s!=0)||(t<=stop&&t!=0))
{
//фиксируем ошибку в журнале
Print("Стопы слишком близко к рынку стор лосс=",s, "Тейк профит =",t," Ask= ",ask);
//дублируем сообщение на экране
Comment("Стопы слишком близко к рынку стор лосс=",s, "Тейк профит =",t," Ask= ",ask);