/// <summary> /// является ли текущая формация нашим паттерном /// </summary> /// <param name="candles">свечи</param> /// <param name="indicators">индикаторы</param> /// <param name="numberPattern">индекс по которому мы смотрим паттерн</param> public bool ThisIsIt(List <Candle> candles, List <IIndicatorCandle> indicators, int numberPattern) { if (numberPattern - Length <= 0) { return(false); } if (Sequence == null || Sequence.Length == 0) { return(false); } PatternCandle researched = new PatternCandle(); researched.Length = Length; researched.Expand = Expand; //shadow //body //shadow+body researched.SetFromIndex(candles, null, numberPattern); List <Candle> incomPattern = researched.GetInCandle(); if (TypeWatch == TypeWatchCandlePattern.ShadowAndBody) { for (int i = 0; i < Sequence.Length; i++) // здесь копать { /*if (Sequence[i][0] < researched.Sequence[i][0] || Sequence[i][1] > researched.Sequence[i][0] || // опен * Sequence[i][2] < researched.Sequence[i][2] || Sequence[i][3] > researched.Sequence[i][2] || // хай * Sequence[i][4] < researched.Sequence[i][4] || Sequence[i][5] > researched.Sequence[i][4] || // лоу * Sequence[i][6] < researched.Sequence[i][6] || Sequence[i][7] > researched.Sequence[i][6] // клос * ) * { * return false; * }*/ if (Sequence[i][0] < incomPattern[i].Open || Sequence[i][1] > incomPattern[i].Open || // опен Sequence[i][2] < incomPattern[i].High || Sequence[i][3] > incomPattern[i].High || // хай Sequence[i][4] < incomPattern[i].Low || Sequence[i][5] > incomPattern[i].Low || // лоу Sequence[i][6] < incomPattern[i].Close || Sequence[i][7] > incomPattern[i].Close // клос ) { return(false); } } } else if (TypeWatch == TypeWatchCandlePattern.Body) { for (int i = 0; i < Sequence.Length; i++) // здесь копать { /*if (Sequence[i][0] < researched.Sequence[i][0] || Sequence[i][1] > researched.Sequence[i][0] || * // опен * Sequence[i][6] < researched.Sequence[i][6] || Sequence[i][7] > researched.Sequence[i][6] // клос * ) * { * return false; * }*/ if (Sequence[i][0] < incomPattern[i].Open || Sequence[i][1] > incomPattern[i].Open || // опен Sequence[i][6] < incomPattern[i].Close || Sequence[i][7] > incomPattern[i].Close // клос ) { return(false); } } } else if (TypeWatch == TypeWatchCandlePattern.Shadow) { for (int i = 0; i < Sequence.Length; i++) // здесь копать { /*if (Sequence[i][2] < researched.Sequence[i][2] || Sequence[i][3] > researched.Sequence[i][2] || * // хай * Sequence[i][4] < researched.Sequence[i][4] || Sequence[i][5] > researched.Sequence[i][4] // лоу * ) * { * return false; * }*/ if (Sequence[i][2] < incomPattern[i].High || Sequence[i][3] > incomPattern[i].High || // хай Sequence[i][4] < incomPattern[i].Low || Sequence[i][5] > incomPattern[i].Low ) { return(false); } } } return(true); }