public string Renko_5_min_850(decimal[] Chislo_out, int i, int Regim_Rabota, int sistem_vector, int Stavka, Parametrs Parametr) // метод по заданию параметров классической системы
        {
            Class_Consructor_Transactiy QUIK = new Class_Consructor_Transactiy();

            Plan_Volume_Position = Stavka;

            // int Regim_Rabota - режим работы торгового робота 1 - заявки в API выставляются


            // алгоритм циклической обработки котировок
            if (Vector_Position == Cash) // если торговая позиция "в кеше" торгда проверяем исполнение стопов на вход в позицию
            {
                // если мы в кеше, то это значит что стопов на выход стоять не должно
                // должны стоять стопы только на вход

                if (Chislo_out[4] >= Stop_Bay_2) // идет проверка на пересечение стоп цены на вход в лонги
                // если максимум свечи пересек цену стопа
                {
                    Vector_Position = Bay;                                                      // направлеи позиции ставим на лонг
                    Volume_Position = Plan_Volume_Position;                                     // размер позиции устанавливаем на размер плановой открытой позиции
                    Open_Position   = Stop_Bay_2;                                               //устанавливаем цену открытия позиции
                    Stop_Sell_1     = Open_Position - (H_Stop * Visota_Kanala);                 // устанавливаем стоп заявку на выход в Кешь из лонгов
                    Stop_Sell_2     = Open_Position - ((H_Stop + Filter_Stop) * Visota_Kanala); // устанавливае стоп заявку на вход в Шорты

                    Sum_Sdelok++;                                                               // если мы сменили позицию, значит произошла сделка

                    Stop_Bay_1 = 0;                                                             // сбрасываем он нам не нужен
                    Stop_Bay_2 = 0;                                                             // сбрасываем он нам не нужен

                    if (Regim_Rabota == 1 & sistem_vector == 1 & Plan_Volume_Position != 0)     // если у нас включен торговый режим
                    {
                        // int COD_Transactions_x, int COD_Transactions_z, decimal PRICE, int QUANTITY
                        // в начале все снимаем
                        QUIK.Consructor_Transactiy(28, 1, 0, 0, Parametr); // Stop_Sell_1
                        QUIK.Consructor_Transactiy(28, 2, 0, 0, Parametr); // Stop_Sell_2
                        QUIK.Consructor_Transactiy(29, 1, 0, 0, Parametr); // Stop_Bay_1
                        QUIK.Consructor_Transactiy(29, 2, 0, 0, Parametr); // Stop_Bay_2

                        // теперь выставляем нужные
                        QUIK.Consructor_Transactiy(9, 1, Stop_Sell_1, Plan_Volume_Position, Parametr); // Stop_Sell_1
                        QUIK.Consructor_Transactiy(9, 2, Stop_Sell_2, Plan_Volume_Position, Parametr); // Stop_Sell_2
                    }
                }
                else
                {
                    if (Chislo_out[5] <= Stop_Sell_2) // идет проверка на пересечение стоп цены на вход в шорт
                    // если минимум свечи пересек цену стопа
                    {
                        Vector_Position = Sell;                                                     // направлеи позиции ставим на лонг
                        Volume_Position = Plan_Volume_Position;                                     // размер позиции устанавливаем на размер плановой открытой позиции
                        Open_Position   = Stop_Sell_2;                                              //устанавливаем цену открытия позиции на уровне стопа
                        Stop_Bay_1      = Open_Position + (H_Stop * Visota_Kanala);                 // устанавливаем стоп заявку на выход в Кешь из Шортов
                        Stop_Bay_2      = Open_Position + ((H_Stop + Filter_Stop) * Visota_Kanala); // устанавливае стоп заявку на вход в Лонги

                        Sum_Sdelok++;                                                               // если мы сменили позицию, значит произошла сделка

                        Stop_Sell_1 = 0;                                                            // сбрасываем он нам не нужен
                        Stop_Sell_2 = 0;                                                            // сбрасываем он нам не нужен


                        if (Regim_Rabota == 1 & sistem_vector == 1 & Plan_Volume_Position != 0) // если у нас включен торговый режим
                        {
                            // int COD_Transactions_x, int COD_Transactions_z, decimal PRICE, int QUANTITY
                            // в начале все снимаем
                            QUIK.Consructor_Transactiy(28, 1, 0, 0, Parametr); // Stop_Sell_1
                            QUIK.Consructor_Transactiy(28, 2, 0, 0, Parametr); // Stop_Sell_2
                            QUIK.Consructor_Transactiy(29, 1, 0, 0, Parametr); // Stop_Bay_1
                            QUIK.Consructor_Transactiy(29, 2, 0, 0, Parametr); // Stop_Bay_2

                            // теперь выставляем нужные
                            QUIK.Consructor_Transactiy(10, 1, Stop_Bay_1, Plan_Volume_Position, Parametr); // Stop_Bay_1
                            QUIK.Consructor_Transactiy(10, 2, Stop_Bay_2, Plan_Volume_Position, Parametr); // Stop_Bay_2
                        }
                    }
                }
            }



            // -------------------- закончили проверку находясь в кеше ------------------ //


            else // начали проверку стопов находясь в позиции
            {
                if (Vector_Position == Bay) // если мы находимся в покупке
                {
                    if (Chislo_out[5] <= Stop_Sell_1) // идет проверка на пересечение стоп цены на выход в кешь
                    // если минимум свечи пересек цену стопа
                    {
                        Vector_Position = Cash;                                           // направлеи позиции ставим на Cash
                        Volume_Position = 0;                                              // размер позиции устанавливаем на размер плановой открытой позиции
                        Close_Position  = Stop_Sell_1;                                    //устанавливаем цену закрытия позиции
                        Stop_Sell_2     = Close_Position - (Filter_Stop * Visota_Kanala); // Корректируем стоп заявку на вход в шорт
                        Stop_Bay_2      = Close_Position + (H_Stop * Visota_Kanala);      // Устанавливаем стоп заявку на обратный вход в лонг

                        Sum_Sdelok++;                                                     // если мы сменили позицию, значит произошла сделка
                        Rezultat_Sdelki = (Close_Position - Open_Position) - Parametr.Proskalzivania;

                        Stop_Sell_1 = 0;   // сбрасываем он нам не нужен
                        Stop_Bay_1  = 0;   // сбрасываем он нам не нужен

                        Open_Position = 0; // сбрасываем он нам не нужен



                        if (Regim_Rabota == 1 & sistem_vector == 1 & Plan_Volume_Position != 0) // если у нас включен торговый режим
                        {
                            // int COD_Transactions_x, int COD_Transactions_z, decimal PRICE, int QUANTITY
                            // в начале все снимаем
                            QUIK.Consructor_Transactiy(28, 1, 0, 0, Parametr); // Stop_Sell_1
                            QUIK.Consructor_Transactiy(28, 2, 0, 0, Parametr); // Stop_Sell_2
                            QUIK.Consructor_Transactiy(29, 1, 0, 0, Parametr); // Stop_Bay_1
                            QUIK.Consructor_Transactiy(29, 2, 0, 0, Parametr); // Stop_Bay_2

                            // теперь выставляем нужные
                            QUIK.Consructor_Transactiy(9, 2, Stop_Sell_2, Plan_Volume_Position, Parametr); // Stop_Sell_2
                            QUIK.Consructor_Transactiy(10, 2, Stop_Bay_2, Plan_Volume_Position, Parametr); // Stop_Bay_2
                        }



                        //-----закончили проверку на пересечения стопа первого уровня---//


                        if (Chislo_out[5] <= Stop_Sell_2) // идет проверка на пересечение стоп цены на вход в шорт
                        // если минимум свечи пересек цену стопа
                        {
                            Vector_Position = Sell;                                       // направлеи позиции ставим на Шорт
                            Volume_Position = Plan_Volume_Position;                       // размер позиции устанавливаем на размер плановой открытой позиции
                            Open_Position   = Stop_Sell_2;                                //устанавливаем цену открытия позиции
                            Stop_Bay_1      = Open_Position + (H_Stop * Visota_Kanala);   // Устанавливаем уровень стопа на выход в кешь из шортов
                            Stop_Bay_2      = Stop_Bay_1 + (Filter_Stop * Visota_Kanala); // Устанавливаем уровень стопа на выход в лонг из кеша


                            Sum_Sdelok++;    // если мы сменили позицию, значит произошла сделка

                            Stop_Sell_1 = 0; // сбрасываем он нам не нужен
                            Stop_Sell_2 = 0; // сбрасываем он нам не нужен


                            if (Regim_Rabota == 1 & sistem_vector == 1 & Plan_Volume_Position != 0) // если у нас включен торговый режим
                            {
                                // int COD_Transactions_x, int COD_Transactions_z, decimal PRICE, int QUANTITY
                                // в начале все снимаем
                                QUIK.Consructor_Transactiy(28, 1, 0, 0, Parametr); // Stop_Sell_1
                                QUIK.Consructor_Transactiy(28, 2, 0, 0, Parametr); // Stop_Sell_2
                                QUIK.Consructor_Transactiy(29, 1, 0, 0, Parametr); // Stop_Bay_1
                                QUIK.Consructor_Transactiy(29, 2, 0, 0, Parametr); // Stop_Bay_2

                                // теперь выставляем нужные
                                QUIK.Consructor_Transactiy(10, 1, Stop_Bay_1, Plan_Volume_Position, Parametr); // Stop_Bay_1
                                QUIK.Consructor_Transactiy(10, 2, Stop_Bay_2, Plan_Volume_Position, Parametr); // Stop_Bay_2
                            }


                            //-----закончили проверку на пересечения стопа второго уровня---//
                        }
                    }
                    else // если стоп заявка на выход в кешь не была пересечена,
                    // проводим проверку на достижение новых уровней.
                    {
                        if ((((Chislo_out[8] - Stop_Sell_1) - (H_Stop * Visota_Kanala)) / Visota_Kanala) >= 1 & Chislo_out[7] == 1) // проверяем шаг цены в кубиках ценой закрытия
                        // если цена закрытия выросла на 1 кубик и более
                        {                                                                                                           // рассчитываем шаг цены и округляем до целого кубика
                            Shag_Cen    = Math.Floor(((Chislo_out[8] - Stop_Sell_1) - (H_Stop * Visota_Kanala)) / Visota_Kanala);
                            Stop_Sell_1 = Stop_Sell_1 + (Shag_Cen * Visota_Kanala);                                                 // передвигаем стоп на выход в кешь из лонгов на шаг цены в кубиках
                            Stop_Sell_2 = Stop_Sell_1 - (Filter_Stop * Visota_Kanala);                                              // передвигаем стоп на вход в шорт из кеша на шаг цены в кубиках



                            if (Regim_Rabota == 1 & sistem_vector == 1) // если у нас включен торговый режим
                            {
                                // int COD_Transactions_x, int COD_Transactions_z, decimal PRICE, int QUANTITY
                                // в начале все снимаем
                                QUIK.Consructor_Transactiy(28, 1, 0, 0, Parametr); // Stop_Sell_1
                                QUIK.Consructor_Transactiy(28, 2, 0, 0, Parametr); // Stop_Sell_2
                                QUIK.Consructor_Transactiy(29, 1, 0, 0, Parametr); // Stop_Bay_1
                                QUIK.Consructor_Transactiy(29, 2, 0, 0, Parametr); // Stop_Bay_2

                                // теперь выставляем нужные
                                QUIK.Consructor_Transactiy(9, 1, Stop_Sell_1, Plan_Volume_Position, Parametr); // Stop_Sell_1
                                QUIK.Consructor_Transactiy(9, 2, Stop_Sell_2, Plan_Volume_Position, Parametr); // Stop_Sell_2
                            }
                        }

                        //------------закрыли проверку на скачек цены в сторону открытой позиции-------------////
                    }// --------------- закрыли всю ценовую проверку на позицию в лонгах ----- //
                }

                else
                {
                    if (Vector_Position == Sell)         // если мы находимся в продажах
                    {
                        if (Chislo_out[4] >= Stop_Bay_1) // идет проверка на пересечение стоп цены на выход в кешь
                        // если максимум свечи пересек цену стопа
                        {
                            Vector_Position = Cash;                                                       // направлеи позиции ставим на Cash
                            Volume_Position = 0;                                                          // размер позиции устанавливаем на размер плановой открытой позиции
                            Close_Position  = Stop_Bay_1;                                                 //устанавливаем цену закрытия позиции
                            Stop_Bay_2      = Close_Position + (Filter_Stop * Visota_Kanala);             // корректируем стопа для входа в лонги
                            Stop_Sell_2     = Close_Position - (H_Stop * Visota_Kanala);                  // Устанавливаем уровень стопа на обратный вход в шорт из кеша

                            Sum_Sdelok++;                                                                 // если мы сменили позицию, значит произошла сделка
                            Rezultat_Sdelki = (Open_Position - Close_Position) - Parametr.Proskalzivania; // результат сделки

                            Stop_Bay_1  = 0;                                                              // сбрасываем он нам не нужен
                            Stop_Sell_1 = 0;                                                              // сбрасываем он нам не нужен

                            Open_Position = 0;                                                            // сбрасываем он нам не нужен


                            if (Regim_Rabota == 1 & sistem_vector == 1 & Plan_Volume_Position != 0) // если у нас включен торговый режим
                            {
                                // int COD_Transactions_x, int COD_Transactions_z, decimal PRICE, int QUANTITY
                                // в начале все снимаем
                                QUIK.Consructor_Transactiy(28, 1, 0, 0, Parametr); // Stop_Sell_1
                                QUIK.Consructor_Transactiy(28, 2, 0, 0, Parametr); // Stop_Sell_2
                                QUIK.Consructor_Transactiy(29, 1, 0, 0, Parametr); // Stop_Bay_1
                                QUIK.Consructor_Transactiy(29, 2, 0, 0, Parametr); // Stop_Bay_2

                                // теперь выставляем нужные
                                QUIK.Consructor_Transactiy(9, 2, Stop_Sell_2, Plan_Volume_Position, Parametr); // Stop_Sell_2
                                QUIK.Consructor_Transactiy(10, 2, Stop_Bay_2, Plan_Volume_Position, Parametr); // Stop_Bay_2
                            }



                            //-----закончили проверку на пересечения стопа первого уровня---//


                            if (Chislo_out[4] >= Stop_Bay_2) // идет проверка на пересечение стоп цены на вход в лонг
                            // если максимум свечи пересек цену стопа
                            {
                                Vector_Position = Bay;                                         // направлеи позиции ставим на Шорт
                                Volume_Position = Plan_Volume_Position;                        // размер позиции устанавливаем на размер плановой открытой позиции
                                Open_Position   = Stop_Bay_2;                                  //устанавливаем цену открытия позиции
                                Stop_Sell_1     = Open_Position - (H_Stop * Visota_Kanala);    // Устанавливаем уровень стопа на выход в кешь из лонгов
                                Stop_Sell_2     = Stop_Sell_1 - (Filter_Stop * Visota_Kanala); // Устанавливаем уровень стопа на вход в шорт из кеша

                                Sum_Sdelok++;                                                  // если мы сменили позицию, значит произошла сделка

                                Stop_Bay_1 = 0;                                                // сбрасываем он нам не нужен
                                Stop_Bay_2 = 0;                                                // сбрасываем он нам не нужен


                                if (Regim_Rabota == 1 & sistem_vector == 1 & Plan_Volume_Position != 0) // если у нас включен торговый режим
                                {
                                    // int COD_Transactions_x, int COD_Transactions_z, decimal PRICE, int QUANTITY
                                    // в начале все снимаем
                                    QUIK.Consructor_Transactiy(28, 1, 0, 0, Parametr); // Stop_Sell_1
                                    QUIK.Consructor_Transactiy(28, 2, 0, 0, Parametr); // Stop_Sell_2
                                    QUIK.Consructor_Transactiy(29, 1, 0, 0, Parametr); // Stop_Bay_1
                                    QUIK.Consructor_Transactiy(29, 2, 0, 0, Parametr); // Stop_Bay_2

                                    // теперь выставляем нужные
                                    QUIK.Consructor_Transactiy(9, 1, Stop_Sell_1, Plan_Volume_Position, Parametr); // Stop_Sell_1
                                    QUIK.Consructor_Transactiy(9, 2, Stop_Sell_2, Plan_Volume_Position, Parametr); // Stop_Sell_2
                                }



                                //-----закончили проверку на пересечения стопа второго уровня---//
                            }
                        }
                        else // если стоп заявка на выход в кешь не была пересечена,
                        // проводим проверку на достижение новых уровней.
                        {
                            if ((((Stop_Bay_1 - Chislo_out[8]) - (H_Stop * Visota_Kanala)) / Visota_Kanala) >= 1 & Chislo_out[7] == 1) // проверяем шаг цены в кубиках ценой закрытия
                            // если цена закрытия выросла на 1 кубик и более
                            {                                                                                                          // рассчитываем шаг цены и округляем до целого кубика
                                Shag_Cen   = Math.Floor(((Stop_Bay_1 - Chislo_out[8]) - (H_Stop * Visota_Kanala)) / Visota_Kanala);
                                Stop_Bay_1 = Stop_Bay_1 - (Shag_Cen * Visota_Kanala);                                                  // передвигаем стоп на выход в кешь из шортов на шаг цены в кубиках
                                Stop_Bay_2 = Stop_Bay_1 + (Filter_Stop * Visota_Kanala);                                               // передвигаем стоп на вход в лонг из кеша на шаг цены в кубиках

                                if (Regim_Rabota == 1 & sistem_vector == 1 & Plan_Volume_Position != 0)                                // если у нас включен торговый режим
                                {
                                    // int COD_Transactions_x, int COD_Transactions_z, decimal PRICE, int QUANTITY
                                    // в начале все снимаем
                                    QUIK.Consructor_Transactiy(28, 1, 0, 0, Parametr); // Stop_Sell_1
                                    QUIK.Consructor_Transactiy(28, 2, 0, 0, Parametr); // Stop_Sell_2
                                    QUIK.Consructor_Transactiy(29, 1, 0, 0, Parametr); // Stop_Bay_1
                                    QUIK.Consructor_Transactiy(29, 2, 0, 0, Parametr); // Stop_Bay_2

                                    // теперь выставляем нужные
                                    QUIK.Consructor_Transactiy(10, 1, Stop_Bay_1, Plan_Volume_Position, Parametr); // Stop_Bay_1
                                    QUIK.Consructor_Transactiy(10, 2, Stop_Bay_2, Plan_Volume_Position, Parametr); // Stop_Bay_2
                                }
                            }

                            //------------закрыли проверку на скачек цены в сторону открытой позиции-------------////
                        }

                        // --------------- закрыли всю ценовую проверку на позицию в шортах ----- //
                    }
                }
            }



            if (Regim_Rabota == 1 & stapt_stop == 0)
            {
                // теперь выставляем нужные
                QUIK.Consructor_Transactiy(10, 1, Stop_Bay_1, Plan_Volume_Position, Parametr);     // Stop_Bay_1
                QUIK.Consructor_Transactiy(10, 2, Stop_Bay_2, Plan_Volume_Position, Parametr);     // Stop_Bay_2
                // теперь выставляем нужные
                QUIK.Consructor_Transactiy(9, 1, Stop_Sell_1, Plan_Volume_Position, Parametr);     // Stop_Sell_1
                QUIK.Consructor_Transactiy(9, 2, Stop_Sell_2, Plan_Volume_Position, Parametr);     // Stop_Sell_2

                stapt_stop++;
            }



            //* вывод расчетов на экран *//
            Close_Position         = 0; // обнуляем за ненадобностью
            Rezerv_Rezultat_Sdelki = Rezultat_Sdelki;
            Rezultat_Sdelki        = 0; // обнуляем результат сделки


            return(str_x);
        }
        public string str_x; // строка для вывода данных в файл



        public decimal Raschet_Protiv_RENKO_5_850(decimal[] Chislo_out, decimal Stop_Sell_2, decimal Stop_Bay_2, decimal Visota_Kanala, decimal Vector_Renko, int i, int Regim_Rabota, int sistem_vector, Parametrs Parametr)
        {
            Delta_hMAX           = Parametr.Delta_hMAX;
            Delta_hMIN           = Parametr.Delta_hMIN;
            Cikl                 = Parametr.Cikl;
            Plan_Volume_Position = C01.Stavka_xR01(Parametr);

            Class_Consructor_Transactiy QUIK = new Class_Consructor_Transactiy();


            // если изначально мы находились в кеше и всю торговлю начинаем заново, тогда
            // расставляем стопы на вход в обратном порядке стопам трендовой системы

            if (Vector_Position == Cash & in_Sell == 0 & in_Bay == 0)
            {
                in_Sell = Stop_Bay_2;  // ЗАЯВКА на вход в продажи
                in_Bay  = Stop_Sell_2; // ЗАЯВКА на вход в покупки
            }

            if (Regim_Rabota == 1 & sistem_vector == 2) // если у нас включен торговый режим
            {
                // int COD_Transactions_x, int COD_Transactions_z, decimal PRICE, int QUANTITY
                // в начале все снимаем

                QUIK.Consructor_Transactiy(19, 1, 0, 0, Parametr); // in_Sell - точка входа в шорт
                QUIK.Consructor_Transactiy(29, 1, 0, 0, Parametr); // Stop_Bay - точка выхода из продаж в Cash (убыточная)
                QUIK.Consructor_Transactiy(20, 1, 0, 0, Parametr); // z_Bay - точка выхода из продаж в Cash (прибыльная)

                QUIK.Consructor_Transactiy(20, 2, 0, 0, Parametr); // in_Bay - точка входа в лонг
                QUIK.Consructor_Transactiy(28, 1, 0, 0, Parametr); // Stop_Sell - точка выхода из покупок в Cash (убыточная)
                QUIK.Consructor_Transactiy(19, 2, 0, 0, Parametr); // z_Sell = 0 - точка выхода из покупок в Cash (прибыльная)

                // теперь выставляем нужные
                QUIK.Consructor_Transactiy(1, 1, in_Sell, Plan_Volume_Position, Parametr); // in_Sell - точка входа в шорт
                QUIK.Consructor_Transactiy(2, 2, in_Bay, Plan_Volume_Position, Parametr);  // in_Bay - точка входа в лонг
            }



            //ценовые данные текущего этажа
            // x.Chislo_out[0] - таймфрейм
            // x.Chislo_out[1] - дата
            // x.Chislo_out[2] - время
            // x.Chislo_out[3] - open
            // x.Chislo_out[4] - max
            // x.Chislo_out[5] - min
            // x.Chislo_out[6] - close


            // если цена пересекает заявку на вход в SHORT
            // входим в продажу

            if (Vector_Position == Cash & Chislo_out[4] >= in_Sell & in_Bay == 0)
            {
                Vector_Position = Sell;
                Volume_Position = Plan_Volume_Position;

                Shag_Sell = in_Sell + Visota_Kanala;
                Stop_Bay  = Shag_Sell + (Visota_Kanala * Delta_hMAX); // увеличение

                Buf_in_Sell = in_Sell;                                // середина

                z_Bay     = in_Sell - (Visota_Kanala * Delta_hMIN);   // уменьшение
                Buf_z_Bay = z_Bay;
                in_Bay    = z_Bay - Visota_Kanala;

                Plan_Cikl++;

                Sum_Sdelok++;
                Open_Position  = in_Sell;
                Close_Position = 0;


                if (Regim_Rabota == 1 & sistem_vector == 2) // если у нас включен торговый режим
                {
                    // int COD_Transactions_x, int COD_Transactions_z, decimal PRICE, int QUANTITY
                    // в начале все снимаем


                    QUIK.Consructor_Transactiy(19, 1, 0, 0, Parametr); // in_Sell - точка входа в шорт
                    QUIK.Consructor_Transactiy(29, 1, 0, 0, Parametr); // Stop_Bay - точка выхода из продаж в Cash (убыточная)
                    QUIK.Consructor_Transactiy(20, 1, 0, 0, Parametr); // z_Bay - точка выхода из продаж в Cash (прибыльная)

                    QUIK.Consructor_Transactiy(20, 2, 0, 0, Parametr); // in_Bay - точка входа в лонг
                    QUIK.Consructor_Transactiy(28, 1, 0, 0, Parametr); // Stop_Sell - точка выхода из покупок в Cash (убыточная)
                    QUIK.Consructor_Transactiy(19, 2, 0, 0, Parametr); // z_Sell = 0 - точка выхода из покупок в Cash (прибыльная)

                    // теперь выставляем нужные

                    QUIK.Consructor_Transactiy(10, 1, Stop_Bay, Plan_Volume_Position, Parametr); // Stop_Bay - точка выхода из продаж в Cash (убыточная)
                    QUIK.Consructor_Transactiy(2, 1, z_Bay, Plan_Volume_Position, Parametr);     // z_Bay - точка выхода из продаж в Cash (прибыльная)
                    QUIK.Consructor_Transactiy(2, 2, in_Bay, Plan_Volume_Position, Parametr);    // in_Bay - точка входа в лонг
                }



                in_Sell = 0;

                if (Regim_Rabota == 1 & sistem_vector == 2)
                {
                    // выводим данные на консоль

                    Console.WriteLine(
                        "xR01" + " " +
                        Chislo_out[1] + " " +
                        Chislo_out[2] + " " +
                        "Vector_Position: " + Vector_Position + " " +
                        "Volume_Position: " + Volume_Position + " " +

                        "InSell: " + in_Sell + " " +
                        "SpotBuy: " + Stop_Bay + " " +
                        "z_Buy: " + z_Bay + " " +

                        "in_Buy: " + in_Bay + " " +
                        "Stop_Sell: " + Stop_Sell + " " +
                        "z_Sell: " + z_Sell
                        );// выводим приказ на консоль
                }
            }


            // если цена пересекает заявку на вход в LONG
            // входим в покупки

            if (Vector_Position == Cash & Chislo_out[5] <= in_Bay & in_Sell == 0)
            {
                Vector_Position = Bay;
                Volume_Position = Plan_Volume_Position;

                Shag_Bay  = in_Bay - Visota_Kanala;
                Stop_Sell = Shag_Bay - (Visota_Kanala * Delta_hMAX); // увеличение

                Buf_in_Bay = in_Bay;                                 // середина

                z_Sell     = in_Bay + (Visota_Kanala * Delta_hMIN);  // уменьшение
                Buf_z_Sell = z_Sell;
                in_Sell    = z_Sell + Visota_Kanala;

                Plan_Cikl++;

                Sum_Sdelok++;
                Open_Position  = in_Bay;
                Close_Position = 0;

                if (Regim_Rabota == 1 & sistem_vector == 2) // если у нас включен торговый режим
                {
                    // int COD_Transactions_x, int COD_Transactions_z, decimal PRICE, int QUANTITY
                    // в начале все снимаем

                    QUIK.Consructor_Transactiy(19, 1, 0, 0, Parametr); // in_Sell - точка входа в шорт
                    QUIK.Consructor_Transactiy(29, 1, 0, 0, Parametr); // Stop_Bay - точка выхода из продаж в Cash (убыточная)
                    QUIK.Consructor_Transactiy(20, 1, 0, 0, Parametr); // z_Bay - точка выхода из продаж в Cash (прибыльная)

                    QUIK.Consructor_Transactiy(20, 2, 0, 0, Parametr); // in_Bay - точка входа в лонг
                    QUIK.Consructor_Transactiy(28, 1, 0, 0, Parametr); // Stop_Sell - точка выхода из покупок в Cash (убыточная)
                    QUIK.Consructor_Transactiy(19, 2, 0, 0, Parametr); // z_Sell = 0 - точка выхода из покупок в Cash (прибыльная)

                    // теперь выставляем нужные
                    QUIK.Consructor_Transactiy(1, 1, in_Sell, Plan_Volume_Position, Parametr);   // in_Sell - точка входа в шорт

                    QUIK.Consructor_Transactiy(9, 1, Stop_Sell, Plan_Volume_Position, Parametr); // Stop_Sell - точка выхода из покупок в Cash (убыточная)
                    QUIK.Consructor_Transactiy(1, 2, z_Sell, Plan_Volume_Position, Parametr);    // z_Sell = 0 - точка выхода из покупок в Cash (прибыльная)
                }

                in_Bay = 0;

                if (Regim_Rabota == 1 & sistem_vector == 2)
                {
                    // выводим данные на консоль

                    Console.WriteLine(
                        "xR01" + " " +
                        Chislo_out[1] + " " +
                        Chislo_out[2] + " " +
                        "Vector_Position: " + Vector_Position + " " +
                        "Volume_Position: " + Volume_Position + " " +

                        "InSell: " + in_Sell + " " +
                        "SpotBuy: " + Stop_Bay + " " +
                        "z_Buy: " + z_Bay + " " +

                        "in_Buy: " + in_Bay + " " +
                        "Stop_Sell: " + Stop_Sell + " " +
                        "z_Sell: " + z_Sell
                        );// выводим приказ на консоль
                }
            }


            // если мы в CASH, но пересечения не произашло. но уровень стопов в ренков изменился
            // тогда подтягиваем наши стопы

            if (Vector_Position == Cash & in_Sell != 0)
            {
                in_Sell = Stop_Bay_2;

                if (Regim_Rabota == 1 & sistem_vector == 2) // если у нас включен торговый режим
                {
                    // int COD_Transactions_x, int COD_Transactions_z, decimal PRICE, int QUANTITY
                    // в начале все снимаем

                    QUIK.Consructor_Transactiy(19, 1, 0, 0, Parametr); // in_Sell - точка входа в шорт


                    // теперь выставляем нужные
                    QUIK.Consructor_Transactiy(1, 1, in_Sell, Plan_Volume_Position, Parametr); // in_Sell - точка входа в шорт
                }
            }


            if (Vector_Position == Cash & in_Bay != 0)
            {
                in_Bay = Stop_Sell_2;

                if (Regim_Rabota == 1 & sistem_vector == 2) // если у нас включен торговый режим
                {
                    // int COD_Transactions_x, int COD_Transactions_z, decimal PRICE, int QUANTITY
                    // в начале все снимаем
                    QUIK.Consructor_Transactiy(20, 2, 0, 0, Parametr); // in_Bay - точка входа в лонг

                    // теперь выставляем нужные
                    QUIK.Consructor_Transactiy(2, 2, in_Bay, Plan_Volume_Position, Parametr); // in_Bay - точка входа в лонг
                }
            }

            // если мы в SHORT
            // цена опускается до уровня фиксации ПРИБЫЛИ zBay


            if (Vector_Position == Sell & Chislo_out[5] <= z_Bay & Volume_Position == Plan_Volume_Position & Plan_Cikl != Cikl)
            {
                in_Sell = Buf_in_Sell; // середина

                Buf_z_Bay = z_Bay;
                z_Bay     = 0; // уменьшение


                if (Regim_Rabota == 1 & sistem_vector == 2) // если у нас включен торговый режим
                {
                    // int COD_Transactions_x, int COD_Transactions_z, decimal PRICE, int QUANTITY
                    // в начале все снимаем

                    QUIK.Consructor_Transactiy(19, 1, 0, 0, Parametr); // in_Sell - точка входа в шорт
                    QUIK.Consructor_Transactiy(20, 1, 0, 0, Parametr); // z_Bay - точка выхода из продаж в Cash (прибыльная)


                    // теперь выставляем нужные
                    QUIK.Consructor_Transactiy(1, 1, in_Sell, Plan_Volume_Position, Parametr); // in_Sell - точка входа в шорт
                }


                Volume_Position = 0;

                Plan_Cikl++;


                Sum_Sdelok++;
                Close_Position  = Buf_z_Bay;
                Local_Profit    = Local_Profit + (Open_Position - Close_Position);
                Rezultat_Sdelki = (Open_Position - Close_Position) / Visota_Kanala;


                if (Regim_Rabota == 1 & sistem_vector == 2)
                {
                    // выводим данные на консоль

                    Console.WriteLine(
                        "xR01" + " " +
                        Chislo_out[1] + " " +
                        Chislo_out[2] + " " +
                        "Vector_Position: " + Vector_Position + " " +
                        "Volume_Position: " + Volume_Position + " " +

                        "InSell: " + in_Sell + " " +
                        "SpotBuy: " + Stop_Bay + " " +
                        "z_Buy: " + z_Bay + " " +

                        "in_Buy: " + in_Bay + " " +
                        "Stop_Sell: " + Stop_Sell + " " +
                        "z_Sell: " + z_Sell
                        );// выводим приказ на консоль
                }
            }


            // если мы в LONG
            // цена поднимается до уровня фиксации ПРИБЫЛИ zSell

            if (Vector_Position == Bay & Chislo_out[4] >= z_Sell & Volume_Position == Plan_Volume_Position & Plan_Cikl != Cikl)
            {
                in_Bay = Buf_in_Bay;

                Buf_z_Sell = z_Sell;
                z_Sell     = 0;

                if (Regim_Rabota == 1 & sistem_vector == 2) // если у нас включен торговый режим
                {
                    // int COD_Transactions_x, int COD_Transactions_z, decimal PRICE, int QUANTITY
                    // в начале все снимаем

                    QUIK.Consructor_Transactiy(20, 2, 0, 0, Parametr); // in_Bay - точка входа в лонг
                    QUIK.Consructor_Transactiy(19, 2, 0, 0, Parametr); // z_Sell = 0 - точка выхода из покупок в Cash (прибыльная)

                    // теперь выставляем нужные
                    QUIK.Consructor_Transactiy(2, 2, in_Bay, Plan_Volume_Position, Parametr); // in_Bay - точка входа в лонг
                }


                Volume_Position = 0;

                Plan_Cikl++;

                Sum_Sdelok++;
                Close_Position  = Buf_z_Sell;
                Local_Profit    = Local_Profit + (Close_Position - Open_Position);
                Rezultat_Sdelki = (Close_Position - Open_Position) / Visota_Kanala;


                if (Regim_Rabota == 1 & sistem_vector == 2)
                {
                    // выводим данные на консоль

                    Console.WriteLine(
                        "xR01" + " " +
                        Chislo_out[1] + " " +
                        Chislo_out[2] + " " +
                        "Vector_Position: " + Vector_Position + " " +
                        "Volume_Position: " + Volume_Position + " " +

                        "InSell: " + in_Sell + " " +
                        "SpotBuy: " + Stop_Bay + " " +
                        "z_Buy: " + z_Bay + " " +

                        "in_Buy: " + in_Bay + " " +
                        "Stop_Sell: " + Stop_Sell + " " +
                        "z_Sell: " + z_Sell
                        );// выводим приказ на консоль
                }
            }


            // еслим мы в SHORT
            // цена поднимается до уровня начального входа in_Sell

            if (Vector_Position == Sell & Chislo_out[4] >= Buf_in_Sell & Volume_Position == 0 & Plan_Cikl != Cikl)
            {
                Buf_in_Sell = in_Sell;
                z_Bay       = Buf_z_Bay;


                if (Regim_Rabota == 1 & sistem_vector == 2) // если у нас включен торговый режим
                {
                    // int COD_Transactions_x, int COD_Transactions_z, decimal PRICE, int QUANTITY
                    // в начале все снимаем

                    QUIK.Consructor_Transactiy(19, 1, 0, 0, Parametr); // in_Sell - точка входа в шорт
                    QUIK.Consructor_Transactiy(20, 1, 0, 0, Parametr); // z_Bay - точка выхода из продаж в Cash (прибыльная)

                    // теперь выставляем нужные
                    QUIK.Consructor_Transactiy(2, 1, z_Bay, Plan_Volume_Position, Parametr); // z_Bay - точка выхода из продаж в Cash (прибыльная)
                }


                Volume_Position = Plan_Volume_Position;

                Sum_Sdelok++;
                Open_Position = in_Sell;

                Plan_Cikl++;


                if (Regim_Rabota == 1 & sistem_vector == 2)
                {
                    // выводим данные на консоль

                    Console.WriteLine(
                        "xR01" + " " +
                        Chislo_out[1] + " " +
                        Chislo_out[2] + " " +
                        "Vector_Position: " + Vector_Position + " " +
                        "Volume_Position: " + Volume_Position + " " +

                        "InSell: " + in_Sell + " " +
                        "SpotBuy: " + Stop_Bay + " " +
                        "z_Buy: " + z_Bay + " " +

                        "in_Buy: " + in_Bay + " " +
                        "Stop_Sell: " + Stop_Sell + " " +
                        "z_Sell: " + z_Sell
                        );// выводим приказ на консоль
                }
            }


            // если мы в LONG
            // цена поднимается до уровня начального входа в in_Bay


            if (Vector_Position == Bay & Chislo_out[5] <= Buf_in_Bay & Volume_Position == 0 & Plan_Cikl != Cikl)
            {
                Buf_in_Bay = in_Bay;
                z_Sell     = Buf_z_Sell;


                if (Regim_Rabota == 1 & sistem_vector == 2) // если у нас включен торговый режим
                {
                    // int COD_Transactions_x, int COD_Transactions_z, decimal PRICE, int QUANTITY
                    // в начале все снимаем

                    QUIK.Consructor_Transactiy(20, 2, 0, 0, Parametr); // in_Bay - точка входа в лонг
                    QUIK.Consructor_Transactiy(19, 2, 0, 0, Parametr); // z_Sell = 0 - точка выхода из покупок в Cash (прибыльная)

                    // теперь выставляем нужные
                    QUIK.Consructor_Transactiy(1, 2, z_Sell, Plan_Volume_Position, Parametr); // z_Sell = 0 - точка выхода из покупок в Cash (прибыльная)
                }


                Volume_Position = Plan_Volume_Position;

                Plan_Cikl++;

                Sum_Sdelok++;
                Open_Position = in_Bay;

                if (Regim_Rabota == 1 & sistem_vector == 2)
                {
                    // выводим данные на консоль

                    Console.WriteLine(
                        "xR01" + " " +
                        Chislo_out[1] + " " +
                        Chislo_out[2] + " " +
                        "Vector_Position: " + Vector_Position + " " +
                        "Volume_Position: " + Volume_Position + " " +

                        "InSell: " + in_Sell + " " +
                        "SpotBuy: " + Stop_Bay + " " +
                        "z_Buy: " + z_Bay + " " +

                        "in_Buy: " + in_Bay + " " +
                        "Stop_Sell: " + Stop_Sell + " " +
                        "z_Sell: " + z_Sell
                        );// выводим приказ на консоль
                }
            }


            // если мы в SHORT
            // цена опускается до уровня переворота в LONG

            if (Vector_Position == Sell & Chislo_out[5] <= in_Bay)
            {
                Shag_Sell = 0;
                Stop_Bay  = 0; // увеличение

                in_Sell     = 0;
                Buf_in_Sell = 0; // середина

                z_Bay     = 0;   // уменьшение
                Buf_z_Bay = 0;


                Vector_Position = Bay;
                Volume_Position = Plan_Volume_Position;

                Shag_Bay  = in_Bay - Visota_Kanala;
                Stop_Sell = Shag_Bay - Visota_Kanala; // увеличение

                Buf_in_Bay = in_Bay;                  // середина

                z_Sell     = in_Bay + Visota_Kanala;  // уменьшение
                Buf_z_Sell = z_Sell;
                in_Sell    = z_Sell + Visota_Kanala;


                if (Regim_Rabota == 1 & sistem_vector == 2) // если у нас включен торговый режим
                {
                    // int COD_Transactions_x, int COD_Transactions_z, decimal PRICE, int QUANTITY
                    // в начале все снимаем


                    QUIK.Consructor_Transactiy(19, 1, 0, 0, Parametr); // in_Sell - точка входа в шорт
                    QUIK.Consructor_Transactiy(29, 1, 0, 0, Parametr); // Stop_Bay - точка выхода из продаж в Cash (убыточная)
                    QUIK.Consructor_Transactiy(20, 1, 0, 0, Parametr); // z_Bay - точка выхода из продаж в Cash (прибыльная)

                    QUIK.Consructor_Transactiy(20, 2, 0, 0, Parametr); // in_Bay - точка входа в лонг
                    QUIK.Consructor_Transactiy(28, 1, 0, 0, Parametr); // Stop_Sell - точка выхода из покупок в Cash (убыточная)
                    QUIK.Consructor_Transactiy(19, 2, 0, 0, Parametr); // z_Sell = 0 - точка выхода из покупок в Cash (прибыльная)

                    // теперь выставляем нужные
                    QUIK.Consructor_Transactiy(1, 1, in_Sell, Plan_Volume_Position, Parametr);   // in_Sell - точка входа в шорт
                    QUIK.Consructor_Transactiy(9, 1, Stop_Sell, Plan_Volume_Position, Parametr); // Stop_Sell - точка выхода из покупок в Cash (убыточная)
                    QUIK.Consructor_Transactiy(1, 2, z_Sell, Plan_Volume_Position, Parametr);    // z_Sell = 0 - точка выхода из покупок в Cash (прибыльная)
                }


                in_Bay = 0;

                Sum_Sdelok++;
                Open_Position = Buf_in_Bay;


                if (Regim_Rabota == 1 & sistem_vector == 2)
                {
                    // выводим данные на консоль

                    Console.WriteLine(
                        "xR01" + " " +
                        Chislo_out[1] + " " +
                        Chislo_out[2] + " " +
                        "Vector_Position: " + Vector_Position + " " +
                        "Volume_Position: " + Volume_Position + " " +

                        "InSell: " + in_Sell + " " +
                        "SpotBuy: " + Stop_Bay + " " +
                        "z_Buy: " + z_Bay + " " +

                        "in_Buy: " + in_Bay + " " +
                        "Stop_Sell: " + Stop_Sell + " " +
                        "z_Sell: " + z_Sell
                        );// выводим приказ на консоль
                }
            }


            // если мы в LONG
            // цена поднимается до уровня переворота в SHORT

            if (Vector_Position == Bay & Chislo_out[4] >= in_Sell)
            {
                Shag_Bay  = 0;
                Stop_Sell = 0; // увеличение

                in_Bay     = 0;
                Buf_in_Bay = 0; // середина

                z_Sell     = 0; // уменьшение
                Buf_z_Sell = 0;

                Vector_Position = Sell;
                Volume_Position = Plan_Volume_Position;

                Shag_Sell = in_Sell + Visota_Kanala;
                Stop_Bay  = Shag_Sell + Visota_Kanala; // увеличение

                Buf_in_Sell = in_Sell;                 // середина

                z_Bay     = in_Sell - Visota_Kanala;   // уменьшение
                Buf_z_Bay = z_Bay;
                in_Bay    = z_Bay - Visota_Kanala;


                if (Regim_Rabota == 1 & sistem_vector == 2) // если у нас включен торговый режим
                {
                    // int COD_Transactions_x, int COD_Transactions_z, decimal PRICE, int QUANTITY
                    // в начале все снимаем

                    QUIK.Consructor_Transactiy(19, 1, 0, 0, Parametr); // in_Sell - точка входа в шорт
                    QUIK.Consructor_Transactiy(29, 1, 0, 0, Parametr); // Stop_Bay - точка выхода из продаж в Cash (убыточная)
                    QUIK.Consructor_Transactiy(20, 1, 0, 0, Parametr); // z_Bay - точка выхода из продаж в Cash (прибыльная)

                    QUIK.Consructor_Transactiy(20, 2, 0, 0, Parametr); // in_Bay - точка входа в лонг
                    QUIK.Consructor_Transactiy(28, 1, 0, 0, Parametr); // Stop_Sell - точка выхода из покупок в Cash (убыточная)
                    QUIK.Consructor_Transactiy(19, 2, 0, 0, Parametr); // z_Sell = 0 - точка выхода из покупок в Cash (прибыльная)

                    // теперь выставляем нужные
                    QUIK.Consructor_Transactiy(10, 1, Stop_Bay, Plan_Volume_Position, Parametr); // Stop_Bay - точка выхода из продаж в Cash (убыточная)
                    QUIK.Consructor_Transactiy(2, 1, z_Bay, Plan_Volume_Position, Parametr);     // z_Bay - точка выхода из продаж в Cash (прибыльная)

                    QUIK.Consructor_Transactiy(2, 2, in_Bay, Plan_Volume_Position, Parametr);    // in_Bay - точка входа в лонг
                }



                in_Sell = 0;

                Sum_Sdelok++;
                Open_Position = Buf_in_Sell;


                if (Regim_Rabota == 1 & sistem_vector == 2)
                {
                    // выводим данные на консоль

                    Console.WriteLine(
                        "xR01" + " " +
                        Chislo_out[1] + " " +
                        Chislo_out[2] + " " +
                        "Vector_Position: " + Vector_Position + " " +
                        "Volume_Position: " + Volume_Position + " " +

                        "InSell: " + in_Sell + " " +
                        "SpotBuy: " + Stop_Bay + " " +
                        "z_Buy: " + z_Bay + " " +

                        "in_Buy: " + in_Bay + " " +
                        "Stop_Sell: " + Stop_Sell + " " +
                        "z_Sell: " + z_Sell
                        );// выводим приказ на консоль
                }
            }


            // если мы SHORT
            // цена поднимается до уровня передвижения стопа +1 по RENKO

            if (Vector_Position == Sell & Chislo_out[8] >= Shag_Sell & Chislo_out[7] == 1)
            {
                in_Bay = Stop_Sell_2;
                z_Bay  = Stop_Sell_2;


                if (Regim_Rabota == 1 & sistem_vector == 2) // если у нас включен торговый режим
                {
                    // int COD_Transactions_x, int COD_Transactions_z, decimal PRICE, int QUANTITY
                    // в начале все снимаем
                    QUIK.Consructor_Transactiy(20, 1, 0, 0, Parametr); // z_Bay - точка выхода из продаж в Cash (прибыльная)
                    QUIK.Consructor_Transactiy(20, 2, 0, 0, Parametr); // in_Bay - точка входа в лонг


                    // теперь выставляем нужные
                    QUIK.Consructor_Transactiy(2, 1, z_Bay, Plan_Volume_Position, Parametr);  // z_Bay - точка выхода из продаж в Cash (прибыльная)
                    QUIK.Consructor_Transactiy(2, 2, in_Bay, Plan_Volume_Position, Parametr); // in_Bay - точка входа в лонг
                }


                if (Regim_Rabota == 1 & sistem_vector == 2)
                {
                    // выводим данные на консоль

                    Console.WriteLine(
                        "xR01" + " " +
                        Chislo_out[1] + " " +
                        Chislo_out[2] + " " +
                        "Vector_Position: " + Vector_Position + " " +
                        "Volume_Position: " + Volume_Position + " " +

                        "InSell: " + in_Sell + " " +
                        "SpotBuy: " + Stop_Bay + " " +
                        "z_Buy: " + z_Bay + " " +

                        "in_Buy: " + in_Bay + " " +
                        "Stop_Sell: " + Stop_Sell + " " +
                        "z_Sell: " + z_Sell
                        );// выводим приказ на консоль
                }
            }

            // если мы в LONG
            // цена опускается до уровня передвижения стопа -1 по RENKO


            if (Vector_Position == Bay & Chislo_out[8] <= Shag_Bay & Chislo_out[7] == 1)
            {
                in_Sell = Stop_Bay_2;
                z_Sell  = Stop_Bay_2;


                if (Regim_Rabota == 1 & sistem_vector == 2) // если у нас включен торговый режим
                {
                    // int COD_Transactions_x, int COD_Transactions_z, decimal PRICE, int QUANTITY
                    // в начале все снимаем

                    QUIK.Consructor_Transactiy(19, 1, 0, 0, Parametr); // in_Sell - точка входа в шорт
                    QUIK.Consructor_Transactiy(19, 2, 0, 0, Parametr); // z_Sell = 0 - точка выхода из покупок в Cash (прибыльная)

                    // теперь выставляем нужные
                    QUIK.Consructor_Transactiy(1, 1, in_Sell, Plan_Volume_Position, Parametr); // in_Sell - точка входа в шорт
                    QUIK.Consructor_Transactiy(1, 2, z_Sell, Plan_Volume_Position, Parametr);  // z_Sell = 0 - точка выхода из покупок в Cash (прибыльная)
                }


                if (Regim_Rabota == 1 & sistem_vector == 2)
                {
                    // выводим данные на консоль

                    Console.WriteLine(
                        "xR01" + " " +
                        Chislo_out[1] + " " +
                        Chislo_out[2] + " " +
                        "Vector_Position: " + Vector_Position + " " +
                        "Volume_Position: " + Volume_Position + " " +

                        "InSell: " + in_Sell + " " +
                        "SpotBuy: " + Stop_Bay + " " +
                        "z_Buy: " + z_Bay + " " +

                        "in_Buy: " + in_Bay + " " +
                        "Stop_Sell: " + Stop_Sell + " " +
                        "z_Sell: " + z_Sell
                        );// выводим приказ на консоль
                }
            }

            // если мы в SHORT
            // цена поднимается до уровня выхода в CASH

            if (Vector_Position == Sell & Chislo_out[4] >= Stop_Bay)
            {
                Vector_Position = Cash;
                Volume_Position = 0;

                Shag_Sell   = 0;
                in_Sell     = 0;
                Buf_in_Sell = 0;
                z_Bay       = 0;
                Buf_z_Bay   = 0;

                in_Bay = Stop_Sell_2;

                Sum_Sdelok++;
                Close_Position  = Stop_Bay;
                Local_Profit    = Local_Profit + (Open_Position - Close_Position);
                Rezultat_Sdelki = (Open_Position - Close_Position) / Visota_Kanala;

                if (Regim_Rabota == 1 & sistem_vector == 2) // если у нас включен торговый режим
                {
                    // int COD_Transactions_x, int COD_Transactions_z, decimal PRICE, int QUANTITY
                    // в начале все снимаем

                    QUIK.Consructor_Transactiy(19, 1, 0, 0, Parametr); // in_Sell - точка входа в шорт
                    QUIK.Consructor_Transactiy(29, 1, 0, 0, Parametr); // Stop_Bay - точка выхода из продаж в Cash (убыточная)
                    QUIK.Consructor_Transactiy(20, 1, 0, 0, Parametr); // z_Bay - точка выхода из продаж в Cash (прибыльная)

                    QUIK.Consructor_Transactiy(20, 2, 0, 0, Parametr); // in_Bay - точка входа в лонг
                    QUIK.Consructor_Transactiy(28, 1, 0, 0, Parametr); // Stop_Sell - точка выхода из покупок в Cash (убыточная)
                    QUIK.Consructor_Transactiy(19, 2, 0, 0, Parametr); // z_Sell = 0 - точка выхода из покупок в Cash (прибыльная)

                    // теперь выставляем нужные
                    QUIK.Consructor_Transactiy(2, 2, in_Bay, Plan_Volume_Position, Parametr); // in_Bay - точка входа в лонг
                }

                Stop_Bay = 0;


                if (Regim_Rabota == 1 & sistem_vector == 2)
                {
                    // выводим данные на консоль

                    Console.WriteLine(
                        "xR01" + " " +
                        Chislo_out[1] + " " +
                        Chislo_out[2] + " " +
                        "Vector_Position: " + Vector_Position + " " +
                        "Volume_Position: " + Volume_Position + " " +

                        "InSell: " + in_Sell + " " +
                        "SpotBuy: " + Stop_Bay + " " +
                        "z_Buy: " + z_Bay + " " +

                        "in_Buy: " + in_Bay + " " +
                        "Stop_Sell: " + Stop_Sell + " " +
                        "z_Sell: " + z_Sell
                        );// выводим приказ на консоль
                }
            }


            // если мы в LONG
            // цена опускается до уровня выхода в CASH

            if (Vector_Position == Bay & Chislo_out[5] <= Stop_Sell)
            {
                Vector_Position = Cash;
                Volume_Position = 0;

                Shag_Bay   = 0;
                in_Bay     = 0;
                Buf_in_Bay = 0;
                z_Sell     = 0;
                Buf_z_Sell = 0;

                in_Sell = Stop_Bay_2;

                Sum_Sdelok++;
                Close_Position  = Stop_Sell;
                Local_Profit    = Local_Profit + (Close_Position - Open_Position);
                Rezultat_Sdelki = (Close_Position - Open_Position) / Visota_Kanala;

                if (Regim_Rabota == 1 & sistem_vector == 2) // если у нас включен торговый режим
                {
                    // int COD_Transactions_x, int COD_Transactions_z, decimal PRICE, int QUANTITY
                    // в начале все снимаем

                    QUIK.Consructor_Transactiy(19, 1, 0, 0, Parametr); // in_Sell - точка входа в шорт
                    QUIK.Consructor_Transactiy(29, 1, 0, 0, Parametr); // Stop_Bay - точка выхода из продаж в Cash (убыточная)
                    QUIK.Consructor_Transactiy(20, 1, 0, 0, Parametr); // z_Bay - точка выхода из продаж в Cash (прибыльная)

                    QUIK.Consructor_Transactiy(20, 2, 0, 0, Parametr); // in_Bay - точка входа в лонг
                    QUIK.Consructor_Transactiy(28, 1, 0, 0, Parametr); // Stop_Sell - точка выхода из покупок в Cash (убыточная)
                    QUIK.Consructor_Transactiy(19, 2, 0, 0, Parametr); // z_Sell = 0 - точка выхода из покупок в Cash (прибыльная)

                    // теперь выставляем нужные
                    QUIK.Consructor_Transactiy(1, 1, in_Sell, Plan_Volume_Position, Parametr); // in_Sell - точка входа в шорт
                }

                Stop_Sell = 0;


                if (Regim_Rabota == 1 & sistem_vector == 2)
                {
                    // выводим данные на консоль

                    Console.WriteLine(
                        "xR01" + " " +
                        Chislo_out[1] + " " +
                        Chislo_out[2] + " " +
                        "Vector_Position: " + Vector_Position + " " +
                        "Volume_Position: " + Volume_Position + " " +

                        "InSell: " + in_Sell + " " +
                        "SpotBuy: " + Stop_Bay + " " +
                        "z_Buy: " + z_Bay + " " +

                        "in_Buy: " + in_Bay + " " +
                        "Stop_Sell: " + Stop_Sell + " " +
                        "z_Sell: " + z_Sell
                        );// выводим приказ на консоль
                }

                if (Regim_Rabota == 1 & sistem_vector == 2)
                {
                    QUIK.Consructor_Transactiy(0, 1, 0, 0, Parametr); // вызов функции перенесения заявок
                }
            }



            // рассчет оценки рисков //


            if (Max_Profit < Local_Profit) // расчет планки максимального капитала
            {
                Max_Profit = Local_Profit;
            }

            Local_Drogdawn = Local_Profit - Max_Profit - 0.001m; //рассчет локальной просадки

            if (Max_Drogdawn > Local_Drogdawn)                   // расчет планки максимальной просадки
            {
                Max_Drogdawn = Local_Drogdawn;
            }

            if (Max_Drogdawn != 0)// расчет доли от максимальной просадки
            {
                Doli_Drogdawn = Local_Drogdawn / Max_Drogdawn;
            }

            str_x = "." + Sum_Sdelok.ToString() + "." + Vector_Position.ToString() + "." + Open_Position.ToString() + "." + Close_Position.ToString()
                    + "." + Stop_Sell.ToString() + "." + Shag_Bay.ToString() + "." + z_Sell.ToString()
                    + "." + z_Bay.ToString() + "." + Shag_Sell.ToString() + "." + Stop_Bay.ToString()
                    + "." + Rezultat_Sdelki.ToString() + "." + Local_Profit.ToString() + "." + Max_Profit.ToString() + "." + Local_Drogdawn.ToString() + "." + Max_Drogdawn.ToString()
                    + "." + Doli_Drogdawn.ToString() + "." + sistem_vector.ToString();

            Rezerv_Rezultat_Sdelki = Rezultat_Sdelki * Visota_Kanala;
            Rezultat_Sdelki        = 0;


            return(0);
        }