Как я могу найти разницу между 2 значениями в C #? - PullRequest
2 голосов
/ 27 мая 2009

Я работаю с осциллятором, который колеблется между 10.000000 и -10.000000

Значение меняется, скажем, каждые 5 минут. Я хочу найти разницу между текущим значением и значением 5 минут назад. Вот моя логика.

1 bar ago (1BA)= -.2
Current bar (CB) = .3

Разве я не получил бы значение 1, если бы сделал что-то вроде:

Abs(CB) - Abs(1BA) = .3 - .2 = 1

Принимая во внимание:

Abs(CB- 1BA) = .3 - -.2 = 5

Я хочу просто рассчитать разницу между перемещением осциллятора от одного таймфрейма к другому. Применяю ли я Абс с правильной логикой?

Вот мой фактический код, пожалуйста, предположите, что мой вызываемый метод правильный:

if (Oscillator(PoFast, PoSlow, PoSmooth)[0] > 
           Oscillator(PoFast, PoSlow, PoSmooth)[3]
    && Math.Abs(Oscillator(PoFast, PoSlow, PoSmooth)[0] - 
           Oscillator(PoFast, PoSlow, PoSmooth)[3]) > .25)

Ответы [ 2 ]

6 голосов
/ 27 мая 2009

Абс (CB-1BA) из двух будет правильным, поскольку между двумя показаниями произошла смена .5

РЕДАКТИРОВАТЬ : Чтобы сделать его более читабельным и при условии, что вы получаете двойные значения, вы должны сделать что-то вроде этого, но с проверкой ошибок и, возможно, сделать .25 переменной.

double[] values = Oscillator(PoFast, PoSlow, PoSmooth);
double currentBar = values[0];
double oneBarAgo = values[3];

if (currentBar > oneBarAgo && Math.Abs(currentBar - oneBarAgo) > .25)
{
    // do something
}
2 голосов
/ 27 мая 2009

Ваша логика, Abs (CB-1BA) верна.

Кроме того, если вы не разработчик, действительно ли вы думаете, что должны писать код C # для торговли фьючерсными контрактами? Они достаточно рискованны, чтобы торговать в лучшие времена, не говоря уже о том, когда вы пишете код для этого, а вы не разработчик !!!!

...