Marsel Tazetdinov
Marsel Tazetdinov личный блог
26 января 2012, 15:24

C# HELP!

Друзья помогите разобраться.

Хочу написать простейший индикатор на C#.

int open;
int close;
int high;
int low;
int dayUP; //  день где open < close
int dayDN; // день где close > open

сразу же вопрос, может быть dayUP и dayDN вводить через bool или как условие через if?
 
и вот собственно вопрос, я хочу чтобы индикатор считал длину верхних и нижних хвостов свечек, как это сделать лучше?


т.е. если dayUP, то считаем high — close
если dayDN, то считаем low — close

как это правильно написать?
22 Комментария
  • CamarillaDaily
    26 января 2012, 15:34
    Привет, а какая разница будет у тебя
    bool dayUP = true(false)
    или
    int dayUP = 1(0)
    Будет или
    if (open < close)
    {
    dayUP = 1;
    dayDn = 0;
    }
    или
    if (open < close)
    {
    dayUP = true;
    dayDn = false;
    }
    и т.д.
      • CamarillaDaily
        26 января 2012, 15:38
        Марсель Тазетдинов, Не понял про тики… Каков вопрос — таков ответ...))) Что тебе конкретно-то надо?
  • ShamanK
    26 января 2012, 15:40
    нафига вообще такие конструкции?
    всегда вычитывай клоз от опен или наоборот, но при этом получай значение по МОДУЛЮ, тоесть положительное.
    и никаких условий не надо создавать
      • ShamanK
        26 января 2012, 15:44
        Марсель Тазетдинов, если тебе надо просто узнать положительное число расстояния от опен до клоз то так: double rangeBarOC = Math.Abs(open — close);

        если же не только это, но еще и формулы потом разные применяются то без IF не обойтись
    • ShamanK
      26 января 2012, 15:42
      double rangeBarOC = Math.Abs(open — close);
      • ShamanK
        26 января 2012, 15:47
        и вот собственно вопрос, я хочу чтобы индикатор считал длину верхних и нижних хвостов свечек, как это сделать лучше?

        сорри не так прочел вопрос…
        вот ответ на твой вопрос:

        double DlinnaVerhTeni = high-Max(open, close);
        double DlinnaNizTeni = Min(open, close)-low;
          • ShamanK
            26 января 2012, 15:54
            Марсель Тазетдинов, не зачто, только одно пожелание — цены всегда делай double а не int.
            так не правильно:
            int open;
            int close;
            int high;
            int low;
            правильно так:
            double open, close, high, low;

            а еще правильней создать класс как пример Bar
            и в нем поля:
            double open, close, high, low;

            и можно создавать экземпляры класса и записывать в них значения:
            Bar.open =…
            и тд
            • ShamanK
              26 января 2012, 16:02
              а если работаешь с несколькими барами а не одним, то лучше всего создав класс БАР и создав в нем поля опен хай лой клоз волюм, также создать еще поля как то рендж бара, высота верхней тени, высота нижней и в конструкторе класса прописать их вычисление.

              в коде программы создаешь массив экземпляров класса, у каждого экземпляра класса есть свои хай лой и тд…
              при создании экхемпляра класса конструктор класса самостоятельно будет все вычислять…
              и тебе останется только в цикле перебрать все экземляры класса с запросами на необходимые поля…
              как то так ))

              на правильность не претендую ибо сам тоже учусь
        • CamarillaDaily
          26 января 2012, 15:55
          ShamanKZN, А что быстрее работает? Мат. конструкции или if? Если if не выполняется, то внутри него ничего не считается, а мат. конструкция всегда будет считаться… Это я не об этом примере, а в общем. Не оппонирую, интересуюсь, т.к. такой же ламер, как Марсель...))))
          • ShamanK
            26 января 2012, 15:59
            CamarillaDaily, всегда на любом компе быстрей всего работают формулы чем условия.

            чтобы что то просчитать компу надо в сотни раз меньше времени и трудозатрат, чем что либо с чем либо сравнить ))

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн