Stomatolog: Здравствуйте уважаемые! может вы поможете в моём вопросе ? Я новичёк в MQL4, пишу советник , чтобы он не открывал сделку на каждом новом тике пришлось написать int total=OrdersTotal();total<1. Теперь советник открывает одну сделку в терминале и всё . А как сделать чтобы сделки открывались по всем валютным парам где установлен советник. И на отдельно взятой валютной паре можно было открывать несколько сделок.
Для того чтобы не открываться на каждом тике, и быстрее оптимизировать советник, я часто использую такую конструкцию:
datetime t; // переменная для запоминания значения времени
int start()
{
if (t == Time[0]) return; // если "старое" время и текущее совпадают, выходим из start
else t = Time[0]; // иначе присвоим переменной текущее время
Т.о. при появлении нового бара код будет выполняться один раз.
Почитайте как использовать MagicNumber в ордерах и тогда использование total < 1 будет давать возможность открывать советником ордер и по каждой валютной паре и по одной валютной паре, но открытой в разных окнах. Образец можно здесь посмотреть.
после выполнения PlaySound("alert.wav"); следующие if выполняться уже не будут?
if (1<2)
{
if(2<3)
{
if (3<4) PlaySound("alert.wav");
{if (X)....
{if (Y)
}
}
}
}
Ваш код неверен. Открывающие скобки должны быть до операторов, а не после.
//+----------------------------------------------------------------------------+if (1<2) { // Если один меньше два и ...if(2<3) { // ... два меньше три, ...if (3<4) PlaySound("alert.wav"); // Если три меньше четыре - врежем рок в этой дыре ... (С), // Далее пойдём проверять остальные условия:if (4<5) // Если четыре меньше пять и ...if (5<6) Print("Истина"); // ... пять меньше шесть - верно, блин...
}
}
//+----------------------------------------------------------------------------+
Блок с Саунд`ом и Принт`ом выполнится только, если 1 меньше 2 и 2 меньше 3. Саунд выполнится если 3 меньше 4. Но принт выполнится ещё и при условии, если 4 меньше 5 и 5 меньше 6
Ваш код неверен. Открывающие скобки должны быть до операторов, а не после.
Блок с Саунд`ом и Принт`ом выполнится только, если 1 меньше 2 и 2 меньше 3. Саунд выполнится если 3 меньше 4. Но принт выполнится ещё и при условии, если 4 меньше 5 и 5 меньше 6
мне кажется что если 4>5 , а 5<6 то при данной записи Принт все равно будет выполняться, ибо машина будет отрабатывать все 3 if подряд независимо от их ТРУ -ФОЛС результата - СКОБОК-то НЕТ!
мне кажется что если 4>5 , а 5<6 то при данной записи Принт все равно будет выполняться, ибо машина будет отрабатывать все 3 if подряд независимо от их ТРУ -ФОЛС результата - СКОБОК-то НЕТ!
Если (4<5) истинно, то выполняется следующая строка: if(5<6), но ... ежели (4<5) ложно, то следующий if () вместе с его принтом не обрабатываются, а переходим на закрывающую скобку от if (2<3).
lottamer: а можно ли вывести локальную переменную в глобальное использование?
Можно, главное следить, чтобы логика при этом не нарушилась. Могут быть две и более локальных переменных (каждая объявлена в своей функции) с именами, совпадающими с именем одной глобальной переменной. Тут нужно быть внимательным и обращать внимание на их видимость.
Как правильно через iCustom(), прикрепить один индикатор к другому? У меня есть один индикатор в котором все 8 индикаторных массива заняты. Как правильно создать второй, чтобы в нём, в 1 индикаторном массиве, рисовалась кривая из первого индикатора? Оба индикатора #property indicator_chart_window. Самое наглядное объяснение, это аналог в виде кода двух связанных индикаторов. Заранее, СПАСИБО!!!
Leo59: Как правильно через iCustom(), прикрепить один индикатор к другому? У меня есть один индикатор в котором все 8 индикаторных массива заняты. Как правильно создать второй, чтобы в нём, в 1 индикаторном массиве, рисовалась кривая из первого индикатора? Оба индикатора #property indicator_chart_window. Самое наглядное объяснение, это аналог в виде кода двух связанных индикаторов. Заранее, СПАСИБО!!!
Считывайте в индикаторный буффер второго индюкатора тот буфер первого индюкатора, линию из которого хотите отобразить.
Если я верно понял ваши фигурные скобки, то:
после выполнения PlaySound("alert.wav"); следующие if выполняться уже не будут?
Индикатор краснеет, когда его значения уменьшаются, и зеленеет, когда значения растут.
действительно...так все просто) спасибо!
Здравствуйте уважаемые! может вы поможете в моём вопросе ? Я новичёк в MQL4, пишу советник , чтобы он не открывал сделку на каждом новом тике пришлось написать int total=OrdersTotal();total<1. Теперь советник открывает одну сделку в терминале и всё . А как сделать чтобы сделки открывались по всем валютным парам где установлен советник. И на отдельно взятой валютной паре можно было открывать несколько сделок.
Для того чтобы не открываться на каждом тике, и быстрее оптимизировать советник, я часто использую такую конструкцию:
Т.о. при появлении нового бара код будет выполняться один раз.
Почитайте как использовать MagicNumber в ордерах и тогда использование total < 1 будет давать возможность открывать советником ордер и по каждой валютной паре и по одной валютной паре, но открытой в разных окнах. Образец можно здесь посмотреть.
после выполнения PlaySound("alert.wav"); следующие if выполняться уже не будут?
Ваш код неверен. Открывающие скобки должны быть до операторов, а не после.
Блок с Саунд`ом и Принт`ом выполнится только, если 1 меньше 2 и 2 меньше 3. Саунд выполнится если 3 меньше 4.
Но принт выполнится ещё и при условии, если 4 меньше 5 и 5 меньше 6
Ваш код неверен. Открывающие скобки должны быть до операторов, а не после.
Блок с Саунд`ом и Принт`ом выполнится только, если 1 меньше 2 и 2 меньше 3. Саунд выполнится если 3 меньше 4.
Но принт выполнится ещё и при условии, если 4 меньше 5 и 5 меньше 6
мне кажется что если 4>5 , а 5<6 то при данной записи Принт все равно будет выполняться, ибо машина будет отрабатывать все 3 if подряд независимо от их ТРУ -ФОЛС результата - СКОБОК-то НЕТ!
мне кажется что если 4>5 , а 5<6 то при данной записи Принт все равно будет выполняться, ибо машина будет отрабатывать все 3 if подряд независимо от их ТРУ -ФОЛС результата - СКОБОК-то НЕТ!
а можно ли вывести локальную переменную в глобальное использование?
У меня есть один индикатор в котором все 8 индикаторных массива заняты. Как правильно создать второй, чтобы в нём, в 1 индикаторном массиве, рисовалась кривая из первого индикатора?
Оба индикатора #property indicator_chart_window.
Самое наглядное объяснение, это аналог в виде кода двух связанных индикаторов.
Заранее, СПАСИБО!!!
Как правильно через iCustom(), прикрепить один индикатор к другому?
У меня есть один индикатор в котором все 8 индикаторных массива заняты. Как правильно создать второй, чтобы в нём, в 1 индикаторном массиве, рисовалась кривая из первого индикатора?
Оба индикатора #property indicator_chart_window.
Самое наглядное объяснение, это аналог в виде кода двух связанных индикаторов.
Заранее, СПАСИБО!!!