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); }