Блог им. ya-marsel

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

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

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

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

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

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

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

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

на правильность не претендую ибо сам тоже учусь
avatar
ShamanKZN, различия переменных знаю)

а насчет класса, возможно не надо будет, скорее всего в библиотеке велса есть готовое решение.
avatar
ShamanKZN, А что быстрее работает? Мат. конструкции или if? Если if не выполняется, то внутри него ничего не считается, а мат. конструкция всегда будет считаться… Это я не об этом примере, а в общем. Не оппонирую, интересуюсь, т.к. такой же ламер, как Марсель...))))
avatar
CamarillaDaily, всегда на любом компе быстрей всего работают формулы чем условия.

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

теги блога Marsel Tazetdinov

....все тэги



UPDONW
Новый дизайн