keekkenen . Вот меня и интересует в функции start() у Вас while(!openOrder(..)){} не раскрыто, что там делается в {}. Ограничиваете ли Вы количество попыток при реквотах?
по-скольку вы написали что, ордер должен открываться, то я и привел такую "жесткую" конструкцию, раз должен открыться, значит будет открыт независимо от того сколько на это потребуется попыток.. если же по нормальному открывать ордера, то while не нужен, можно в try передать число попыток и в функции уже определять реагировать на критические ошибки или игнорировать их и тупо пытаться открыть try раз ордер..
а смысл while(!openOrder(..)){} в том, что создаем вечный цикл, т.е. он будет работать до тех пор пока не откроется ордер..
собственно, определите какая должна быть тактика при открытии ордеров, поможем..
int init(){double A=AccountBalance()//Определяем балансdouble B=NormalizeDouble(A/50,0)//Выполняем вычисления и делаем результат целым числомdouble Lots=B*0.01//Вычисление лота.if(Lots>0)Alert("Лот будет ",Lots )return(0);}
сама функция прекратит работу, если будет реквота по условию else
try = 0, соответственно цикл while прекращает работу и openOrder() возвращает false
но если применять конструкцию while(!openOrder(..)){}, то да, долбиться будет пока не откроет ордер
по-скольку вы написали что, ордер должен открываться, то я и привел такую "жесткую" конструкцию, раз должен открыться, значит будет открыт независимо от того сколько на это потребуется попыток.. если же по нормальному открывать ордера, то while не нужен, можно в try передать число попыток и в функции уже определять реагировать на критические ошибки или игнорировать их и тупо пытаться открыть try раз ордер..
а смысл while(!openOrder(..)){} в том, что создаем вечный цикл, т.е. он будет работать до тех пор пока не откроется ордер..
собственно, определите какая должна быть тактика при открытии ордеров, поможем..
вопрос такой:
Не получается работать с массивом.
Инициализирую массив, заполняю его любыми данными, а когда считываю - там нули.
Что делаю не так?
Не получается работать с массивом.
Нужно указать размер массива, например при объявлении:
или потом:
а если я не знаю, какой размер массива у меня будет?
И даже если задаю - что то не компиляется:
Вставляю внешнюю переменную:
И дальше по тексту:
на выходе результат:
'Razmer' - integer number expected C:\Program Files\MetaTrader - Alpari2\experts\temp.mq4 (36, 16)
']' - comma or semicolon expected C:\Program Files\MetaTrader - Alpari2\experts\temp.mq4 (36, 22)
'MASS' - variable not defined C:\Program Files\MetaTrader - Alpari2\experts\temp.mq4 (40, 3)
'MASS' - variable not defined C:\Program Files\MetaTrader - Alpari2\experts\temp.mq4 (44, 9)
а если я не знаю, какой размер массива у меня будет?
Значит нужно использовать ф-цию ArrayResize когда станет известно сколько элементов будет в массиве.
С внешней переменной, как видите, не прокатит:)
Можно так:
Спасибо, уважаемый Хирург.
Все заработалао :)
А что собственно вы пытаетесь реализовать?