private int CheckEnterCondition(string name, float candleClose) { var currentPair = new PriceRsi(candleClose, null); var currentPairs = rsiClosePairs[name]; currentPairs.Add(currentPair); if (currentPairs.Length < currentPairs.MaxQueueLength) { return(0); } currentPair.Rsi = CalculateRsi(currentPairs); for (var i = M; i < N; i++) { var previousPair = currentPairs.ElementAt(currentPairs.MaxQueueLength - i - 1); if (!previousPair.Rsi.HasValue) { continue; } var diffClose = Math.Sign(currentPair.Price - previousPair.Price); var diffRsi = Math.Sign(currentPair.Rsi.Value - previousPair.Rsi.Value); if (diffClose == diffRsi || diffRsi == 0) { continue; } return(diffRsi); } return(0); }
private int CheckEnterCondition(string name, float candleClose) { var currentPair = new PriceRsi(candleClose, null); var currentPairs = rsiClosePairs[name]; currentPairs.Add(currentPair); if (currentPairs.Length < currentPairs.MaxQueueLength) return 0; currentPair.Rsi = CalculateRsi(currentPairs); for (var i = M; i < N; i++) { var previousPair = currentPairs.ElementAt(currentPairs.MaxQueueLength - i - 1); if (!previousPair.Rsi.HasValue) continue; var diffClose = Math.Sign(currentPair.Price - previousPair.Price); var diffRsi = Math.Sign(currentPair.Rsi.Value - previousPair.Rsi.Value); if (diffClose == diffRsi || diffRsi == 0) continue; return diffRsi; } return 0; }