Добавьте в описание пунктуации, и определение своих понятий (например "свое число") и сюда. А в этой ветке помогают только тем кто своими руками (и то по настроению)
у нас счётчик по которому идёт расчёт значений по порядку появления баров из бара с индексом i_AnyBarsToHistory до бара с индексом 1. Получается, что если на барах от индекса 30 до индекса 15 выполнится условие:
directionMA == CROSS_UP
а дальше например при cnt=2 условие выполнится условие:
directionMA == CROSS_DN
То cnt будет инкрементироваться к прошлому значение. Если было 2 то при новом условие добавится 1, тогда cnt=3 и выходим из функции со значением 3. Понимаешь о чём я? Присмотрись, тут логика, в принципе, очевидна.
Извиняюсь за задержку с ответом, с машкой разбирался. Итак. Вопрос в том, как по такому единому счётчику потом определить, к какому движению он относился, правильно я понял? Можно вшить в счётчик логическую переменную, только инкрементировать потом не на один, а на два.
int LastCandlesType(int& cnt){//передаём параметры по ссылке, т.е. они у нас отсюда меняются на глобальном уровнеfor (int i=IndicatorCounted(); i>=1; i--){//считаем все неподсчитанные свечи; появится новая свеча - функция прогонится один разif ((2*cross-1)*(Close[i] - Open[i]) >= i_sizeOfSequentialCorrectionBar * pt){cnt=cnt+2;//инкрементируем на 2, т.к. у нас в cnt вшит cross
}else{
cross = !cross;//иначе, если не соответствует, оборачиваем флаг направления
cnt = cross;//и обнуляем счётчик её значением
}//потом cnt/2 будет количеством подсчитанных свечей,
}//а cnt%2 - их направлением.
}
Добрый день. Подскажите как решить следующую ситуацию: Нарисовал в окне объект OBJ_FIBOARC. Задал нужные уровни. Теперь нужно как то понять что цена пересекла тот или иной уровень, как это сделать не могу понять. Раньше похожую задачу решал с уровнями фибоначчи ,но там всё проще так как оперируем горизонтальными уровнями и пересечение можно легко вычислить. Здесь же у нас эллипс. Использовать уравнение окружности(эллипса) тут неполучается так как система координат по Х время а по Y цены, т.е. не сраниваемые значения. что делать ?
Извиняюсь за задержку с ответом, с машкой разбирался.
Ух, шалунишка! Машку всё терзаешь :)
gyfto:
Извиняюсь за задержку с ответом, с машкой разбирался. Итак. Вопрос в том, как по такому единому счётчику потом определить, к какому движению он относился, правильно я понял? Можно вшить в счётчик логическую переменную, только инкрементировать потом не на один, а на два.
int LastCandlesType(int& cnt){//передаём параметры по ссылке, т.е. они у нас отсюда меняются на глобальном уровнеfor (int i=IndicatorCounted(); i>=1; i--){//считаем все неподсчитанные свечи; появится новая свеча - функция прогонится один разif ((2*cross-1)*(Close[i] - Open[i]) >= i_sizeOfSequentialCorrectionBar * pt){cnt=cnt+2;//инкрементируем на 2, т.к. у нас в cnt вшит cross
}else{
cross = !cross;//иначе, если не соответствует, оборачиваем флаг направления
cnt = cross;//и обнуляем счётчик её значением
}//потом cnt/2 будет количеством подсчитанных свечей,
}//а cnt%2 - их направлением.
}
Как-то так.
Ну так у Вас для индикатора написано, а не для эксперта. Я ж эксперт пишу.
И, почему инкрементировать на 2?
gyfto:
Итак. Вопрос в том, как по такому единому счётчику потом определить, к какому движению он относился, правильно я понял?
Нужно чтоб исходя из некоторого признака, который передаётся через параметр функции, происходил подсчёт последовательных баров одного признака (например, либо медвежьих, либо бычьих).
вобщем вопрос такой ... не допойму, когда закачали котировки, терминал запустил скрипт на пересчет таймфреймов..... на месяце какой день он ставит 30 или 31 как узнать ?
как узнать есть ли открытый или установленный ордер на данной цене?
Перебираем ордера и сравниваем с данной ценой. Если находим, проверяем время открытия
if(OrderOpenTime()!=0) Если не равно нулю, то открытый, равно - отложенный.
{
double kr =0.00060 // Заданное кратное, шаг
double msell =Ask - MathMod( Ask, kr); // цена sell
{
Alert(" Просто так ", msell," напечатал");
return; // Выход из start()
}
//----
//----
return(0);
}
подскажите что здесь не правильно?
при компиляции выдаёт 'msell' - variable not defined C:\Program Files\MetaTrader 4 \experts\temp.mq4 (16, 11)
у нас счётчик по которому идёт расчёт значений по порядку появления баров из бара с индексом i_AnyBarsToHistory до бара с индексом 1. Получается, что если на барах от индекса 30 до индекса 15 выполнится условие:
directionMA == CROSS_UPа дальше например при cnt=2 условие выполнится условие:
То cnt будет инкрементироваться к прошлому значение. Если было 2 то при новом условие добавится 1, тогда cnt=3 и выходим из функции со значением 3. Понимаешь о чём я? Присмотрись, тут логика, в принципе, очевидна.
Извиняюсь за задержку с ответом, с машкой разбирался. Итак. Вопрос в том, как по такому единому счётчику потом определить, к какому движению он относился, правильно я понял? Можно вшить в счётчик логическую переменную, только инкрементировать потом не на один, а на два.
Как-то так.
нашёл сам )
Как говорится, народ у нас такой, замучают советами. Не успел)
Извиняюсь за задержку с ответом, с машкой разбирался.
Извиняюсь за задержку с ответом, с машкой разбирался. Итак. Вопрос в том, как по такому единому счётчику потом определить, к какому движению он относился, правильно я понял? Можно вшить в счётчик логическую переменную, только инкрементировать потом не на один, а на два.
Как-то так.
Ну так у Вас для индикатора написано, а не для эксперта. Я ж эксперт пишу.
И, почему инкрементировать на 2?
Итак. Вопрос в том, как по такому единому счётчику потом определить, к какому движению он относился, правильно я понял?
Нужно чтоб исходя из некоторого признака, который передаётся через параметр функции, происходил подсчёт последовательных баров одного признака (например, либо медвежьих, либо бычьих).
Кстати,https://www.mql5.com/ru/forum/144705 вот, я ветку открыл отдельную. Там всё расписано, что нужно. Очень интересно найти в чём косяк.