Пример #1
0
 public decimal Lot(decimal min_sum) // расчет минимального лота
 {
     market_price = 1;
     market_price = _tab.PriceCenterMarketDepth;
     min_lot      = MyBlanks.Okruglenie(min_sum / market_price, size_comma_lot.ValueInt);
     return(min_lot);
 }
Пример #2
0
        decimal Balans_kvot(string kvot_name)   // запрос квотируемых  средств (денег) в портфеле - название присваивается в kvot_name
        {
            List <PositionOnBoard> poses = _tab.Portfolio.GetPositionOnBoard();
            decimal vol_kvot             = 0;
            decimal vol_kvot_blok        = 0;

            for (int i = 0; i < poses.Count; i++)
            {
                if (poses[i].SecurityNameCode == kvot_name)
                {
                    vol_kvot      = poses[i].ValueCurrent;
                    vol_kvot_blok = poses[i].ValueBlocked;
                    break;
                }
            }
            if (vol_kvot != 0)
            {
                if (uchet_blok_sred_vkl.ValueBool == true)
                {
                    depo = vol_kvot + vol_kvot_blok;
                }
                else
                {
                    depo = vol_kvot;
                }
            }

            Console.WriteLine(" Депо сейчас  " + MyBlanks.Okruglenie(depo, 3) + " $");
            return(depo);
        }
Пример #3
0
        decimal Balans_tovara(string tovar_name)   // запрос торгуемых средств в портфеле (в BTC ) название присваивается в tovar_name
        {
            List <PositionOnBoard> poses = _tab.Portfolio.GetPositionOnBoard();
            decimal vol_instr            = 0;
            decimal vol_instr_blok       = 0;

            for (int i = 0; i < poses.Count; i++)
            {
                if (poses[i].SecurityNameCode == tovar_name)
                {
                    vol_instr      = poses[i].ValueCurrent; // текущий объем
                    vol_instr_blok = poses[i].ValueBlocked; // блокированный объем
                    break;
                }
            }
            if (vol_instr >= 0)
            {
                if (uchet_blok_sred_vkl.ValueBool == true) //
                {
                    tovar = vol_instr + vol_instr_blok;
                }
                if (uchet_blok_sred_vkl.ValueBool == false)
                {
                    tovar = vol_instr;
                }
            }
            Console.WriteLine(" Баланс товара =  " + MyBlanks.Okruglenie(tovar, 6) + " " + tovar_name + "  На  " + MyBlanks.Okruglenie(tovar * market_price, 2) + "$");
            return(tovar);
        }
Пример #4
0
 decimal VolumForPiramid() // рассчитывает объем для пирамиды
 {
     market_price = _tab.PriceCenterMarketDepth;
     Percent_tovara();
     Lot(min_sum.ValueDecimal);
     if (30 <= percent_tovara && percent_tovara < 70) // режим набора товара и ожидания прибыли
     {
         Balans_kvot(kvot_name);
         market_price = _tab.PriceCenterMarketDepth;
         decimal vol = depo / 100 * start_per_depo.ValueInt;
         if (vol <= min_sum.ValueDecimal)
         {
             return(min_lot);
         }
         return(MyBlanks.Okruglenie(vol / market_price, size_comma_lot.ValueInt));
     }
     if (start_per_depo.ValueInt <= percent_tovara && percent_tovara < 30) // режим набора товара
     {
         decimal uge = _tab.PositionsLast.MaxVolume;                       // максимальный объем в позиции
         decimal vol = uge / 2;
         if (vol <= min_lot)
         {
             return(min_lot);
         }
         else
         {
             return(MyBlanks.Okruglenie(vol, size_comma_lot.ValueInt));
         }
     }
     return(min_lot);
 }
Пример #5
0
 decimal Portfolio_sum() // расчет начального состояния портфеля по торгуемой паре
 {
     Balans_kvot(kvot_name);
     Balans_tovara(tovar_name);
     portfolio_sum = MyBlanks.Okruglenie(depo + tovar * market_price, 3);
     return(portfolio_sum);
 }
Пример #6
0
        void Piramida() // докупаем в позицию
        {
            Percent_birgi();
            Lot(min_sum.ValueDecimal);
            VolumForPiramid();
            if (vkl_piramid.ValueBool == false)
            {
                return;
            }
            List <Position> positions = _tab.PositionsOpenAll;

            if (positions.Count != 0)
            {
                decimal zen = _tab.PositionsLast.EntryPrice;
                if (market_price > zen + _kom + _do_piram)
                {
                    decimal vol = VolumForPiramid();
                    if (vol >= min_lot)
                    {
                        if (positions[0].State != PositionStateType.Opening || positions[0].State == PositionStateType.Open)
                        {
                            _tab.BuyAtMarketToPosition(positions[0], MyBlanks.Okruglenie(vol, 6));
                            Console.WriteLine(" Пирамида- докупили НА - " + MyBlanks.Okruglenie(vol * market_price, 6) + " $");
                            Price_kon_trade(); // перепроверяем цену последних сделок
                            Percent_tovara();  // смотрим процент купленного товара
                            Thread.Sleep(1500);
                        }
                    }
                }
            }
        }
Пример #7
0
        void Usrednenie() // усреднение позиций при снижении рынка
        {
            List <Position> positions = _tab.PositionsOpenAll;
            decimal         per       = Percent_birgi();

            Price_kon_trade();
            Lot(min_sum.ValueDecimal);
            decimal z = _tab.PositionsLast.EntryPrice;

            if (z > market_price + _deltaUsredn + per && bol_Down > market_price) // если цена ниже последнего трейда и выше машки
            //if (z > market_price + _deltaUsredn + per && volum_ma_short < market_price) // если цена ниже последнего трейда и выше машки
            {
                min_lot = Lot(min_sum.ValueDecimal);
                Balans_kvot(kvot_name);
                Balans_tovara(tovar_name);
                decimal v = VolumForUsred();
                if (v > min_lot)
                {
                    if (_tab.PositionsLast.MyTrades.Count != 0)
                    {
                        Price_kon_trade();
                        if (positions[0].State != PositionStateType.Opening)
                        {
                            _tab.BuyAtMarketToPosition(positions[0], MyBlanks.Okruglenie(v, 6));
                        }
                    }
                    Price_kon_trade(); // перепроверяем цену последних сделок
                    Thread.Sleep(1500);
                    Percent_tovara();  // смотрим процент купленного товара
                    Console.WriteLine("Усреднились НА - " + v * _tab.PriceBestAsk + " $");
                }
            }
        }
Пример #8
0
 public decimal Lot(decimal min_sum) // расчет минимального лота
 {
     // костыль
     market_price = 1m;
     market_price = _tab.PriceCenterMarketDepth;
     min_lot      = MyBlanks.Okruglenie(min_sum / market_price, 6);
     return(min_lot);
 }
Пример #9
0
        void Start()                      // метод с которого робот начинает работу
        {
            if (start_metod_vkl == false) // для выключения метода
            {
                return;
            }
            List <Position> positions = _tab.PositionsOpenAll;

            if (positions.Count != 0) // если есть открытые позиции старт невозможен !
            {
                Console.WriteLine(" есть открытые позиции старт невозможен ! ");
                return;
            }
            Restart_settings();  // перезапись настроек для старта
            Thread.Sleep(300);
            Lot(min_sum.ValueDecimal);
            portfolio_sum = 0;
            Portfolio_sum();           // сумма в портфеле
            start_sum = portfolio_sum; // запись старта портфеля
            Console.WriteLine(" записали сумму портфеля " + start_sum);
            decimal vol_start = MyBlanks.Okruglenie(Balans_kvot(kvot_name) / 100 * start_per_depo.ValueInt, size_comma_lot.ValueInt);

            if (vol_start > min_sum.ValueDecimal)
            {
                if (vkl_Robota.ValueBool == false) // отключение робота
                {
                    return;
                }
                if (block_in == true)
                {
                    Console.WriteLine("Включилась блокировка старта");
                    return;
                }
                if (_tab.PositionsOpenAll.Count == 0 && // нет открытых позиций
                    volum_ma_short < market_price &&    // рынок выше короткой машки
                    volum_ma_long > market_price)       // рынок ниже длинной машки

                {
                    decimal w = MyBlanks.Okruglenie(vol_start / market_price, size_comma_lot.ValueInt);
                    _tab.BuyAtLimit(w, market_price);
                    Console.WriteLine(" Стартуем ордером на = " + MyBlanks.Okruglenie(w * market_price, size_comma_lot.ValueInt) + " $ по цене " + market_price);
                    Thread.Sleep(1500);
                    Price_kon_trade(); // перепроверяем цену последних сделок
                    Percent_tovara();  // смотрим процент купленного товара
                }
            }
            else
            {
                Console.WriteLine(" Сумма для старта " + vol_start + " маловато, измени % входа или пополни баланс");
            }
            if (positions.Count != 0) // первая позиция открылась, выключаем метод
            {
                start_metod_vkl = false;
                Console.WriteLine(" выключили метод старт");
            }
        }
Пример #10
0
        void MiddleMarketVolumeCalculat() //  расчет объемов средних продаж на рынке
        {
            decimal v_1 = 0;
            decimal v_2 = 0;
            decimal v_3 = 0;

            v_1 = _vol.Values[_vol.Values.Count - 2]; // складываем последние три уже завершенные свечи
            v_2 = _vol.Values[_vol.Values.Count - 3];
            v_3 = _vol.Values[_vol.Values.Count - 4];
            middle_market_vol = MyBlanks.Okruglenie((v_1 + v_2 + v_3) / 3, 1);
        }
Пример #11
0
        decimal Percent_tovara() // расчет % объема купленного товара в портфеле
        {
            decimal st     = Portfolio_sum();
            decimal kv     = Balans_kvot(kvot_name);
            decimal rasxod = st - kv;
            decimal per    = rasxod / st * 100;

            percent_tovara = MyBlanks.Okruglenie(per, 2);
            Console.WriteLine(" процент товара сейчас " + percent_tovara);
            return(percent_tovara);
        }
Пример #12
0
        void Start()                      // метод с которого робот начинает работу
        {
            if (start_metod_vkl == false) // для выключения метода
            {
                return;
            }
            List <Position> positions = _tab.PositionsOpenAll;

            if (positions.Count != 0) // если есть открытые позиции старт невозможен !
            {
                Console.WriteLine(" есть открытые позиции старт невозможен ! ");
                return;
            }
            Payment_profit();   // рассчитываем прибыль предыдущей сделки
            Thread.Sleep(200);
            Restart_settings(); // перезапись настроек для старта
            Thread.Sleep(300);
            Lot(min_sum.ValueDecimal);
            portfolio_sum = 0;
            Portfolio_sum();           // сумма в портфеле
            start_sum = portfolio_sum; // запись старта портфеля
            Console.WriteLine(" записали сумму портфеля " + start_sum);
            market_price = _tab.PriceCenterMarketDepth;
            decimal vol_start = MyBlanks.Okruglenie(Balans_kvot(kvot_name) / 100 * start_per_depo.ValueInt, 6);

            if (vol_start > min_sum.ValueDecimal)
            {
                if (vkl_Robota.ValueBool == false) // отключение робота
                {
                    return;
                }
                if (_tab.PositionsOpenAll.Count == 0)
                {
                    decimal w = MyBlanks.Okruglenie(vol_start / market_price, 6);
                    _tab.BuyAtLimit(w, market_price);
                    Console.WriteLine(" Стартуем ордером на = " + MyBlanks.Okruglenie(w * market_price, 6) + " $ по цене " + market_price);
                    Thread.Sleep(1500);
                }
            }
            else
            {
                Console.WriteLine(" Сумма для старта " + vol_start + " маловато, измени % входа или пополни баланс");
            }
            if (positions.Count != 0) // первая позиция открылась, выключаем метод
            {
                start_metod_vkl = false;
                Console.WriteLine(" выключили метод старт");
            }
        }
Пример #13
0
        public decimal bol_Down;                                          // последние значение нижнего уровня  болинждера

        private void _tab_MarketDepthUpdateEvent(MarketDepth marketDepth) // событие стакана
        {
            market_price = _tab.PriceCenterMarketDepth;

            volum_ma_short = _ma_short.Values[_ma_short.Values.Count - 1]; // записывается значение индикатора MA
            volum_ma_long  = _ma_long.Values[_ma_long.Values.Count - 1];   // записывается значение индикатора MA

            if (volum_ma_short < market_price)
            {
                block_in = false;
                Console.WriteLine("Значение МА допустимое, блокировка старта выключена ");
            }

            Console.WriteLine(" Min Лот сейчас = " + MyBlanks.Okruglenie(Lot(min_sum.ValueDecimal), 3));

            Console.WriteLine(" комиссия равна = " + MyBlanks.Okruglenie(Percent_birgi() / 2, 5));
        }
Пример #14
0
        public decimal bol_Down;                                          // последние значение нижнего уровня  болинждера

        private void _tab_MarketDepthUpdateEvent(MarketDepth marketDepth) // событие стакана
        {
            Console.WriteLine(" Min Лот сейчас = " + MyBlanks.Okruglenie(Lot(min_sum.ValueDecimal), 3));

            Console.WriteLine(" комиссия равна = " + MyBlanks.Okruglenie(Percent_birgi() / 2, 5));

            market_price = _tab.PriceCenterMarketDepth;
            bol_Up       = _bolin.ValuesUp[_bolin.ValuesUp.Count - 2];     // последние значение верхнего уровня болинждера
            bol_Down     = _bolin.ValuesDown[_bolin.ValuesDown.Count - 2]; // последние значение нижнего уровня болинждера

            volum_ma_short = _ma_short.Values[_ma_short.Values.Count - 1]; // записывается значение индикатора MA
            volum_ma_long  = _ma_long.Values[_ma_long.Values.Count - 1];   // записывается значение индикатора MA

            if (volum_ma_short < market_price)
            {
                block_in = false;
                Console.WriteLine("Значение МА допустимое, блокировка старта выключена ");
            }
        }
Пример #15
0
        decimal VolumForUsred() // рассчитывает объем для усреднения покупок
        {
            Balans_kvot(kvot_name);
            market_price = _tab.PriceCenterMarketDepth;
            decimal uge = _tab.PositionsLast.MaxVolume;       // максимальный объем в позиции
            decimal dob = uge * velich_usrednen.ValueDecimal; // добавляем объема
            decimal vol = uge + dob;

            if (depo / market_price <= vol)
            {
                decimal d1 = depo / market_price - 5 * min_lot;
                if (d1 > min_lot)
                {
                    return(d1);
                }
                return(min_lot);
            }
            else
            {
                return(MyBlanks.Okruglenie(vol, size_comma_lot.ValueInt));
            }
        }
Пример #16
0
        void Switching_mode()                                                                                // метод переключения режимов работы
        {
            decimal greed_average = MyBlanks.Okruglenie(greed_max.ValueDecimal + greed.ValueDecimal / 2, 2); // расчет среднего значения жадности

            Percent_tovara();

            if (pir_of.ValueDecimal <= percent_tovara) // место отключения режима пирамида
            {
                vkl_piramid.ValueBool = false;
                Console.WriteLine(" после набора " + pir_of.ValueDecimal + " %  отключили  режим набора пирамидой");
            }
            if (prof_on.ValueDecimal <= percent_tovara) // место включения режима профит
            {
                sav_profit_metod_vkl = true;
                Console.WriteLine(" после набора " + prof_on.ValueDecimal + " %  включили  режим  сохранения прибыли ");
            }

            if (middle_market_vol <= sprint.ValueInt) // режим обычной торговли
            {
                Console.WriteLine(" РЕЖИМ Обычный ");
                if (70 <= percent_tovara && percent_tovara < 90) //  режим фиксации прибыли
                {
                    Console.WriteLine(" включился режим фиксации прибыли от 70 %");
                    profit.ValueInt = 4;
                    Console.WriteLine(" до профита " + profit.ValueInt);
                    _deltaUsredn = deltaUsredn.ValueDecimal * 3.5m;
                    Console.WriteLine("Расстояние до Усреднения теперь " + _deltaUsredn);
                    _temp_greed = greed_max.ValueDecimal;
                    Console.WriteLine("Жадность теперь " + _temp_greed);
                }
                if (50 <= percent_tovara && percent_tovara < 70) // режим разворота и ожидания прибыли
                {
                    Console.WriteLine(" включился режим разворота и ожидания прибыли до 70 %");
                    Console.WriteLine(" включили метод выставления профита");
                    profit.ValueInt = 6;
                    Console.WriteLine(" до профита " + profit.ValueInt);
                    _do_piram = do_piram.ValueDecimal * 2m;
                    Console.WriteLine(" расстояние до пирамиды изменено на " + _do_piram);
                    _deltaUsredn = deltaUsredn.ValueDecimal * 3;
                    Console.WriteLine("Расстояние до Усреднения теперь " + _deltaUsredn);
                    _temp_greed = greed_average; //  средняя жадность
                    Console.WriteLine("Жадность теперь " + _temp_greed);
                }
                if (prof_on.ValueDecimal <= percent_tovara && percent_tovara < 50) // режим набора товара и ожидания прибыли
                {
                    sav_profit_metod_vkl = true;
                    Console.WriteLine(" включился режим набора товара от " + prof_on.ValueDecimal + " до 50%");
                    profit.ValueInt = 8;
                    Console.WriteLine(" до профита " + profit.ValueInt);
                    _do_piram = do_piram.ValueDecimal * 1.5m;
                    Console.WriteLine(" расстояние до пирамиды изменено на " + _do_piram);
                    _deltaUsredn = deltaUsredn.ValueDecimal * 2;
                    Console.WriteLine("Расстояние до Усреднения теперь " + _deltaUsredn);
                    _temp_greed = greed.ValueDecimal;
                    Console.WriteLine("Жадность теперь " + _temp_greed);
                }
                if (start_per_depo.ValueInt <= percent_tovara && percent_tovara < prof_on.ValueDecimal) // режим набора товара
                {
                    Console.WriteLine(" включился режим набора товара до " + prof_on.ValueDecimal + " %");
                    _do_piram = do_piram.ValueDecimal / 2;
                    Console.WriteLine(" расстояние до пирамиды " + _do_piram);
                    _deltaUsredn = deltaUsredn.ValueDecimal / 2;
                    Console.WriteLine("Расстояние до Усреднения " + _deltaUsredn);
                    _temp_greed = greed.ValueDecimal;
                    Console.WriteLine("Жадность теперь " + _temp_greed);
                }
            }    // настройки обычного режима
            else //  настройки turbo режим- рынок с большими объемами
            {
                Console.WriteLine(" СКОРОСТНОЙ РЕЖИМ Рынка");
                if (70 <= percent_tovara && percent_tovara < 90) //  режим фиксации прибыли
                {
                    Console.WriteLine(" включился режим фиксации прибыли от 70 %");
                    profit.ValueInt = 4;
                    Console.WriteLine(" до профита " + profit.ValueInt);
                    _deltaUsredn = deltaUsredn.ValueDecimal * 4m + turbo_shift.ValueDecimal;
                    Console.WriteLine("Расстояние до Усреднения теперь " + _deltaUsredn);
                    _temp_greed = greed_max.ValueDecimal + 0.25m;
                    Console.WriteLine("Жадность теперь " + _temp_greed);
                }
                if (50 <= percent_tovara && percent_tovara < 70) // режим разворота и ожидания прибыли
                {
                    Console.WriteLine(" включился режим разворота и ожидания прибыли до 70 %");
                    Console.WriteLine(" включили метод выставления профита");
                    profit.ValueInt = 6;
                    Console.WriteLine(" до профита " + profit.ValueInt);
                    _do_piram = do_piram.ValueDecimal * 2m;
                    Console.WriteLine(" расстояние до пирамиды изменено на " + _do_piram);
                    _deltaUsredn = deltaUsredn.ValueDecimal * 3 + turbo_shift.ValueDecimal;
                    Console.WriteLine("Расстояние до Усреднения теперь " + _deltaUsredn);
                    _temp_greed = greed_average + 0.15m; //  средняя жадность
                    Console.WriteLine("Жадность теперь " + _temp_greed);
                }
                if (prof_on.ValueDecimal <= percent_tovara && percent_tovara < 50) // режим набора товара и ожидания прибыли
                {
                    sav_profit_metod_vkl = true;
                    Console.WriteLine(" включился режим набора товара от " + prof_on.ValueDecimal + " до 50%");
                    profit.ValueInt = 8;
                    Console.WriteLine(" до профита " + profit.ValueInt);
                    _do_piram = do_piram.ValueDecimal * 1.5m;
                    Console.WriteLine(" расстояние до пирамиды изменено на " + _do_piram);
                    _deltaUsredn = deltaUsredn.ValueDecimal * 2 + turbo_shift.ValueDecimal;
                    Console.WriteLine("Расстояние до Усреднения теперь " + _deltaUsredn);
                    _temp_greed = greed.ValueDecimal + 0.1m;
                    Console.WriteLine("Жадность теперь " + _temp_greed);
                }
                if (start_per_depo.ValueInt <= percent_tovara && percent_tovara < prof_on.ValueDecimal) // режим набора товара
                {
                    Console.WriteLine(" включился режим набора товара до " + prof_on.ValueDecimal + " %");
                    _do_piram = do_piram.ValueDecimal / 2;
                    Console.WriteLine(" расстояние до пирамиды " + _do_piram);
                    _deltaUsredn = deltaUsredn.ValueDecimal / 2;
                    Console.WriteLine("Расстояние до Усреднения " + _deltaUsredn);
                    _temp_greed = greed.ValueDecimal;
                    Console.WriteLine("Жадность теперь " + _temp_greed);
                }
            }
        }
Пример #17
0
        void Switching_mode()                                                                                // метод переключения режимов работы
        {
            decimal greed_average = MyBlanks.Okruglenie(greed_max.ValueDecimal + greed.ValueDecimal / 2, 2); // расчет среднего значения жадности

            Percent_tovara();

            decimal g = Greed(); // вычисляет жадность

            Console.WriteLine(" Жадность g = " + MyBlanks.Okruglenie(g, 3));

            _do_profit_temp = MyBlanks.Okruglenie(profit.ValueInt / g, 2); // динамическое вычисление расстояния до профит ордера
            Console.WriteLine(" До профит ордера расстояние = " + _do_profit_temp);

            if (pir_of.ValueDecimal <= percent_tovara) // место отключения режима пирамида
            {
                vkl_piramid.ValueBool = false;
                Console.WriteLine(" после набора " + pir_of.ValueDecimal + " %  отключили  режим набора пирамидой");
            }
            if (prof_on.ValueDecimal <= percent_tovara) // место включения режима профит
            {
                sav_profit_metod_vkl = true;
                Console.WriteLine(" после набора " + prof_on.ValueDecimal + " %  включили  режим  сохранения прибыли ");
            }

            if (middle_market_vol <= sprint.ValueInt) // режим обычной торговли
            {
                Console.WriteLine(" РЕЖИМ Обычный ");

                _do_piram = do_piram.ValueDecimal * percent_tovara / 10;
                Console.WriteLine(" расстояние до пирамиды изменено на " + _do_piram);
                _deltaUsredn = deltaUsredn.ValueDecimal * percent_tovara / 10;
                Console.WriteLine("Расстояние до Усреднения теперь " + _deltaUsredn);

                _tmpArarm = volum_alarm.ValueInt;
                Console.WriteLine(" аварийный объем = " + _tmpArarm);
                if (70 <= percent_tovara && percent_tovara < 90) //  режим фиксации прибыли
                {
                    Console.WriteLine(" включился режим фиксации прибыли от 70 %");
                    _temp_greed = greed_max.ValueDecimal;
                    Console.WriteLine("Жадность теперь " + _temp_greed);
                }
                if (50 <= percent_tovara && percent_tovara < 70) // режим разворота и ожидания прибыли
                {
                    Console.WriteLine(" включился режим разворота и ожидания прибыли до 70 %");
                    _temp_greed = greed_average; //  средняя жадность
                    Console.WriteLine("Жадность теперь " + _temp_greed);
                }
                if (prof_on.ValueDecimal <= percent_tovara && percent_tovara < 50) // режим набора товара и ожидания прибыли
                {
                    sav_profit_metod_vkl = true;
                    Console.WriteLine(" включился режим набора товара от " + prof_on.ValueDecimal + " до 50%");
                    _temp_greed = greed.ValueDecimal;
                    Console.WriteLine("Жадность теперь " + _temp_greed);
                }
                if (start_per_depo.ValueInt / 2 <= percent_tovara && percent_tovara < prof_on.ValueDecimal) // режим набора товара
                {
                    Console.WriteLine(" включился режим набора товара до " + prof_on.ValueDecimal + " %");
                    _temp_greed = greed.ValueDecimal;
                    Console.WriteLine("Жадность теперь " + _temp_greed);
                }
            }    // настройки обычного режима
            else //  настройки turbo режим- рынок с большими объемами
            {
                Console.WriteLine(" СКОРОСТНОЙ РЕЖИМ Рынка");

                _do_piram = do_piram.ValueDecimal * percent_tovara / 10 + turbo_shift.ValueDecimal;
                Console.WriteLine(" расстояние до пирамиды изменено на " + _do_piram);
                _deltaUsredn = deltaUsredn.ValueDecimal * percent_tovara / 10 + turbo_shift.ValueDecimal;
                Console.WriteLine("Расстояние до Усреднения теперь " + _deltaUsredn);

                _tmpArarm = volum_alarm.ValueInt * 2;            // аварийный объем увеличили в два раза
                Console.WriteLine(" аварийный объем увеличили в два раза = " + _tmpArarm);
                if (70 <= percent_tovara && percent_tovara < 90) //  режим фиксации прибыли
                {
                    Console.WriteLine(" включился режим фиксации прибыли от 70 %");
                    _temp_greed = greed_max.ValueDecimal + 0.25m;
                    Console.WriteLine("Жадность теперь " + _temp_greed);
                }
                if (50 <= percent_tovara && percent_tovara < 70) // режим разворота и ожидания прибыли
                {
                    Console.WriteLine(" включился режим разворота и ожидания прибыли до 70 %");
                    _temp_greed = greed_average + 0.15m; //  средняя жадность
                    Console.WriteLine("Жадность теперь " + _temp_greed);
                }
                if (prof_on.ValueDecimal <= percent_tovara && percent_tovara < 50) // режим набора товара и ожидания прибыли
                {
                    sav_profit_metod_vkl = true;
                    Console.WriteLine(" включился режим набора товара от " + prof_on.ValueDecimal + " до 50%");
                    _temp_greed = greed.ValueDecimal + 0.1m;
                    Console.WriteLine("Жадность теперь " + _temp_greed);
                }
                if (start_per_depo.ValueInt / 2 <= percent_tovara && percent_tovara < prof_on.ValueDecimal) // режим набора товара
                {
                    Console.WriteLine(" включился режим набора товара до " + prof_on.ValueDecimal + " %");
                    _temp_greed = greed.ValueDecimal;
                    Console.WriteLine("Жадность теперь " + _temp_greed);
                }
            }
        }