Александр_Стручков
Интересующийся
ошибка '{' - function definition unexpected
Всем привет! Начинаю писать свой первый скрипт, и первая проблема - метаэдитор ругается на запятые при перечислении выражений"," в операторе IF
Кто знает, в чем проблема?![Wink ;) ;)](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
#property strict уже убрал - без результатов.
Заранее благодарен за помощь![Smile :) :)](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
В мануале написано, что перечислять можно через запятую. Или я что-то не так понял?
Не хочется писать несколько операторов "If" для каждого выражения, если все можно написать в одном..
На данной стадии код выглядит так:
extern int MaxRisk=2; // максимальный риск в % от депозита
extern int TP=90; // TakeProfit
extern int SL=35; // StopLoss
extern int TS=35; //
bool ordersell=false; // разрешение на открытие ордера на продажу
bool orderbuy=false; // разрешение на открытие ордера на покупку
double Lot=0; // Рассчитанное значение размера открытия позиции
void OnTick(void)
{
if(DayOfWeek()==0 || DayOfWeek()==6) return(0); // в выходные не работаем
if(!IsTradeAllowed()) return(0); // пропустим тик если терминал занят
double Free =AccountFreeMargin();
double One_Lot =MarketInfo(Symbol(),MODE_MARGINREQUIRED);
double Step =MarketInfo(Symbol(),MODE_LOTSTEP);
double Min_Lot =MarketInfo(Symbol(),MODE_MINLOT);
double Max_Lot =MarketInfo(Symbol(),MODE_MAXLOT);
Lot =MathFloor(Free*MaxRisk/100/One_Lot/Step)*Step;
if(Lot>Max_Lot) Lot=Max_Lot;// размер лота не превышает максимально разрешенный
if(Lot<Min_Lot) orderbuy=false, ordersell=false, Alert("Не достаточно средств для совершения операции согласно заданным условиям риска");
return;
}
Всем привет! Начинаю писать свой первый скрипт, и первая проблема - метаэдитор ругается на запятые при перечислении выражений"," в операторе IF
Кто знает, в чем проблема?
#property strict уже убрал - без результатов.
Заранее благодарен за помощь
В мануале написано, что перечислять можно через запятую. Или я что-то не так понял?
Не хочется писать несколько операторов "If" для каждого выражения, если все можно написать в одном..
На данной стадии код выглядит так:
extern int MaxRisk=2; // максимальный риск в % от депозита
extern int TP=90; // TakeProfit
extern int SL=35; // StopLoss
extern int TS=35; //
bool ordersell=false; // разрешение на открытие ордера на продажу
bool orderbuy=false; // разрешение на открытие ордера на покупку
double Lot=0; // Рассчитанное значение размера открытия позиции
void OnTick(void)
{
if(DayOfWeek()==0 || DayOfWeek()==6) return(0); // в выходные не работаем
if(!IsTradeAllowed()) return(0); // пропустим тик если терминал занят
double Free =AccountFreeMargin();
double One_Lot =MarketInfo(Symbol(),MODE_MARGINREQUIRED);
double Step =MarketInfo(Symbol(),MODE_LOTSTEP);
double Min_Lot =MarketInfo(Symbol(),MODE_MINLOT);
double Max_Lot =MarketInfo(Symbol(),MODE_MAXLOT);
Lot =MathFloor(Free*MaxRisk/100/One_Lot/Step)*Step;
if(Lot>Max_Lot) Lot=Max_Lot;// размер лота не превышает максимально разрешенный
if(Lot<Min_Lot) orderbuy=false, ordersell=false, Alert("Не достаточно средств для совершения операции согласно заданным условиям риска");
return;
}
Последнее редактирование: