1. Чтоб решить что именно должна возвратить обычная функция, я должен знать, зачем основному коду именно такая величина. Напрмер, если нужно принять решение об окрытии бай-ордера при наличии сигнала, я напишу функцию, которая возвратит количество уже открытых бай-ордеров. В зависимости от того сколько их там, код будет принимать решение следуя вложенной в код логике. Я не знаю, какая логика обработки кода возврата вложена в терминал. Сегодня просматривал статью про создание семафора и наткнулся на код возврата (-2). Удивился, задал тут вопрос. Только и всего. ( https://www.mql5.com/ru/articles/1412 - статья тут).
2. Терминал игнорирует возвращаемые значения. Это точно? Если это так, то тогда опять возникает законный вопрос, почему при создании советника/индикатора/скрипта разработчик вложил в шаблон именно int, ведь логичнее было вложить туда void - тогда терминалу и игнорировать ни чего бы не пришлось - мы бы тогда выиграли 1 такт процессорного времени? Может всё же есть какая-то логика, в том, ЧТО возвращать в ретурне из функций int init(), int deinit() и int start()? По моему, Рош где-то кому-то это уже объяснял - там помнится было описание когда нужно возвращать ноль, а когда (-1). Вот это-то объяснение я и искал. Жаль найти не удалось...
P.S.
return(-2) автор статьи использует в своих целях. Но факт остаётся фактом - иногда функция start() завершается кодом возврата величины, отличной от нуля. И это делает далеко не 1 человек. Вот эту то логику и хотелось бы понять.
1. Ничего не могу добавить. Что хотите, то возвращайте.
2. Терминал игнорирует, а Ваш код не игнорирует, если так построен. При системном вызове игнорируются и параметры и возврщаемое значение. Это и так понятно. Куда оно возвращается в таком случае?
О создание шаблона можно только догадываться. Наверняка, разработчики исходили из умолчательного INT.
каждый раз меняя дату в истории прихотидся менять ее во всех индикаторах.
Написал индикатор, который передает через iCustom зачение сдвига в int bars.
Но проблема в том, что передается дата без изменения, та которая скомпелированна (02.07.2012), а при ее изменениях руками (02.06.2012) не передается!!!
1. Ничего не могу добавить. Что хотите, то возвращайте.
2. Терминал игнорирует, а Ваш код не игнорирует, если так построен. При системном вызове игнорируются и параметры и возврщаемое значение. Это и так понятно. Куда оно возвращается в таком случае?
О создание шаблона можно только догадываться. Наверняка, разработчики исходили из умолчательного INT.
Пришёл тик, терминал вызывает функцию start() советника. Вы утверждаете, что значение, возвращаемое этой функцией, терминалу безразлично. Это где-нибудь задокументировано?
говорят о том, что первые два буффера и есть показатель смены тренда. Там ведь сверху свеч идут красные значки, а снизу синие. Как показатель преломления тренда работает только комбинация жёлтый-серый. Для них соответственно будет:
//---- indicator buffers mappingSetIndexBuffer(0,ind_buffer1);// для серого цветаSetIndexBuffer(1,ind_buffer2);// для жёлтого цвета
Народ, подскажите по поводу передачи даты через iCustom. Передает тока скомпелированное значение, как передать по буферу измененое на глобальном уровне? Когда меняю дату передается все равно прежнее знаяение.
Помогите, пожалуйста, если кто из вас сможет, прописать код на такое условие:
"если, ордер был закрыт по TakeProfit, после пересечения скользящей средней, то не открывать больше сделки в эту сторону, пока цена не пересечет скользящую среднюю в обратную сторону".
1. Чтоб решить что именно должна возвратить обычная функция, я должен знать, зачем основному коду именно такая величина. Напрмер, если нужно принять решение об окрытии бай-ордера при наличии сигнала, я напишу функцию, которая возвратит количество уже открытых бай-ордеров. В зависимости от того сколько их там, код будет принимать решение следуя вложенной в код логике. Я не знаю, какая логика обработки кода возврата вложена в терминал. Сегодня просматривал статью про создание семафора и наткнулся на код возврата (-2). Удивился, задал тут вопрос. Только и всего. ( https://www.mql5.com/ru/articles/1412 - статья тут).
2. Терминал игнорирует возвращаемые значения. Это точно? Если это так, то тогда опять возникает законный вопрос, почему при создании советника/индикатора/скрипта разработчик вложил в шаблон именно int, ведь логичнее было вложить туда void - тогда терминалу и игнорировать ни чего бы не пришлось - мы бы тогда выиграли 1 такт процессорного времени? Может всё же есть какая-то логика, в том, ЧТО возвращать в ретурне из функций int init(), int deinit() и int start()? По моему, Рош где-то кому-то это уже объяснял - там помнится было описание когда нужно возвращать ноль, а когда (-1). Вот это-то объяснение я и искал. Жаль найти не удалось...
P.S.
return(-2) автор статьи использует в своих целях. Но факт остаётся фактом - иногда функция start() завершается кодом возврата величины, отличной от нуля. И это делает далеко не 1 человек. Вот эту то логику и хотелось бы понять.
1. Ничего не могу добавить. Что хотите, то возвращайте.
2. Терминал игнорирует, а Ваш код не игнорирует, если так построен. При системном вызове игнорируются и параметры и возврщаемое значение. Это и так понятно. Куда оно возвращается в таком случае?
О создание шаблона можно только догадываться. Наверняка, разработчики исходили из умолчательного INT.
как можно понять эти строки:
Напишите вот так и посмотрите в журнал:
Помогите советом пож.
Я использую несколько индикаторов, в которых фигурирует в глобальных переменных дата
каждый раз меняя дату в истории прихотидся менять ее во всех индикаторах.
Написал индикатор, который передает через iCustom зачение сдвига в int bars.
Но проблема в том, что передается дата без изменения, та которая скомпелированна (02.07.2012), а при ее изменениях руками (02.06.2012) не передается!!!
ПОЧЕМУ и ЧТО ДЕЛАТЬ????
Вот приемник
Comment пишет сдвиг 16. А при 02.06.2012 должно быть 48
Прошу помочь советом!
помогите как в эксперте определить последние хай и лоу (пики) зигзага
double zz1;
int start()
{
zz1=iCustom(NULL,0,"ZigZag", 12, 5, 3, 0, 1);
MessageBox("zz1="+zz1,"zz1");
return(0);
}
выходят одни "0.00000"
помогите как в эксперте определить последние хай и лоу (пики) зигзага
double zz1;
int start()
{
zz1=iCustom(NULL,0,"ZigZag", 12, 5, 3, 0, 1);
MessageBox("zz1="+zz1,"zz1");
return(0);
}
выходят одни "0.00000"
Народ обьясните пожалуйста как (точнее где) индикатор "mikahekin" меняет отображаемый буфер, неделю голову ломаю а понять немогу.
Хочу пихнуть туда "Alert()" чтоб говорил когда тренд развернулся.
З.Ы. В mql4 я немного лучше чем в балете но...1. Ничего не могу добавить. Что хотите, то возвращайте.
2. Терминал игнорирует, а Ваш код не игнорирует, если так построен. При системном вызове игнорируются и параметры и возврщаемое значение. Это и так понятно. Куда оно возвращается в таком случае?
О создание шаблона можно только догадываться. Наверняка, разработчики исходили из умолчательного INT.
Пришёл тик, терминал вызывает функцию start() советника. Вы утверждаете, что значение, возвращаемое этой функцией, терминалу безразлично. Это где-нибудь задокументировано?
Народ обьясните пожалуйста как (точнее где) индикатор "mikahekin" меняет отображаемый буфер, неделю голову ломаю а понять немогу.
Хочу пихнуть туда "Alert()" чтоб говорил когда тренд развернулся.
З.Ы. В mql4 я немного лучше чем в балете но...Строки
говорят о том, что первые два буффера и есть показатель смены тренда. Там ведь сверху свеч идут красные значки, а снизу синие. Как показатель преломления тренда работает только комбинация жёлтый-серый. Для них соответственно будет:
Там, в значениях этих буфферов и копайте.Индикатор выложил чуть выше.....
Или оно не как не меняется?????
Мастера скажите пож.
Помогите, пожалуйста, если кто из вас сможет, прописать код на такое условие:
"если, ордер был закрыт по TakeProfit, после пересечения скользящей средней, то не открывать больше сделки в эту сторону, пока цена не пересечет скользящую среднюю в обратную сторону".
Заранее спасибо за помощь!