[АРХИВ]Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 5. - страница 320

 
sdm:
Добавьте в описание пунктуации, и определение своих понятий (например "свое число") и сюда. А в этой ветке помогают только тем кто своими руками (и то по настроению)
 
как узнать есть ли открытый или установленный ордер на данной цене?
 
sdm:
как узнать есть ли открытый или установленный ордер на данной цене?

Перебираем ордера и сравниваем с данной ценой. Если находим, проверяем время открытия

if(OrderOpenTime()!=0) Если не равно нулю, то открытый, равно - отложенный. 

 
int start()
  {   

   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)

 
нашёл сам )
 
hoz:

у нас счётчик по которому идёт расчёт значений по порядку появления баров из бара с индексом 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 - их направлением.
}

 Как-то так.

 
sdm:
double kr =0.00060;//внимательнее надо быть
sdm:
нашёл сам )

Как говорится, народ у нас такой, замучают советами. Не успел)

 
Добрый день. Подскажите как решить следующую ситуацию: Нарисовал в окне объект OBJ_FIBOARC. Задал нужные уровни. Теперь нужно как то понять что цена пересекла тот или иной уровень, как это сделать не могу понять. Раньше похожую задачу решал с уровнями фибоначчи ,но там всё проще так как оперируем горизонтальными уровнями и пересечение можно легко вычислить. Здесь же у нас эллипс. Использовать уравнение окружности(эллипса) тут неполучается так как система координат по Х время а по Y цены, т.е. не сраниваемые значения. что делать ?
 
gyfto:

Извиняюсь за задержку с ответом, с машкой разбирался.

Ух, шалунишка! Машку всё терзаешь :)

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:

 Итак. Вопрос в том, как по такому единому счётчику потом определить, к какому движению он относился, правильно я понял? 


Нужно чтоб исходя из некоторого признака, который передаётся через параметр функции, происходил подсчёт последовательных баров одного признака (например, либо медвежьих, либо бычьих).

 

Кстати,https://www.mql5.com/ru/forum/144705 вот, я ветку открыл отдельную. Там всё расписано, что нужно. Очень интересно найти в чём косяк. 

 
вобщем вопрос такой ... не допойму, когда закачали котировки, терминал запустил скрипт на пересчет таймфреймов..... на месяце какой день он ставит 30 или 31 как узнать ?
Причина обращения: