Корректна ли логическая конструкция?

 
Возник вопрос в плане оптимизации кода.

Корректно ли писать так:

if(BuySignal())
{
//
}
else if(SellSignal())
{
//
}
Или все же всегда оставлять конструкцию без else ?

Задумался.. ведь, как правило, разнонаправленные торговые сигналы являются взаимоисключающими, потому зачем просчитывать, например, SellSignal(), когда сработал BuySignal().
 
Alexander Fedosov:
как правило

это от вашего советника зависит, будет такое правило или нет. Сигналы на покупку и продажу ведь могут формироваться по чуть разным правилам.

Мне так больше нравится: 

if(BuySignal() && !SellSignal())
{
//есть только сигнал на покупку
}
else if(!BuySignal() && SellSignal())
{
//есть только сигнал на продажу
}
else
{
//либо оба сигнала сработали одновременно, либо вообще ни один. яб закрыл все сделки в таком случае
}
 
Dr.Trader:

это от вашего советника зависит, будет такое правило или нет. Сигналы на покупку и продажу ведь могут формироваться по чуть разным правилам.

Мне так больше нравится: 

if(BuySignal() && !SellSignal())
{
//есть только сигнал на покупку
}
else if(!BuySignal() && SellSignal())
{
//есть только сигнал на продажу
}
else
{
//либо оба сигнала сработали одновременно, либо вообще ни один. яб закрыл все сделки в таком случае
}

а как будет советник реагировать в такой конструкции?