Beispiel #1
0
        public SmaStochastic(string name, StartProgram startProgram)
            : base(name, startProgram)
        {
            TabCreate(BotTabType.Simple);
            _tab = TabsSimple[0];

            _sma = new MovingAverage(name + "Sma", false);
            _sma = (MovingAverage)_tab.CreateCandleIndicator(_sma, "Prime");
            _sma.Save();

            _stoc = new StochasticOscillator(name + "ST", false);
            _stoc = (StochasticOscillator)_tab.CreateCandleIndicator(_stoc, "StocArea");
            _stoc.Save();

            _tab.CandleFinishedEvent += Strateg_CandleFinishedEvent;

            Slipage   = 0;
            VolumeFix = 1;
            Step      = 500;
            Upline    = 70;
            Downline  = 30;


            Load();


            DeleteEvent += Strategy_DeleteEvent;
        }
Beispiel #2
0
        /// <summary>
        /// конструктор
        /// </summary>
        public StrategyBollinger(string name, StartProgram startProgram)
            : base(name, startProgram)
        {
            TabCreate(BotTabType.Simple);
            _tab = TabsSimple[0];

            _bollinger = new Bollinger(name + "Bollinger", false);
            _bollinger = (Bollinger)_tab.CreateCandleIndicator(_bollinger, "Prime");
            _bollinger.Save();

            _moving = new MovingAverage(name + "Moving", false)
            {
                Lenght = 15
            };
            _moving = (MovingAverage)_tab.CreateCandleIndicator(_moving, "Prime");
            _moving.Save();

            _tab.CandleFinishedEvent += Bot_CandleFinishedEvent;

            Slipage = 0;
            Volume  = 1;
            Regime  = BotTradeRegime.On;

            DeleteEvent += Strategy_DeleteEvent;

            Load();
        }
Beispiel #3
0
        private StrategyParameterInt size_comma_lot;                                      // допустимое количество знаков лота после запятой

        public Frank_2(string name, StartProgram startProgram) : base(name, startProgram) // конструктор
        {
            TabCreate(BotTabType.Simple);                                                 // создание простой вкладки
            _tab       = TabsSimple[0];                                                   // записываем первую вкладку в поле
            kvot_name  = "USDT";                                                          // тут надо указать - инициализировать название квотируемой валюты (деньги)
            tovar_name = "ETH";                                                           // тут надо указать - инициализировать название товара

            vkl_Robota            = CreateParameter("РОБОТ Включен?", false);
            slippage              = CreateParameter("Велич. проскаль.у ордеров", 1m, 1m, 200m, 5m);
            profit                = CreateParameter("ТЭЙКПРОФИТ от рынка На ", 20, 5, 50, 5);
            greed                 = CreateParameter("Сколько минимум прибыли ожидать в сделке на каждые 100$ ", 0.55m, 0.25m, 5.5m, 0.05m);  // жадность
            greed_max             = CreateParameter("Сколько Максимум прибыли ожидать в сделке на каждые 100$ ", 1.25m, 0.25m, 5.5m, 0.05m); // жадность
            velich_usrednen       = CreateParameter("Усред.уваелич в раз ", 0.01m, 0.01m, 0.5m, 0.01m);
            do_piram              = CreateParameter(" РАСТ. до Пирамиды", 20m, 5m, 200m, 5m);
            turbo_shift           = CreateParameter(" Turbo добавлять", 50m, 5m, 200m, 5m);
            pir_of                = CreateParameter(" ОТКлючить  Пирамиду при % товара", 10m, 5m, 100m, 5m);
            vkl_piramid           = CreateParameter("Пирамида включена?", false);
            prof_on               = CreateParameter("Забирать профит с % ", 10m, 5m, 100m, 5m);
            ckok_profit_stop      = CreateParameter("Сколько ПРИБЫЛИ закрывать стоп ордером? ", 0.5m, 0.01m, 10m, 0.01m);
            vkl_stopa             = CreateParameter("Стоп Включен?", true);
            deltaUsredn           = CreateParameter("УСРЕДнять через", 20m, 5m, 50m, 5m);
            start_per_depo        = CreateParameter("СТАРТОВАТЬ со ? % депо)", 5, 5, 20, 5);
            min_sum               = CreateParameter("МИН сумма орд.на бирже($)", 10.1m, 10.1m, 10.1m, 10.1m);
            komis_birgi           = CreateParameter("КОМ биржи в %", 0.2m, 0, 0.1m, 0.1m);
            uchet_blok_sred_vkl   = CreateParameter("Учитывать блокир. средства?", false);
            n_min                 = CreateParameter("зависание снимать через N минут ", 1, 1, 20, 1);
            volum_alarm           = CreateParameter("АВАРИЙНЫЙ ОБЪЕМ ПРОДАЖ", 555, 150, 1000, 50);
            kpit_sum              = CreateParameter("Закр. Позицию с УБЫТОКОМ от ", -1m, 10.1m, 10.1m, 10.1m);
            vkl_met_fix_loss_time = CreateParameter("Закрываться в убыток по времени? ", true);
            vkl_alarm_volum       = CreateParameter("Убыток по ОБЪЕМАМ Закрывать ? ", false);
            Itogo                 = CreateParameter("Итого Заработано ", 0m, 0m, 0m, 0m);
            n_min_lesion          = CreateParameter("Закрывать убыток через N минут ", 120, 30, 360, 20);
            sprint                = CreateParameter("Большие объемы это когда больше = ", 101, 50, 200, 50);
            alarn_persent         = CreateParameter("% купленного можно сливать = ", 5, 50, 100, 1);
            size_comma_lot        = CreateParameter("Допустимое знак после запятой", 6, 1, 6, 1);

            block_in = true;  // инициализируем значение блокировки

            _ma_short        = new MovingAverage(name + "Ma5", false);
            _ma_short        = (MovingAverage)_tab.CreateCandleIndicator(_ma_short, "Prime");
            _ma_short.Lenght = 5; // присвоение значения
            _ma_short.Save();

            _ma_long        = new MovingAverage(name + "Ma20", false);
            _ma_long        = (MovingAverage)_tab.CreateCandleIndicator(_ma_long, "Prime");
            _ma_long.Lenght = 20; // присвоение значения
            _ma_long.Save();

            _vol = new Volume(name + "Volum", false);
            _vol = (Volume)_tab.CreateCandleIndicator(_vol, "nameArea");
            _vol.Save();

            _tab.BestBidAskChangeEvent        += _tab_BestBidAskChangeEvent;        // событие изменения лучших цен
            _tab.OrderUpdateEvent             += _tab_OrderUpdateEvent;             // событие обновления ордеров
            _tab.MarketDepthUpdateEvent       += _tab_MarketDepthUpdateEvent;       // пришел новый стакан
            _tab.PositionNetVolumeChangeEvent += _tab_PositionNetVolumeChangeEvent; // у позиции изменился объем
            _tab.PositionClosingSuccesEvent   += _tab_PositionClosingSuccesEvent;   // позиция успешно закрыта
            _tab.NewTickEvent += _tab_NewTickEvent;                                 // событие новых тиков
        } // конструктор
Beispiel #4
0
        public RsiContrtrend(string name, StartProgram startProgram)
            : base(name, startProgram)
        {
            TabCreate(BotTabType.Simple);
            _tab = TabsSimple[0];

            _ma = new MovingAverage(name + "MA", false)
            {
                Lenght = 50, ColorBase = Color.CornflowerBlue,
            };
            _ma = (MovingAverage)_tab.CreateCandleIndicator(_ma, "Prime");

            _rsi = new Rsi(name + "RSI", false)
            {
                Lenght = 20, ColorBase = Color.Gold,
            };
            _rsi = (Rsi)_tab.CreateCandleIndicator(_rsi, "RsiArea");

            Upline = new LineHorisontal("upline", "RsiArea", false)
            {
                Color = Color.Green,
                Value = 0,
            };
            _tab.SetChartElement(Upline);

            Downline = new LineHorisontal("downline", "RsiArea", false)
            {
                Color = Color.Yellow,
                Value = 0
            };
            _tab.SetChartElement(Downline);

            _rsi.Save();
            _ma.Save();

            _tab.CandleFinishedEvent += Strateg_CandleFinishedEvent;

            Slipage        = 0;
            VolumeFix      = 1;
            Upline.Value   = 65;
            Downline.Value = 35;


            Load();

            Upline.TimeEnd   = DateTime.Now;
            Downline.TimeEnd = DateTime.Now;

            DeleteEvent += Strategy_DeleteEvent;
        }
Beispiel #5
0
        public decimal chah_price;                            // хранить шах цены

        public Ver_01(string name, StartProgram startProgram) // это конструктор робота
            : base(name, startProgram)
        {
            Load();                                                                 // загрузка настроек
            old_vol_dv = dola_depa;                                                 // стартовая инициализация частей входа берем из файла

            TabCreate(BotTabType.Simple);                                           // создание простой вкладки
            _vkl = TabsSimple[0];
            _vkl.MarketDepthUpdateEvent       += _vkl_MarketDepthUpdateEvent;       // событие нового стакана
            _vkl.PositionNetVolumeChangeEvent += _vkl_PositionNetVolumeChangeEvent; // событие изменения обьема в позиции
            _vkl.CandleFinishedEvent          += _vkl_CandleFinishedEvent;
            _machka        = new MovingAverage("Macha", false);
            _machka.Lenght = vel_machki;
            _machka        = (MovingAverage)_vkl.CreateCandleIndicator(_machka, "Prime");
            _machka.Save();
        }
        public event Action <MarketFaze> MarketFazeChangeEvent; // событие изменения фазы рынка

        #endregion

        /// <summary>
        /// Конструктор класса робота
        /// </summary>
        /// <param name="name">имя робота</param>
        /// <param name="startProgram">программа, которая запустила робота</param>
        public OneLegArbitrageMy(string name, StartProgram startProgram) : base(name, startProgram)
        {
            //Запоминаем имя программы, которая запустила бота
            //Это может быть тестер, оптимизатор, терминал
            _startProgram = startProgram;

            //Создаем вкладки бота
            TabCreate(BotTabType.Simple);
            TabCreate(BotTabType.Index);

            _tabSec   = TabsSimple[0];
            _tabIndex = TabsIndex[0];

            // создаем настроечные параметры робота
            LenghtMa           = CreateParameter("Lenght MA", 100, 50, 200, 10);
            LenghtBollinger    = CreateParameter("Lenght Bollinger", 100, 50, 200, 10);
            DeviationBollinger = CreateParameter("Deviation Bollinger", 1, 0.5m, 2.5m, 0.5m);
            LenghtAtr          = CreateParameter("Lenght ATR", 20, 20, 100, 10);
            MultiplyAtr        = CreateParameter("Multiplay ATR", 1, 1, 5, 0.5m);

            // cоздаем индикаторы
            _ma        = new MovingAverage(name + "MA", false);
            _ma        = (MovingAverage)_tabIndex.CreateCandleIndicator(_ma, "Prime");
            _ma.Lenght = LenghtMa.ValueInt;
            _ma.Save();

            _bollinger           = new Bollinger(name + "Bollinger", false);
            _bollinger           = (Bollinger)_tabIndex.CreateCandleIndicator(_bollinger, "Prime");
            _bollinger.Lenght    = LenghtBollinger.ValueInt;
            _bollinger.Deviation = DeviationBollinger.ValueDecimal;
            _bollinger.Save();

            _atr        = new Atr(name + "ATR", false);
            _atr        = (Atr)_tabIndex.CreateCandleIndicator(_atr, "Second");
            _atr.Lenght = LenghtAtr.ValueInt;
            _atr.Save();

            // загружаем настроечные параметры робота
            Load();

            // подписываемся на события
            _tabIndex.SpreadChangeEvent += TabIndex_SpreadChangeEvent;
            _tabSec.CandleFinishedEvent += TabSec_CandleFinishedEvent;
            ParametrsChangeByUser       += OneLegArbitrage_ParametrsChangeByUser;
            DeleteEvent += OneLegArbitrage_DeleteEvent;
            //todo доработать OneLegArbitrage_DeleteEvent, чтобы удалялись все файлы робота
        }
Beispiel #7
0
        public EnvelopFlatBitmex(string name, StartProgram startProgram) : base(name, startProgram)
        {
            TabCreate(BotTabType.Simple);
            _tab = TabsSimple[0];

            _tab.CandleFinishedEvent        += _tab_CandleFinishedEvent;
            _tab.PositionOpeningSuccesEvent += _tab_PositionOpeningSuccesEvent;
            _tab.PositionClosingSuccesEvent += _tab_PositionClosingSuccesEvent;
            _envelop = new Envelops(name + "Envelop", false);
            _envelop = (Envelops)_tab.CreateCandleIndicator(_envelop, "Prime");
            _envelop.Save();

            this.ParametrsChangeByUser += EnvelopTrendBitmex_ParametrsChangeByUser;
            Regime              = CreateParameter("Regime", "Off", new[] { "Off", "On" });
            Slippage            = CreateParameter("Slippage", 0, 0, 20, 1);
            Volume              = CreateParameter("Volume", 0.1m, 0.1m, 50, 0.1m);
            EnvelopDeviation    = CreateParameter("Envelop Deviation", 0.3m, 0.3m, 4, 0.1m);
            EnvelopMovingLength = CreateParameter("Envelop Moving Length", 10, 10, 200, 5);
            TrailStop           = CreateParameter("Trail Stop", 0.1m, 0m, 5, 0.1m);
            MinProfitTraling    = CreateParameter("Минимальный профит для трэйлинга", 0.2m, 0.2m, 2, 0.1m);
            leverage            = CreateParameter("Маржинальное плечо", 0.1m, 0.1m, 10, 0.1m);
            MaxStop             = CreateParameter("MaxStop", 1, 1, 10, 0.1m);
            isContract          = CreateParameter("Торгуем контрактами", false);
            DepoCurrency        = CreateParameter("DepoCurrency", "Currency2", new[] { "Currency1", "Currency2" });

            VolMaFast = new MovingAverage(name + "VolMaFast", false)
            {
                ColorBase = System.Drawing.Color.Yellow, Lenght = 10, TypePointsToSearch = PriceTypePoints.Volume
            };
            VolMaFast        = (MovingAverage)_tab.CreateCandleIndicator(VolMaFast, "New1");
            VolMaFast.Lenght = (int)(EnvelopMovingLength.ValueInt);
            VolMaFast.Save();

            VolMaSlow = new MovingAverage(name + "VolMaSlow", false)
            {
                ColorBase = System.Drawing.Color.Green, TypePointsToSearch = PriceTypePoints.Volume
            };
            VolMaSlow        = (MovingAverage)_tab.CreateCandleIndicator(VolMaSlow, "New1");
            VolMaSlow.Lenght = (int)(VolMaFast.Lenght * 10);
            VolMaSlow.Save();

            _envelop.Deviation            = EnvelopDeviation.ValueDecimal;
            _envelop.MovingAverage.Lenght = EnvelopMovingLength.ValueInt;

            CanTrade = false;
        }
Beispiel #8
0
        /// <summary>
        /// Конструктор класса робота
        /// </summary>
        /// <param name="name">Имя робота</param>
        /// <param name="startProgram">Имя программы, запустившей робота</param>
        public PairArbitrage(string name, StartProgram startProgram) : base(name, startProgram)
        {
            // сохраняем программу, которая запустила робота
            // это может быть тестер, оптимизатор, терминал
            _startProgram = StartProgram;

            // создаем вкладки
            TabCreate(BotTabType.Simple);
            TabCreate(BotTabType.Simple);
            TabCreate(BotTabType.Index);
            _tab1     = TabsSimple[0];
            _tab2     = TabsSimple[1];
            _tabIndex = TabsIndex[0];

            // создаем оптимизируемые параметры
            LenghtMA             = CreateParameter("LenghtMA", 60, 60, 200, 20);
            LenghtIvashovMA      = CreateParameter("LenghtIvashovMA", 100, 60, 200, 20);
            LenghtIvashovAverage = CreateParameter("LenghtIvashovAverage", 100, 60, 200, 20);
            Multiply             = CreateParameter("Multiply", 1.0m, 0.6m, 2, 0.2m);

            // создаем индикаторы
            _ma        = new MovingAverage(name + "ma", false);
            _ma        = (MovingAverage)_tabIndex.CreateCandleIndicator(_ma, "Prime");
            _ma.Lenght = LenghtMA.ValueInt;
            _ma.Save();

            _ivashov = new IvashovRange(name + "ivashov", false);
            _ivashov = (IvashovRange)_tabIndex.CreateCandleIndicator(_ivashov, "Second");
            _ivashov.LenghtAverage = LenghtIvashovAverage.ValueInt;
            _ivashov.LenghtMa      = LenghtIvashovMA.ValueInt;
            _ivashov.Save();

            // загружаем настроечные параметры бота
            Load();

            // подписка на событие обновление индекса
            _tabIndex.SpreadChangeEvent += _tabIndex_SpreadChangeEvent;

            // подписка на событие успешного открытия сделки по вкладкам
            _tab1.PositionOpeningSuccesEvent += _tab1_PositionOpeningSuccesEvent;
            _tab2.PositionOpeningSuccesEvent += _tab2_PositionOpeningSuccesEvent;

            // подписка на сервисные события
            ParametrsChangeByUser += PairArbitrage_ParametrsChangeByUser;
            DeleteEvent           += Strategy_DeleteEvent;
        }
        public EnvelopCountertrend(string name, StartProgram startProgram) : base(name, startProgram)
        {
            TabCreate(BotTabType.Simple);
            _tab = TabsSimple[0];

            _tab.CandleFinishedEvent        += _tab_CandleFinishedEvent;
            _tab.PositionOpeningSuccesEvent += _tab_PositionOpeningSuccesEvent;
            _tab.PositionClosingSuccesEvent += _tab_PositionClosingSuccesEvent;
            this.ParametrsChangeByUser      += EnvelopCountertrend_ParametrsChangeByUser;


            Regime              = CreateParameter("Regime", "Off", new[] { "Off", "On", "OnlyClosePosition", "OnlyShort", "OnlyLong" });
            Slippage            = CreateParameter("Slippage", 0, 0, 20, 1);
            EnvelopDeviation    = CreateParameter("Envelop Deviation", 0.3m, 5m, 10, 0.3m);
            EnvelopMovingLength = CreateParameter("Envelop Moving Length", 10, 5, 200, 5);


            leverage       = CreateParameter("Маржинальное плечо", 1m, 1m, 10, 0.1m);
            DepoCurrency   = CreateParameter("DepoCurrency", "Currency2", new[] { "Currency1", "Currency2" });
            isContract     = CreateParameter("Торгуем контрактами", false);
            MaxStop        = CreateParameter("MaxStop", 1, 25, 30, 0.1m);
            SmaLength      = CreateParameter("SmaLength", 10, 5, 150, 2);
            VolumeDecimals = CreateParameter("Volume Decimals", 0, 0, 20, 1);

            MinVolume   = CreateParameter("MinVolume", 1, 1, 10000, 0.0001m);
            MaxPosition = CreateParameter("Макс. открытых позиций", 1, 1, 10, 1);

            _sma        = new MovingAverage(name + "_sma", false);
            _sma        = (MovingAverage)_tab.CreateCandleIndicator(_sma, "Prime");
            _sma.Lenght = SmaLength.ValueInt;
            _sma.Save();

            _envelop                      = new Envelops(name + "Envelop", false);
            _envelop                      = (Envelops)_tab.CreateCandleIndicator(_envelop, "Prime");
            _envelop.Deviation            = EnvelopDeviation.ValueDecimal;
            _envelop.MovingAverage.Lenght = EnvelopMovingLength.ValueInt;
            _envelop.Save();

            DeleteEvent += Strategy_DeleteEvent;

            Thread worker = new Thread(Logic);

            worker.IsBackground = true;
            worker.Start();
        }
Beispiel #10
0
        public MovingChanelFlat(string name, StartProgram startProgram) : base(name, startProgram)
        {
            TabCreate(BotTabType.Simple);
            _tab = TabsSimple[0];

            _tab.CandleFinishedEvent        += _tab_CandleFinishedEvent;
            _tab.PositionOpeningSuccesEvent += _tab_PositionOpeningSuccesEvent;
            _tab.PositionClosingSuccesEvent += _tab_PositionClosingSuccesEvent;

            _movingChanel = new MovingChanel(name + "MovingChanel", false);
            _movingChanel = (MovingChanel)_tab.CreateCandleIndicator(_movingChanel, "Prime");
            _movingChanel.Save();

            this.ParametrsChangeByUser += _ParametrsChangeByUser;
            Regime   = CreateParameter("Regime", "Off", new[] { "Off", "On" });
            Slippage = CreateParameter("Slippage", 0, 0, 20, 1);
            Volume   = CreateParameter("Volume", 0.1m, 0.1m, 50, 0.1m);
            MovingChanelDeviation    = CreateParameter("MovingChanel Deviation", 3m, 1m, 300, 10m);
            MovingChanelMovingLength = CreateParameter("MovingChanel Moving Length", 9, 3, 300, 1);

            TrailStop        = CreateParameter("Trail Stop", 0.1m, 0m, 5, 0.1m);
            TralingMaLenth   = CreateParameter("Размр скользящей трэлинга", 1, 1, 100, 1);
            MinProfitTraling = CreateParameter("Минимальный профит для трэйлинга", 0.2m, 0.2m, 2, 0.1m);

            leverage     = CreateParameter("Маржинальное плечо", 0.1m, 0.1m, 10, 0.1m);
            MaxStop      = CreateParameter("MaxStop", 0.1m, 0.1m, 10, 0.1m);
            isContract   = CreateParameter("Торгуем контрактами", false);
            DepoCurrency = CreateParameter("DepoCurrency", "Currency2", new[] { "Currency1", "Currency2" });


            _movingChanel.Deviation = MovingChanelDeviation.ValueDecimal;
            _movingChanel.MaLenth   = MovingChanelMovingLength.ValueInt;

            TabCreate(BotTabType.Simple);
            _tabFast = TabsSimple[1];
            _tabFast.CandleFinishedEvent += _tabFast_CandleFinishedEvent;

            TralingMA        = new MovingAverage(name + "TralingMA", false);
            TralingMA        = (MovingAverage)_tabFast.CreateCandleIndicator(TralingMA, "Prime");
            TralingMA.Lenght = TralingMaLenth.ValueInt;
            TralingMA.Save();
            TrendCandleCount = 24;
            CanTrade         = false;
        }
Beispiel #11
0
        public decimal price;                                  // записываем текущую цену рынка

        public Depozit(string name, StartProgram startProgram) // конструктор робота
            : base(name, startProgram)
        {
            // инициализация переменных содержащих параметры стратегий
            vkl_Robota       = CreateParameter("РОБОТ Включен?", false);
            slippage         = CreateParameter("Велич. проскаль.у ордеров", 1m, 1m, 50m, 5m);
            profit           = CreateParameter("ТЭЙКПРОФИТ от рынка На ", 15, 5, 50, 5);
            vkl_profit       = CreateParameter("ТЕЙКПРОФИТ включен ЛИ ?", true);
            veli4_usrednen   = CreateParameter("Усред.уваелич в раз ", 0.3m, 1m, 5m, 0.1m);
            vkl_usrednen     = CreateParameter("УСРЕДНЕНИЕ включено ЛИ?", true);
            deltaUsredn      = CreateParameter("УСРЕДнять через", 10m, 5m, 50m, 5m);
            dola_depa        = CreateParameter("Часть депозита на вход", 10, 5, 100, 1);
            vkl_piramid      = CreateParameter("ПИРАМИДА Включена ЛИ?", false);
            deltaVerx        = CreateParameter("ПИРАМИДИТЬСЯ через ", 10m, 5m, 50m, 5m);
            vkl_stop_los     = CreateParameter("Включен ЛИ СТОПЛОС ?", true);
            zn_stop_los      = CreateParameter("СТОП после скок УСРЕД ", 10, 5, 50, 5);
            stop             = CreateParameter("СТОПЛОС ниже на", 25, 5, 100, 5);
            vel_ma           = CreateParameter("MA", 7, 3, 50, 1); // записываем в переменную параметры
            komis_birgi      = CreateParameter("Биржа ЕСТ % учесть", 0.2m, 1m, 1m, 1m);
            min_lot          = CreateParameter("МИН объ.орд у биржи(базовой)", 0.001m, 0.001m, 0.05m, 0.001m);
            vkl_vol_trade    = CreateParameter("СЧИТАТЬ ЛИ объем торгов", true);
            n_min            = CreateParameter("скок минут считать объем", 1, 1, 20, 1);
            count_candels_hi = CreateParameter("Скок.Хаев.св.читать(вход)", 2, 1, 50, 1);
            volum_alarm      = CreateParameter("АВАРИЙНЫЙ ОБЪЕМ ПРОДАЖ", 450, 150, 1000, 50);
            volum_piramid    = CreateParameter("Объем покуп.для ПИрамиды", 350, 150, 550, 50);


            TabCreate(BotTabType.Simple); // создание простой вкладки
            _vklad = TabsSimple[0];       // записываем первую вкладку в поле

            // создание и инициализация индикатора МА
            _ma        = new MovingAverage(name + "Ma", false);
            _ma        = (MovingAverage)_vklad.CreateCandleIndicator(_ma, "Prime");
            _ma.Lenght = vel_ma.ValueInt; // присвоение значения
            _ma.Save();

            _vklad.CandleFinishedEvent          += _vklad_CandleFinishedEvent;          // подписались на событие завершения новой свечи
            _vklad.NewTickEvent                 += _vklad_NewTickEvent;                 // тики
            _vklad.MarketDepthUpdateEvent       += _vklad_MarketDepthUpdateEvent;       // событие пришел стакан
            _vklad.PositionOpeningSuccesEvent   += _vklad_PositionOpeningSuccesEvent;   // событие успешного закрытия позиции
            _vklad.PositionNetVolumeChangeEvent += _vklad_PositionNetVolumeChangeEvent; // изменился объем в позиции
        }
Beispiel #12
0
        public PinBarTrade(string name, StartProgram startProgram)
            : base(name, startProgram)
        {
            TabCreate(BotTabType.Simple);
            _tab = TabsSimple[0];

            Sma = new MovingAverage(name + "MA", false);
            Sma = (MovingAverage)_tab.CreateCandleIndicator(Sma, "Prime");
            Sma.Save();

            _tab.CandleFinishedEvent += Strateg_CandleFinishedEvent;

            Slipage   = 0;
            VolumeFix = 1;

            Load();


            DeleteEvent += Strategy_DeleteEvent;
        }
Beispiel #13
0
        public PairTraderSpreadSma(string name, StartProgram startProgram)
            : base(name, startProgram)
        {
            TabCreate(BotTabType.Simple);
            _tab1 = TabsSimple[0];
            _tab1.CandleFinishedEvent += _tab1_CandleFinishedEvent;

            TabCreate(BotTabType.Simple);
            _tab2 = TabsSimple[1];
            _tab2.CandleFinishedEvent += _tab2_CandleFinishedEvent;

            TabCreate(BotTabType.Index);
            _tabSpread = TabsIndex[0];
            _tabSpread.SpreadChangeEvent += _tabSpread_SpreadChangeEvent;

            _smaLong = new MovingAverage(name + "MovingLong", false)
            {
                Lenght = 22, ColorBase = Color.DodgerBlue
            };
            _smaLong = (MovingAverage)_tabSpread.CreateCandleIndicator(_smaLong, "Prime");
            _smaLong.Save();

            _smaShort = new MovingAverage(name + "MovingShort", false)
            {
                Lenght = 3, ColorBase = Color.DarkRed
            };
            _smaShort = (MovingAverage)_tabSpread.CreateCandleIndicator(_smaShort, "Prime");
            _smaShort.Save();

            Volume1 = 1;
            Volume2 = 1;

            Slipage1 = 0;
            Slipage2 = 0;

            Load();

            DeleteEvent += Strategy_DeleteEvent;
        }
Beispiel #14
0
        public FastDelta_2(string name, StartProgram startProgram) : base(name, startProgram)
        {
            TabCreate(BotTabType.Simple);
            TabCreate(BotTabType.Simple);
            _tab      = TabsSimple[0];
            _tab_Slow = TabsSimple[1];

            _tab.CandleFinishedEvent        += _tab_CandleFinishedEvent;
            _tab.PositionOpeningSuccesEvent += _tab_PositionOpeningSuccesEvent;
            _tab.PositionClosingSuccesEvent += _tab_PositionClosingSuccesEvent;

            _tab_Slow.CandleFinishedEvent += _tab_Slow_CandleFinishedEvent1;

            _tab_Slow.CandleFinishedEvent += _tab_Slow_CandleFinishedEvent;

            this.ParametrsChangeByUser += FastDelta_ParametrsChangeByUser;
            Regime       = CreateParameter("Regime", "Off", new[] { "Off", "On" });
            leverage     = CreateParameter("Маржинальное плечо", 0.1m, 0.1m, 10, 0.1m);
            MaxStop      = CreateParameter("MaxStop", 1, 1, 10, 0.1m);
            isContract   = CreateParameter("Торгуем контрактами", false);
            DepoCurrency = CreateParameter("DepoCurrency", "Currency2", new[] { "Currency1", "Currency2" });


            maLenth    = CreateParameter("Период скользящей по объему", 24, 24, 48, 1);
            DeltaSizeK = CreateParameter("Коэфт для размера дельты", 6, 1, 40, 1);



            maVolume        = new MovingAverage(name + "_maVolume", false);
            maVolume        = (MovingAverage)_tab_Slow.CreateCandleIndicator(maVolume, "New1");
            maVolume.Lenght = maLenth.ValueInt;
            maVolume.TypeCalculationAverage = MovingAverageTypeCalculation.Exponential;
            maVolume.TypePointsToSearch     = PriceTypePoints.Volume;
            maVolume.Save();

            delta = new Delta(name + "delta", false);
            delta = (Delta)_tab.CreateCandleIndicator(delta, "New3");
            delta.Save();
        }
Beispiel #15
0
        public Storog(string name, StartProgram startProgram) : base(name, startProgram) // конструктор робота тут
        {
            TabCreate(BotTabType.Simple);                                                // создание простой вкладки
            _tab = TabsSimple[0];                                                        // записываем первую вкладку в поле

            // инициализация переменных и параметров
            price       = 1;
            _kom        = 0;
            zakritie    = 0; //последняя позиция закрылась по цене
            vkl_Robota  = CreateParameter("РОБОТ Включен?", false);
            vkl_stopa   = CreateParameter("Стоп Включен?", true);
            do_stopa    = CreateParameter(" РАСТ. до СТОПА", 10m, 5m, 100m, 5m);
            _uroven     = CreateParameter("УРОВЕНЬ Работы", 10000m, 100m, 1000m, 50m);
            slippage    = CreateParameter("Велич. проскаль.у ордеров", 1m, 1m, 50m, 5m);
            part_tovara = CreateParameter("ИСПОЛЬЗ Товара Часть(1/?)", 2, 2, 50, 1);
            do_piram    = CreateParameter(" РАСТ. до Пирамиды", 10m, 5m, 100m, 5m);
            profit      = CreateParameter("ПРОФИТ от рынка На ", 3, 5, 200, 5);
            dvig        = CreateParameter("Движение верх забрать ", 130, 5, 200, 5);
            ot_rinka    = CreateParameter(" Держаться от рынка", 110, 10, 150, 10);
            //part_depo = CreateParameter("ИСПОЛЬЗ Часть ДЕПО(1/?)", 10, 2, 50, 1);
            komis_birgi = CreateParameter("КОМ биржи в %", 0.2m, 0, 0.1m, 0.1m);
            min_lot     = CreateParameter("МИН объ.орд у биржи(базовой)", 0.001m, 0.001m, 0.05m, 0.001m);
            vel_ma      = CreateParameter("MA", 2, 3, 50, 1); // записываем в переменную параметры

            // создание и инициализация индикатора МА
            _ma        = new MovingAverage(name + "Ma", true);
            _ma        = (MovingAverage)_tab.CreateCandleIndicator(_ma, "Prime");
            _ma.Lenght = vel_ma.ValueInt; // присвоение значения
            _ma.Save();

            _tab.CandleFinishedEvent        += _tab_CandleFinishedEvent;        // подписались на событие завершения новой свечи
            _tab.NewTickEvent               += _tab_NewTickEvent;               // тики
            _tab.MarketDepthUpdateEvent     += _tab_MarketDepthUpdateEvent;     // событие пришел стакан
            _tab.PositionOpeningSuccesEvent += _tab_PositionOpeningSuccesEvent; // событие успешного открытия позиции
            _tab.PositionClosingSuccesEvent += _tab_PositionClosingSuccesEvent; // событие успешного закрытия позиции
        }
Beispiel #16
0
        public FastDelta(string name, StartProgram startProgram) : base(name, startProgram)
        {
            TabCreate(BotTabType.Simple);
            TabCreate(BotTabType.Simple);
            _tab      = TabsSimple[0];
            _tab_Slow = TabsSimple[1];

            _tab.CandleFinishedEvent        += _tab_CandleFinishedEvent;
            _tab.PositionOpeningSuccesEvent += _tab_PositionOpeningSuccesEvent;
            _tab.PositionClosingSuccesEvent += _tab_PositionClosingSuccesEvent;

            _tab_Slow.CandleFinishedEvent += _tab_Slow_CandleFinishedEvent;

            this.ParametrsChangeByUser += FastDelta_ParametrsChangeByUser;
            Regime           = CreateParameter("Regime", "Off", new[] { "Off", "On" });
            Slippage         = CreateParameter("Slippage", 0, 0, 20, 1);
            TrailStop        = CreateParameter("Trail Stop", 0.1m, 0m, 5, 0.1m);
            MinProfitTraling = CreateParameter("Минимальный профит для трэйлинга", 0.2m, 0.2m, 2, 0.1m);
            leverage         = CreateParameter("Маржинальное плечо", 0.1m, 0.1m, 10, 0.1m);
            MaxStop          = CreateParameter("MaxStop", 1, 1, 10, 0.1m);
            isContract       = CreateParameter("Торгуем контрактами", false);
            DepoCurrency     = CreateParameter("DepoCurrency", "Currency2", new[] { "Currency1", "Currency2" });

            TimeFastLenth = CreateParameter("MA Time fast", 10, 5, 200, 5);
            TimeSlowLenth = CreateParameter("MA Time slow", 10, 5, 200, 5);

            VolFastLenth = CreateParameter("MA Vol fast", 10, 5, 200, 5);
            VolSlowLenth = CreateParameter("MA Vol slow", 10, 5, 200, 5);

            TralingMaLenth = CreateParameter("MA Traling", 10, 5, 200, 5);

            maLenth    = CreateParameter("Период скользящей по объему", 24, 24, 48, 1);
            DeltaSizeK = CreateParameter("Коэфт для размера дельты", 6, 1, 40, 1);

            TimeMaFast = new MovingAverage(name + "TimeMaFast", false)
            {
                ColorBase = System.Drawing.Color.Yellow, TypePointsToSearch = PriceTypePoints.Time
            };
            TimeMaFast.Lenght = TimeFastLenth.ValueInt;
            TimeMaFast        = (MovingAverage)_tab.CreateCandleIndicator(TimeMaFast, "New1");
            TimeMaFast.Save();

            TimeMaSlow = new MovingAverage(name + "TimeMaSlow", false)
            {
                ColorBase = System.Drawing.Color.Green, TypePointsToSearch = PriceTypePoints.Time
            };
            TimeMaSlow        = (MovingAverage)_tab.CreateCandleIndicator(TimeMaSlow, "New1");
            TimeMaSlow.Lenght = TimeSlowLenth.ValueInt;
            TimeMaSlow.Save();

            VolMaFast = new MovingAverage(name + "VolMaFast", false)
            {
                ColorBase = System.Drawing.Color.Yellow, Lenght = 10, TypePointsToSearch = PriceTypePoints.Volume, TypeCalculationAverage = MovingAverageTypeCalculation.Exponential
            };
            VolMaFast        = (MovingAverage)_tab.CreateCandleIndicator(VolMaFast, "New2");
            VolMaFast.Lenght = VolFastLenth.ValueInt;
            VolMaFast.Save();

            VolMaSlow = new MovingAverage(name + "VolMaSlow", false)
            {
                ColorBase = System.Drawing.Color.Green, TypePointsToSearch = PriceTypePoints.Volume, TypeCalculationAverage = MovingAverageTypeCalculation.Exponential
            };
            VolMaSlow        = (MovingAverage)_tab.CreateCandleIndicator(VolMaSlow, "New2");
            VolMaSlow.Lenght = VolSlowLenth.ValueInt;
            VolMaSlow.Save();

            TralingStopMa = new MovingAverage(name + "TralingStopMa", false)
            {
                ColorBase = System.Drawing.Color.Blue, TypePointsToSearch = PriceTypePoints.Close
            };
            TralingStopMa        = (MovingAverage)_tab.CreateCandleIndicator(TralingStopMa, "Prime");
            TralingStopMa.Lenght = TralingMaLenth.ValueInt;
            TralingStopMa.Save();

            maVolume        = new MovingAverage(name + "_maVolume", false);
            maVolume        = (MovingAverage)_tab_Slow.CreateCandleIndicator(maVolume, "New1");
            maVolume.Lenght = maLenth.ValueInt;
            maVolume.TypeCalculationAverage = MovingAverageTypeCalculation.Exponential;
            maVolume.TypePointsToSearch     = PriceTypePoints.Volume;
            maVolume.Save();

            delta = new Delta(name + "delta", false);
            delta = (Delta)_tab.CreateCandleIndicator(delta, "New3");
            delta.Save();

            rsi        = new Rsi(name + "Rsi", false);
            rsi        = (Rsi)_tab.CreateCandleIndicator(rsi, "New4");
            rsi.Lenght = 21;
            rsi.Save();


            /*
             * _envelop = new Envelops(name + "Envelop", false);
             * _envelop = (Envelops)_tab.CreateCandleIndicator(_envelop, "Prime");
             * _envelop.MovingAverage.Lenght = 21;
             * _envelop.Deviation = 0.3m;
             * _envelop.Save();
             */
            CanTrade = false;
        }
Beispiel #17
0
        public EnvelopTrendBitmex(string name, StartProgram startProgram) : base(name, startProgram)
        {
            TabCreate(BotTabType.Simple);
            _tab = TabsSimple[0];

            _tab.CandleFinishedEvent        += _tab_CandleFinishedEvent;
            _tab.PositionOpeningSuccesEvent += _tab_PositionOpeningSuccesEvent;
            _tab.PositionClosingSuccesEvent += _tab_PositionClosingSuccesEvent;
            _envelop = new Envelops(name + "Envelop", false);
            _envelop = (Envelops)_tab.CreateCandleIndicator(_envelop, "Prime");
            _envelop.Save();

            _atr = new Atr(name + "ATR", false)
            {
                Lenght = 14, ColorBase = Color.DodgerBlue,
            };
            _atr.Save();

            this.ParametrsChangeByUser += EnvelopTrendBitmex_ParametrsChangeByUser;
            this.DeleteEvent           += Strategy_DeleteEvent;

            Regime   = CreateParameter("Regime", "Off", new[] { "Off", "On", "OnlyClosePosition", "OnlyShort", "OnlyLong" });
            RegimeML = CreateParameter("RegimeML", "Off", new[] { "Off", "Parser", "Client" });

            Slippage            = CreateParameter("Slippage", 0, 0, 20, 1);
            EnvelopDeviation    = CreateParameter("Envelop Deviation", 0.3m, 0.3m, 4, 0.1m);
            EnvelopMovingLength = CreateParameter("Envelop Moving Length", 10, 10, 200, 5);
            TrailStop           = CreateParameter("Trail Stop", 0.1m, 0m, 5, 0.1m);
            MinProfitTraling    = CreateParameter("Минимальный профит для трэйлинга", 0.2m, 0.2m, 2, 0.1m);
            leverage            = CreateParameter("Маржинальное плечо", 0.1m, 0.1m, 10, 0.1m);
            MaxStop             = CreateParameter("MaxStop", 1, 1, 10, 0.1m);
            isContract          = CreateParameter("Торгуем контрактами", false);
            DepoCurrency        = CreateParameter("DepoCurrency", "Currency2", new[] { "Currency1", "Currency2" });
            VolumeDecimals      = CreateParameter("Volume Decimals", 0, 0, 20, 1);

            FastMA = new MovingAverage(name + "FastMA", false)
            {
                ColorBase = System.Drawing.Color.Yellow, Lenght = 15, TypePointsToSearch = PriceTypePoints.Close, TypeCalculationAverage = MovingAverageTypeCalculation.Simple
            };
            FastMA        = (MovingAverage)_tab.CreateCandleIndicator(FastMA, "Prime");
            FastMA.Lenght = 15;
            FastMA.Save();

            SlowMA = new MovingAverage(name + "SlowMA", false)
            {
                ColorBase = System.Drawing.Color.Blue, Lenght = 30, TypePointsToSearch = PriceTypePoints.Close, TypeCalculationAverage = MovingAverageTypeCalculation.Simple
            };
            SlowMA        = (MovingAverage)_tab.CreateCandleIndicator(SlowMA, "Prime");
            SlowMA.Lenght = 30;
            SlowMA.Save();

            _envelop.Deviation            = EnvelopDeviation.ValueDecimal;
            _envelop.MovingAverage.Lenght = EnvelopMovingLength.ValueInt;
            _name = name;

            #region ML Region
            //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
            //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
            Load();
            if (RegimeML.ValueString != "Off") // создаем файл(ы) если несуществуют и очищаем если существуют
            {
                initML();
            }
            //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
            //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
            #endregion
        }
Beispiel #18
0
        // сервис

        public StrategyDampIndex(string name, StartProgram startProgram) : base(name, startProgram)
        {
            TabCreate(BotTabType.Simple);
            _tab = TabsSimple[0];

            _smaHighIndex = new MovingAverage(name + "MovingHighIndex", false)
            {
                Lenght             = 5,
                ColorBase          = Color.DodgerBlue,
                PaintOn            = false,
                TypePointsToSearch = PriceTypePoints.High
            };
            _smaHighIndex = _tab.CreateCandleIndicator(_smaHighIndex, "Prime");
            _smaHighIndex.Save();

            _smaHigh2Period = new MovingAverage(name + "MovingHigh2Period", false)
            {
                Lenght             = 2,
                ColorBase          = Color.DodgerBlue,
                PaintOn            = false,
                TypePointsToSearch = PriceTypePoints.High
            };
            _smaHigh2Period = _tab.CreateCandleIndicator(_smaHigh2Period, "Prime");
            _smaHigh2Period.Save();

            _smaHigh3Period = new MovingAverage(name + "MovingHigh3Period", false)
            {
                Lenght             = 3,
                ColorBase          = Color.DodgerBlue,
                PaintOn            = false,
                TypePointsToSearch = PriceTypePoints.High
            };
            _smaHigh3Period = _tab.CreateCandleIndicator(_smaHigh3Period, "Prime");
            _smaHigh3Period.Save();


            _smaHigh4Period = new MovingAverage(name + "MovingHigh4Period", false)
            {
                Lenght             = 4,
                ColorBase          = Color.DodgerBlue,
                PaintOn            = false,
                TypePointsToSearch = PriceTypePoints.High
            };

            _smaHigh4Period = _tab.CreateCandleIndicator(_smaHigh4Period, "Prime");
            _smaHigh4Period.Save();


            _dampIndex = new Line(name + "dampIndex", false)
            {
                ColorBase = Color.DodgerBlue,
                PaintOn   = true,
            };

            _dampIndex = _tab.CreateCandleIndicator(_dampIndex, "dampArea");
            _dampIndex.Save();

            _smaLowIndex = new MovingAverage(name + "MovingLowIndex", false)
            {
                Lenght             = 5,
                ColorBase          = Color.DodgerBlue,
                PaintOn            = false,
                TypePointsToSearch = PriceTypePoints.Low
            };
            _smaLowIndex = _tab.CreateCandleIndicator(_smaLowIndex, "Prime");
            _smaLowIndex.Save();

            _smaLow2Period = new MovingAverage(name + "Moving2LowPeriod", false)
            {
                Lenght             = 2,
                ColorBase          = Color.DodgerBlue,
                PaintOn            = false,
                TypePointsToSearch = PriceTypePoints.Low
            };
            _smaLow2Period = _tab.CreateCandleIndicator(_smaLow2Period, "Prime");
            _smaLow2Period.Save();


            _smaLow3Period = new MovingAverage(name + "Moving3LowPeriod", false)
            {
                Lenght             = 3,
                ColorBase          = Color.DodgerBlue,
                PaintOn            = false,
                TypePointsToSearch = PriceTypePoints.Low
            };
            _smaLow3Period = _tab.CreateCandleIndicator(_smaLow3Period, "Prime");
            _smaLow3Period.Save();

            _smaLow4Period = new MovingAverage(name + "Moving4LowPeriod", false)
            {
                Lenght             = 4,
                ColorBase          = Color.DodgerBlue,
                PaintOn            = false,
                TypePointsToSearch = PriceTypePoints.Low
            };
            _smaLow4Period = _tab.CreateCandleIndicator(_smaLow4Period, "Prime");
            _smaLow4Period.Save();

            _tab.CandleFinishedEvent += StrategyAdxVolatility_CandleFinishedEvent;

            IsOn               = false;
            Volume             = 1;
            SlipageOpenSecond  = 20;
            SlipageCloseSecond = 0;
            TimeFrom           = 10;
            TimeTo             = 22;
            AlertIsOn          = false;
            EmulatorIsOn       = false;
            _alert             = new AlertToPrice(NameStrategyUniq);
            _alert.IsOn        = false;
            _tab.DeleteAllAlerts();
            _tab.SetNewAlert(_alert);

            LagTimeToOpenClose  = new TimeSpan(0, 0, 0, 15);
            LagPunctToOpenClose = 20;
            SlipageReversClose  = 0;
            SlipageToAlert      = 10;
            NeadToPaintEmu      = false;

            Load();

            Thread worker = new Thread(TimeWatcherArea);

            worker.IsBackground = true;
            worker.Start();

            Thread worker2 = new Thread(WatcherOpenPosition);

            worker2.IsBackground = true;
            worker2.Start();

            Thread worker3 = new Thread(AreaCloserPositionThread);

            worker3.IsBackground = true;
            worker3.Start();

            _tab.OrderUpdateEvent         += _tab_OrderUpdateEvent;
            _tab.NewTickEvent             += _tab_NewTickEvent;
            _tab.PositionClosingFailEvent += _tab_PositionClosingFailEvent;
            _tab.PositionOpeningFailEvent += _tab_PositionOpeningFailEvent;
        }
Beispiel #19
0
        public PriceChanel_work(string name, StartProgram startProgram)
            : base(name, startProgram)
        {
            TabCreate(BotTabType.Simple);
            _tab = TabsSimple[0];

            _pc = new PriceChannel(name + "PriceChannel", false)
            {
                LenghtUpLine = 3, LenghtDownLine = 3, ColorUp = Color.DodgerBlue, ColorDown = Color.DarkRed
            };
            _atr = new Atr(name + "ATR", false)
            {
                Lenght = 14, ColorBase = Color.DodgerBlue,
            };

            _pc.Save();
            _atr.Save();

            _tab.CandleFinishedEvent        += Strateg_CandleFinishedEvent;
            _tab.PositionOpeningSuccesEvent += Strateg_PositionOpen;
            _tab.PositionOpeningFailEvent   += Strateg_PositionOpeningFailEvent;
            _tab.PositionClosingSuccesEvent += Strateg_PositionClosingSuccesEvent;
            this.ParametrsChangeByUser      += PriceChanel_work_ParametrsChangeByUser;
            _tab.BestBidAskChangeEvent      += _tab_BestBidAskChangeEvent;

            Regime        = CreateParameter("Regime", "Off", new[] { "Off", "On", "OnlyClosePosition", "OnlyShort", "OnlyLong" });
            leverage      = CreateParameter("Маржинальное плечо", 1m, 1m, 10, 0.1m);
            DepoCurrency  = CreateParameter("DepoCurrency", "Currency2", new[] { "Currency1", "Currency2" });
            isContract    = CreateParameter("Торгуем контрактами", false);
            MaxStop       = CreateParameter("MaxStop", 1, 1, 10, 0.1m);
            Fractaillenth = CreateParameter("Длина фрактала", 51, 5, 200, 1);

            Slipage = CreateParameter("Slipage", 0m, 0m, 20, 0.1m);

            LengthAtr  = CreateParameter("LengthAtr", 14, 14, 200, 1);
            LengthUp   = CreateParameter("LengthUp", 14, 14, 200, 1);
            LengthDown = CreateParameter("LengthDown", 14, 14, 200, 1);

            LengthPC = CreateParameter("Длина скользящей для PriceChannel", 14, 14, 200, 1);

            LengthAtr.ValueInt  = LengthPC.ValueInt;
            LengthUp.ValueInt   = LengthPC.ValueInt;
            LengthDown.ValueInt = LengthPC.ValueInt;

            //Slipage = 10;
            //VolumeFix1 = 1;
            //VolumeFix2 = 1;
            //LengthAtr = 14;
            KofAtr = 0.5m;
            //LengthUp = 3;
            //LengthDown = 3;

            DeleteEvent += Strategy_DeleteEvent;

            FastMA = new MovingAverage(name + "FastMA", false)
            {
                ColorBase = System.Drawing.Color.Yellow, Lenght = 15, TypePointsToSearch = PriceTypePoints.Close, TypeCalculationAverage = MovingAverageTypeCalculation.Simple
            };
            FastMA        = (MovingAverage)_tab.CreateCandleIndicator(FastMA, "Prime");
            FastMA.Lenght = 15;
            FastMA.Save();

            SlowMA = new MovingAverage(name + "SlowMA", false)
            {
                ColorBase = System.Drawing.Color.Blue, Lenght = 30, TypePointsToSearch = PriceTypePoints.Close, TypeCalculationAverage = MovingAverageTypeCalculation.Simple
            };
            SlowMA        = (MovingAverage)_tab.CreateCandleIndicator(SlowMA, "Prime");
            SlowMA.Lenght = 30;
            SlowMA.Save();

            Fractail = IndicatorsFactory.CreateIndicatorByName("Fractail_lenth", name + "Fractail", false);
            Fractail = (Aindicator)_tab.CreateCandleIndicator(Fractail, "Prime");
            Fractail.ParametersDigit[0].Value = Fractaillenth.ValueInt;
            Fractail.Save();

            Thread closerThread = new Thread(CloseFailPosition);

            closerThread.IsBackground = true;
            closerThread.Start();
        }
Beispiel #20
0
        public PriceLavelBot(string name, StartProgram startProgram)
            : base(name, startProgram)
        {
            this.ParametrsChangeByUser += PriceLavelBot_ParametrsChangeByUser;

            TabCreate(BotTabType.Simple);
            _tab = TabsSimple[0];

            SessionAsia = CreateParameter("Торговать Азию", false);
            SessionEU   = CreateParameter("Торговать Европу", false);
            SessionUSA  = CreateParameter("Торговать Америку", false);
            SessionRUS  = CreateParameter("Торговать Россию", false);
            SessionDay  = CreateParameter("Круглосуточно", false);


            _TradeSessions = new TradeSessions(name + "_TradeSessions", false, GetListSessionTypes());
            _TradeSessions = (TradeSessions)_tab.CreateCandleIndicator(_TradeSessions, "Prime");
            _TradeSessions.Save();

            PriceLevleLine         = new PriceLevleLine(name + "_PriceLevleLine", false);
            PriceLevleLine         = (PriceLevleLine)_tab.CreateCandleIndicator(PriceLevleLine, "Prime");
            PriceLevleLine.PaintOn = false;
            PriceLevleLine.Save();

            maLenth         = CreateParameter("maLenth", 24, 24, 48, 1);
            maVolume        = new MovingAverage(name + "_maVolume", false);
            maVolume        = (MovingAverage)_tab.CreateCandleIndicator(maVolume, "New1");
            maVolume.Lenght = maLenth.ValueInt;
            maVolume.TypeCalculationAverage = MovingAverageTypeCalculation.Exponential;
            maVolume.TypePointsToSearch     = PriceTypePoints.Volume;
            maVolume.Save();

            maVolumeSlow           = new MovingAverage(name + "maVolumeSlow", false);
            maVolumeSlow           = (MovingAverage)_tab.CreateCandleIndicator(maVolumeSlow, "New1");
            maVolumeSlow.ColorBase = System.Drawing.Color.Green;
            maVolumeSlow.Lenght    = 48;
            maVolumeSlow.TypeCalculationAverage = MovingAverageTypeCalculation.Simple;
            maVolumeSlow.TypePointsToSearch     = PriceTypePoints.Volume;
            maVolumeSlow.Save();

            mA = new MovingAverage(name + "mA", false)
            {
                Lenght = 9
            };
            mA = (MovingAverage)_tab.CreateCandleIndicator(mA, "Prime");
            mA.Save();

            Regime           = CreateParameter("Regime", "Off", new[] { "Off", "On" });
            UseSafe          = CreateParameter("Использовать сейф", true);
            _Volume          = CreateParameter("Volume", 1, 0.00m, 100, 1);
            MinProfitTraling = CreateParameter("Минимальный профит для трэйлинга", 0.2m, 0.2m, 2, 0.1m);

            MaxStop = CreateParameter("MaxStop", 1, 1, 10, 0.1m);

            _Slipage  = CreateParameter("_Slipage", 1, 1, 50, 1);
            leverage  = CreateParameter("Маржинальное плечо", 1, 1, 10, 1);
            StepCount = CreateParameter("Ордеров в лесенке", 1, 1, 10, 1);

            DepoCurrency = CreateParameter("DepoCurrency", "Currency2", new[] { "Currency1", "Currency2" });

            isContract = CreateParameter("Торгуем контрактами", false);

            PaintLevels = CreateParameter("Отрисовывать уровни", true);

            Breakeven     = CreateParameter("Использовать безубыток", true);
            NeedBreakeven = Breakeven.ValueBool;

            DeltaSizeK = CreateParameter("Делитель основного ТФ", 6, 1, 40, 1);

            _tab.CandleFinishedEvent        += _tab_CandleFinishedEvent;
            _tab.CandleUpdateEvent          += _tab_CandleUpdateEvent;
            _tab.PositionOpeningSuccesEvent += _tab_PositionOpeningSuccesEvent;
            _tab.NewTickEvent               += _tab_NewTickEvent;
            _tab.FirstTickToDayEvent        += _tab_FirstTickToDayEvent;
            _tab.PositionClosingSuccesEvent += _tab_PositionClosingSuccesEvent;


            //Младший тайм фрейм
            TabCreate(BotTabType.Simple);
            _tab_pattern = TabsSimple[1];

            _tab_pattern.CandleFinishedEvent += _tab_pattern_CandleFinishedEvent;

            delta_pattern = new Delta(name + "_delta", false);
            delta_pattern = (Delta)_tab_pattern.CreateCandleIndicator(delta_pattern, "New1");
            delta_pattern.Save();

            Volume_pattern = new Volume(name + "_Volume", false);
            Volume_pattern = (Volume)_tab_pattern.CreateCandleIndicator(Volume_pattern, "New2");
            Volume_pattern.Save();


            //график Дельты
            TabCreate(BotTabType.Simple);
            _tab_delta = TabsSimple[2];

            _tab_delta.CandleFinishedEvent += _tab_delta_CandleFinishedEvent;;

            delta_delta = new Delta(name + "delta_delta", false);
            delta_delta = (Delta)_tab_delta.CreateCandleIndicator(delta_delta, "New1");
            delta_delta.Save();

            Volume_delta = new Volume(name + "delta_Volume", false);
            Volume_delta = (Volume)_tab_delta.CreateCandleIndicator(Volume_delta, "New2");
            Volume_delta.Save();



            //    lines = new List<LineHorisontal>();

            Thread closerThread = new Thread(CloseFailPosition);

            closerThread.IsBackground = true;
            closerThread.Start();
        }