Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нем неправильно. Необходимо обновить браузер или попробовать использовать другой.
Уважаемые програмисты !
Подскажите пожалоста есть ли такая функцыя которая обновляет индикатор , чтоб можно было прикрутить к индикатору и он себя сам постояно обновлял .
if((5==true)&&(6==true)&&(7==true)&&(7==true)&&(Bid<MA1)&&(Bid<MA2)&&(Volume[0]<15)&&(USDJPYKOLPOS()<=0)){
OrderSend("USDJPY",OP_SELL,Lots(),Bid,50,0,0,"USDJPY-MultiJPY",Magic,0,Red);
OrderSend("GBPJPY",OP_SELL,Lots(),Bid,50,0,0,"GBPJPY-MultiJPY",Magic,0,Red);
}
условия на покупку выполняются точно, но ордера не идут((
А справку почитать слабо?
Только вот примеры твои написаны с ошибкой. Оператор for() обязательно должен сопровождаться фигурными скобками {} тогда как оператор if() можно использовать и без {} если после условия есть только 1 оператор.
Оператор break прекращает выполнение ближайшего вложенного внешнего оператора switch, while или for. Управление передается оператору, следующему за заканчиваемым. Одно из назначений этого оператора - закончить выполнение цикла при присваивании некоторой переменной определенного значения.
Это означает, что работа функции продолжится если после цикла есть другие операторы.
Оператор returnпрекращает выполнение текущей функции и возвращает управление вызвавшей программе. Использование return(выражение); прекращает выполнение текущей функции с передачей результата. Выражение оператора заключается в круглые скобки и не должно содержать оператор присваивания.
Это означает, что оператор returnпрекращает выполнение функции не закончив её, если такое заложено в алгоритме. Применяется для досрочного выхода из функции, если например получен необходимый результат.
Оператор return можно использовать только в функциях типа void которые не возвращают результата. И даже можно совсем его опустить.
В функциях int, double, bool оператор returnприменять не допустимо, т.к. такие функции должны возвращать какое либо значение. В них обязательно использовать return(выражение).
Ребята подскажите!
У меня на индикаторе линия раскрашена в два цвета. Индикатор разложен на несколько таймфреймов. Есть звуковой сигнал смены цвета. Чтобы увидеть где произошла смена цвета по сигналу, - хотелось бы вывести на индикаторе где нибудь в уголке цифры, о количестве баров равных последней смене цвета. И в случае смены цвета обнуление баров и новый подсчет баров по цвету индикатора. Если я буду находить нулевой бар на одном из индикаторов обозначенный цифрой ноль, то буду точно знать где произошла смена цвета. Нужна сама функция. Значение я сама смогу вывести в уголке.
Ребята подскажите!
У меня на индикаторе линия раскрашена в два цвета. Индикатор разложен на несколько таймфреймов. Есть звуковой сигнал смены цвета. Чтобы увидеть где произошла смена цвета по сигналу, - хотелось бы вывести на индикаторе где нибудь в уголке цифры, о количестве баров равных последней смене цвета. И в случае смены цвета обнуление баров и новый подсчет баров по цвету индикатора. Если я буду находить нулевой бар на одном из индикаторов обозначенный цифрой ноль, то буду точно знать где произошла смена цвета.
Лучше переделать всё.
В том месте где алерт, я бы поставил статическую или глобального уровня переменную datetime и считаешь iBarshift(, , время)
И эта переменная будет обновляться только при смене цвета, так-же как алерт.
Лучше переделать всё.
В том месте где алерт, я бы поставил статическую или глобального уровня переменную datetime и считаешь iBarshift(, , время)
И эта переменная будет обновляться только при смене цвета, так-же как алерт.
А справку почитать слабо?
Только вот примеры твои написаны с ошибкой. Оператор for() обязательно должен сопровождаться фигурными скобками {} тогда как оператор if() можно использовать и без {} если после условия есть только 1 оператор.
Это означает, что работа функции продолжится если после цикла есть другие операторы.
Это означает, что оператор returnпрекращает выполнение функции не закончив её, если такое заложено в алгоритме. Применяется для досрочного выхода из функции, если например получен необходимый результат.
Оператор return можно использовать только в функциях типа void которые не возвращают результата. И даже можно совсем его опустить.
В функциях int, double, bool оператор returnприменять не допустимо, т.к. такие функции должны возвращать какое либо значение. В них обязательно использовать return(выражение).
мне не лень читать справку, но в ней не всегда понятно написано и не доходчиво, ощущение, что писали партизаны попавшие к гестапо на допрос...к тому же много логических ошибок, и как по той справке писать нормальный код, например оператор for дан пример именно с круглыми скобками:
в той же справке непонятно что такое void тип, потому что если навести курсор на слово void и нажать F1 то никакой справки не будет:facepalm:
а теперь представьте ученика в первом классе, который спрашивает у взрослых значения слов, те его отсылают к букварю, в котором нет ясного и доступного описания, и отсутствуют некоторые буквы вапще...:facepalm:
например я встретил в коде советника такую строку:
PHP:
if (OrderType() <= OP_SELL
я понимаю строки в нормальном виде:
PHP:
if (OrderType() == OP_SELL
if (OrderType() != OP_SELL
но как можно написать вода<воздуха:not-good::facepalm:
и главное какая логика у той строки???
можно встретить оператор if вапще в сногсшибательной форме, которой нет в справке:
мне не лень читать справку, но в ней не всегда понятно написано и не доходчиво, ощущение, что писали партизаны попавшие к гестапо на допрос...к тому же много логических ошибок, и как по той справке писать нормальный код, например оператор for дан пример именно с круглыми скобками:
в той же справке непонятно что такое void тип, потому что если навести курсор на слово void и нажать F1 то никакой справки не будет:facepalm:
а теперь представьте ученика в первом классе, который спрашивает у взрослых значения слов, те его отсылают к букварю, в котором нет ясного и доступного описания, и отсутствуют некоторые буквы вапще...:facepalm:
например я встретил в коде советника такую строку:
PHP:
if (OrderType() <= OP_SELL
я понимаю строки в нормальном виде:
PHP:
if (OrderType() == OP_SELL
if (OrderType() != OP_SELL
но как можно написать вода<воздуха:not-good::facepalm:
и главное какая логика у той строки???
можно встретить оператор if вапще в сногсшибательной форме, которой нет в справке:
Да в общем-то я так отреагировал, наверное потому, что ты дискутировал с Андреем (Ugar) на такую тему, о которой я и думать боюсь. А тут задаёшь такие вопросы...
Я не очень уверен в необходимости фигурных скобок при операторе for() но однажды получил ошибку компиляции, поставил скобки, откомпилировал и больше никогда не экспериментировал и не хочу. Мне не слабо поставить скобки.
А вот что касается чтения справки, я с тобой согласится не могу. Я её сам читаю регулярно. И не только описание нужных операторов. А ты почитай раздел справки "Основы языка" узнаешь много нового. В том числе и об операторе return. Так-что без взаимных претензий.
Давай пойдём дальше.
OrderType() <= OP_SELL написано конечно странно, но объяснимо. OP_SELL = 1 меньше 1 только OP_BUY который = 0 Ну и выходит что запись if(OrderType() <= OP_SELL) равнозначна записи if(OrderType() == OP_SELL || OrderType() == OP_BUY) и соответственно абсолютная истина то, что вода ниже воздуха.
А вот запись if(OrderType() != OP_SELL) будет истиной если ордер Buy, BuyStop, BuyLimit, SellStop и SellLimit
Что касается твоего непонимания записи о которой ты говоришь "вапще..." так это абсолютно логичная запись. Применяется такое с переменными типа bool Вот переменная FridayExit имеет тип bool и соответственно запись if(FridayExit) читается как если переменная FridayExit = true а запись if(!FridayExit) читается если переменная FridayExit = false
не надо думать что чел одинаково хорошо во всем разбирается, такие люди уникумы, и если я что то знаю в одном месте, в другом могу ниче не знать и процесс обучения длится всю жизнь, и даже не одну....:facepalm:
спасибо за ответы и помощь!
никаких претензий у меня нет, все нормально!
относительно оператора return в разной форме, у меня ясности пока нет, потому что справка написана скупым языком,нет ясности ответа в ней...
return;
return(0);
return(x+12*y+a);
в справке вроде написано что форма return(0); возвращает 0, кому и куда неясно, Ugar писал так "В функциях int init(), int deinit(), int start() если выполняется return(0); это ничего и никуда не возвращает, и тем более не выплняется дальше. Это просто выход из соответствующей функции. Просто нечему возвращать."
так что пока у меня каша в голове на тему оператора return и его разной формы записи, еще в этой теме оператор break, он кажется дублирует некоторые формы return......