using System;
using System.Configuration;
using System.Data;
using System.Data.Sql;
using System.Collections;
using System.Collections.Generic;
using System.Text.RegularExpressions;
using System.Data.OleDb;
using System.Data.SqlClient;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Drawing.Imaging;
using System.Globalization;
using System.Threading;

namespace NNmarket
{
    class filtry
    {
        public static double[] WyrzucSprzedaj(double[] TablicaSygnalow)
        {
            double[] Wynik = new double[TablicaSygnalow.Length];
            for (int i = 0; i < TablicaSygnalow.Length; i++)
            {
                Wynik[i] = TablicaSygnalow[i];
                if (TablicaSygnalow[i] == -1) { Wynik[i] = 0; }


            }

            return Wynik;

        }
        public static double[] WyrzucKup(double[] TablicaSygnalow)
        {
            double[] Wynik = new double[TablicaSygnalow.Length];
            for (int i = 0; i < TablicaSygnalow.Length; i++)
            {
                Wynik[i] = TablicaSygnalow[i];

                //  if (TablicaSygnalow[i] == 1) { Wynik[i] = 0; }
                if (TablicaSygnalow[i] == 1) { Wynik[i] = 0; }

            }

            return Wynik;

        }
        public static double[] ZamienSprzedajNaDodatnie(double[] TablicaSygnalow)
        {
            double[] Wynik = new double[TablicaSygnalow.Length];
            for (int i = 0; i < TablicaSygnalow.Length; i++)
            {
                Wynik[i] = TablicaSygnalow[i];
                if (TablicaSygnalow[i] == -1) { Wynik[i] = 1; }


            }

            return Wynik;

        }
        public static double[] SygnalyKupSprzedajKlik(List<double> Kupno, List<double> Sprzedaz, double[] Data)
        {
            double[] Kupnot = Kupno.ToArray();
            double[] Sprzedazt = Sprzedaz.ToArray();
            double[] Sygnaly = new double[Data.Length];

            for (int i = 0; i < Data.Length; i++)
            {
                for (int j = 0; j < Kupnot.Length; j++)
                {
                    if (Kupnot[j] == Data[i])
                    {
                        Sygnaly[i] = 1.00;
                    }
                }
                for (int j = 0; j < Sprzedazt.Length; j++)
                {
                    if (Sprzedazt[j] == Data[i])
                    {
                        Sygnaly[i] = -1.00;
                    }
                }
            }
            return Sygnaly;
        }
        public static double[] SygnalyKupSprzedajAuto(double[] Zamkniecie)
        {
            double[] Sygnaly = new double[Zamkniecie.Length];
            for (int i = 0; i < Zamkniecie.Length -6; i++)
            {

                if (Zamkniecie[i] < Zamkniecie[i + 1] && Zamkniecie[i] < Zamkniecie[i + 2] && Zamkniecie[i] < Zamkniecie[i + 3] && Zamkniecie[i] < Zamkniecie[i + 4] && Zamkniecie[i] < Zamkniecie[i + 5] && Zamkniecie[i] < Zamkniecie[i + 6])
                {
                    Sygnaly[i] = 1;
                }

                if (Zamkniecie[i] > Zamkniecie[i + 1] && Zamkniecie[i] > Zamkniecie[i + 2] && Zamkniecie[i] > Zamkniecie[i + 3] && Zamkniecie[i] > Zamkniecie[i + 4] && Zamkniecie[i] > Zamkniecie[i + 5] && Zamkniecie[i] > Zamkniecie[i + 6] )
                {
                    Sygnaly[i] = -1;
                }

            }
            return Sygnaly;
        }
        public static double[] WaznoscSygnalu(double[] Tablica, int jakawaznosc)
        {
            double[] wynik = new double[Tablica.Length];
            for (int i = jakawaznosc; i < Tablica.Length; i++)
            {
                for (int j = 1; j < jakawaznosc; j++)
                {
                    wynik[i] += Tablica[i - j];
                }

            }

            return wynik;

        }
        public static double[] filtr(double[] dofiltracji)
        {
            double[] pofiltracji = new double[dofiltracji.Length];
            double szukana = 1;
            //bool sprzedaj = false;
            //bool kup = false;
            for (int i = 0; i < dofiltracji.Length; i++)
            {
                if (dofiltracji[i] == szukana)
                {
                    if (szukana == 1) { pofiltracji[i] = 1; }
                    if (szukana == -1) { pofiltracji[i] = -1; }
                    if (pofiltracji[i] == 1) { szukana = -1; }
                    if (pofiltracji[i] == -1) { szukana = 1; }


                }
            }


            return pofiltracji;
        }
    
    
    }
}
