У меня есть программа торговли запасами роботов, над которой я работал несколько месяцев. На днях, хотя я добавил второе условие к коду, который определяет, когда торговля будет завершена. Состояние следующим образом:Почему не произошло это условие?
decimal entryPrice;
decimal CurrentPrice;
decimal openShares;
if ((1st condition) && (((entryPrice - CurrentPrice) * openShares) >= 8))
Сегодня был первый день ситуация пришла, и мне пришлось иметь выходной день работы, поэтому я наблюдал торгов. Однако условие не срабатывало. Торговля продолжалась, пока я не вышла вручную.
Что должно было произойти, так это то, что он вычитал текущую цену из цены во время ввода, а затем умножил ее на количество акций, чтобы получить текущую прибыль. И если оно больше или равно 8, оно срабатывает. Этот конкретный код предназначен только для выхода из коротких сделок, поэтому вычитание текущей цены из цены входа должно возвращать положительное значение.
Я подтвердил в своем коде, что entryPrice регистрировался во время покупки. Так что все, что я могу думать, это то, что я возился с форматом условий. Либо это не похоже на расположение кронштейна, либо результирующие типы значений числа не совместимы друг с другом. Что-нибудь выпрыгивает на вас? Благодарю.
Если я понимаю, что вы спрашиваете, значит, сегодня оба условия 1 и условие 2 были истинными? правильно? – jamiedanq
Diagnostics.Debug.WriteLine() - ваш друг. Перед оценкой распечатайте все значения и т. Д. –
Вам следует попытаться создать [mcve], включить примерные значения для 3 десятичных знаков (вы должны попытаться сравнить их с десятичным символом слишком 8 м) – Sayse