Так вот значение всё время будет = значение1. Код упорно не хочет понимать != (не равно)
2. Вопрос /Открытие Поиск Закрытие/
Чего я хочу от программы но не выходит.
1.Проверка условия (true ; false)
2. Если такой ордер есть то не открываем, если нету открываем. По условию OrderComment()
3. Проверка Если наступило событие X или Y закрываем. X-(например другой сигнал iMA1>iMA2, Y-другой сигнал iMA2>iMA3)
Вот как это делаю я но ничего не выходит.
if (MA1>MA2 && MA1!=MA2 && MA1<MA3 && MA2>MA3 && MA2!=MA3)
{
for (int i=1;i<=OrdersTotal(); i++)
{
if(OrderSelect(i-1,SELECT_BY_POS,MODE_TRADES)==true)
{
if (OrderComment()=="значение1")return(0);
else
{
OrderSend(Symbol(),OP_SELL, LOT,NormalizeDouble(Bid,Digits),2,0,0,com,Magic,0,Red);
}
}
}
}
А как закрыть я вообще не понимаю куда вставлять.
3. Вопрос про смещение (int shift)
Во второй группе iMA, я делаю смещение относительного текущего бара назад на 3) Для чего, чтобы при появлении сигнала описанных выше не открывались повторные на каждом баре ордера. Но смещение почему-то не происходит.
3. Посмотрите что это именно за смещение и кого оно смещает
Большое спасибо за такой быстрый ответ.
По 1. Да осознал понял будем там копать.(Спасибо)
По 2. if (условия по закрытию) OrderClose(...) (это понятно без это-го не куда) Ноя запутался в if, что зачем куда и почему....
Поправить если не правильно....
if (MA1>MA2 && MA1!=MA2 && MA1<MA3 && MA2>MA3 && MA2!=MA3) // если true то заходим в тело цикла...
{
for (int i=1;i<=OrdersTotal(); i++) //шаг2 проверяем все ордера на наличие ордера со значением1
{
if(OrderSelect(i-1,SELECT_BY_POS,MODE_TRADES)==true)
{
if (OrderComment()=="значение1")return(0); // если орден найден то ничего не делаемelse
{
OrderSend(Symbol(),OP_SELL, LOT,NormalizeDouble(Bid,Digits),2,0,0,com,Magic,0,Red); // а вот тут проблемы кто за чем идёт и куда вставить условие закрытие отдельно за телом всего условия (ma1;ma2 и тд), или там где OrderSelect()
}
}
}
}
3. Индекс получаемого значения из индикаторного буфера (сдвиг относительно текущего бара на указанное количество периодов назад). из справки mql4
По 2. if (условия по закрытию) OrderClose(...) (это понятно без это-го не куда) Ноя запутался в if, что зачем куда и почему....
Поправить если не правильно....
if (MA1>MA2 && MA1!=MA2 && MA1<MA3 && MA2>MA3 && MA2!=MA3) // если true то заходим в тело цикла...
{
for (int i=1;i<=OrdersTotal(); i++) //шаг2 проверяем все ордера на наличие ордера со значением1
{
if(OrderSelect(i-1,SELECT_BY_POS,MODE_TRADES)==true)
{
if (OrderComment()=="значение1")return(0); // если орден найден то ничего не делаемelse
{
OrderSend(Symbol(),OP_SELL, LOT,NormalizeDouble(Bid,Digits),2,0,0,com,Magic,0,Red); // а вот тут пока написано следующее: для каждого из ордеров у которого мы сюда зашли мы поставим еще один ордер
}
}
}
}
Извините, зачем проверять неравенство, если в условии уже дано! Так тормозится чтение условий и их выполнение!
if (MA1>MA2 && MA1!=MA2 && MA1<MA3 && MA2>MA3 && MA2!=MA3)//MA1!=MA2 && и && MA2!=MA3 не нужны, т.к. в предыдущих сравнениях//равенство ухе исключено! Так что нужно так:if (MA1>MA2 && MA1<MA3 && MA2>MA3)
Извините, зачем проверять неравенство, если в условии уже дано! Так тормозится чтение условий и их выполнение!
Да извините тут немножечко не дописал, сначала не придал этому значение. Эти расчёты производятся для 4 МА; И бываю случаи когда МА1>MA2 и в это время МА3=МА4 (поэтому проверка нужна ибо так построена стратегия)
if (MA1>MA2 && MA1!=MA2 && MA1<MA3 && MA2<MA3 && MA2!=MA3 && MA3<MA4 && MA3!=MA4) // если true то заходим в тело цикла...
{
for (int i=1;i<=OrdersTotal(); i++) //шаг2 проверяем все ордера на наличие ордера со значением1
{
if(OrderSelect(i-1,SELECT_BY_POS,MODE_TRADES)==true)
{
if (OrderComment()=="значение1")return(0); // если орден найден то ничего не делаемelse
{
if (OrderComment()!="значение1") // если такого ордера нету
{
OrderSend(Symbol(),OP_SELL, LOT,NormalizeDouble(Bid,Digits),2,0,0,com,Magic,0,Red); // тогда открываем
}
}
if (MA1<MA2 && MA1!=MA2 && MA1>MA3 && MA1!=MA3 && MA3>MA4 && MA3!=MA4) // если true новый сигнал
{
OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,Digits),3,CLR_NONE); // тогда закрываем
}
}
}
}
Есть стандартный Pivot, так вот хотелось бы иметь индикатор который рассчитывает уровни по стандартным формулам но по данным H, L, C которые я ввожу сам.
Тем кто понимает в mql4 больше меня помогите пожалуйста. Есть 3 вопроса.
1.Сначала по константе double. Есть всем известные iMa, машки, Moving Average/ Вопрос в следующем: Не корректное отображение значений
Пример:
Так вот значение всё время будет = значение1. Код упорно не хочет понимать != (не равно)
2. Вопрос /Открытие Поиск Закрытие/
Чего я хочу от программы но не выходит.
1.Проверка условия (true ; false)
2. Если такой ордер есть то не открываем, если нету открываем. По условию OrderComment()
3. Проверка Если наступило событие X или Y закрываем. X-(например другой сигнал iMA1>iMA2, Y-другой сигнал iMA2>iMA3)
Вот как это делаю я но ничего не выходит.
А как закрыть я вообще не понимаю куда вставлять.
3. Вопрос про смещение (int shift)
Во второй группе iMA, я делаю смещение относительного текущего бара назад на 3) Для чего, чтобы при появлении сигнала описанных выше не открывались повторные на каждом баре ордера. Но смещение почему-то не происходит.
Помогите знаниями кто чем сможет. За ранее благодарю. Или ссылку где в интерне есть похожая реализация кода.
Тем кто понимает в mql4 больше меня помогите пожалуйста. Есть 3 вопроса.
1.Сначала по константе double.
2. А как закрыть я вообще не понимаю куда вставлять.
3. Вопрос про смещение (int shift)
1. https://www.mql5.com/ru/articles/1561
2. if (условия по закрытию) OrderClose(...)
3. Посмотрите что это именно за смещение и кого оно смещает1. https://www.mql5.com/ru/articles/1561
2. if (условия по закрытию) OrderClose(...)
3. Посмотрите что это именно за смещение и кого оно смещаетБольшое спасибо за такой быстрый ответ.
По 1. Да осознал понял будем там копать.(Спасибо)
По 2. if (условия по закрытию) OrderClose(...) (это понятно без это-го не куда) Ноя запутался в if, что зачем куда и почему....
Поправить если не правильно....
3. Индекс получаемого значения из индикаторного буфера (сдвиг относительно текущего бара на указанное количество периодов назад). из справки mql4
Большое спасибо за такой быстрый ответ.
По 2. if (условия по закрытию) OrderClose(...) (это понятно без это-го не куда) Ноя запутался в if, что зачем куда и почему....
Поправить если не правильно....
Извините, зачем проверять неравенство, если в условии уже дано! Так тормозится чтение условий и их выполнение!
Извините, зачем проверять неравенство, если в условии уже дано! Так тормозится чтение условий и их выполнение!
Что-то тут странно
if (MA1>MA2 && MA1<MA3 && MA2>MA3)MA1>MA2 и MA2>MA3 и тут же MA1<MA3
Тем более что достаточно
if (MA1>MA2 && MA2>MA3)Извините, зачем проверять неравенство, если в условии уже дано! Так тормозится чтение условий и их выполнение!
Да извините тут немножечко не дописал, сначала не придал этому значение. Эти расчёты производятся для 4 МА; И бываю случаи когда МА1>MA2 и в это время МА3=МА4 (поэтому проверка нужна ибо так построена стратегия)
Как то так?????
Что-то тут странно
MA1>MA2 и MA2>MA3 и тут же MA1<MA3
Да извините запутался, первый раз писал на форум. Сначала копипастел, затем решил ручками и запутался... но в примере выше все верно..
MA1>MA2 и МА1<MA3 и МА3<МА4
Добрый день.
Помогите пожалуйста переделать индикатор.
Есть стандартный Pivot, так вот хотелось бы иметь индикатор который рассчитывает уровни по стандартным формулам но по данным H, L, C которые я ввожу сам.
Спасибо всем, кто откликнется.