Exemple #1
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();
        }
Exemple #2
0
    public MacdRevers(string name, StartProgram startProgram)
        : base(name, startProgram)
    {
        TabCreate(BotTabType.Simple);
        _tab = TabsSimple[0];

        _macd = IndicatorsFactory.CreateIndicatorByName("MACD", name + "MacdArea", false);
        _macd = (Aindicator)_tab.CreateCandleIndicator(_macd, "MacdArea");
        _macd.Save();

        Regime   = CreateParameter("Regime", "Off", new[] { "Off", "On", "OnlyLong", "OnlyShort", "OnlyClosePosition" });
        Volume   = CreateParameter("Volume", 1, 1.0m, 50, 4);
        Slippage = CreateParameter("Slippage", 0, 0, 20, 1);

        _tab.CandleFinishedEvent += Strateg_CandleFinishedEvent;
    }
        /// <summary>
        /// конструктор
        /// </summary>
        public MarketMakerBot(string name, StartProgram startProgram)
            : base(name, startProgram)
        {
            TabCreate(BotTabType.Simple);
            _tab = TabsSimple[0];

            Regime = BotTradeRegime.On;
            PersentToSpreadLines = 0.5m;
            Volume = 1;

            Load();

            _tab.CandleFinishedEvent += Strateg_CandleFinishedEvent;

            DeleteEvent += Strategy_DeleteEvent;
        }
Exemple #4
0
        public decimal _min_lot;                                                           // поле хранящее величину минимального лота для биржи

        public MyBlanks(string name, StartProgram startProgram) : base(name, startProgram) // конструктор робота тут
        {
            // инициализация переменных и параметров
            price = 1;
            _kom  = 0;

            kvot_val  = CreateParameter("КвотВалюта-Инструмент", "USDT");
            tovar_val = CreateParameter("Базовая Валюта-Товар", "BTC");

            komis_birgi = CreateParameter("КОМ биржи в %", 0.2m, 0, 0.1m, 0.1m);

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

            _tab.MarketDepthUpdateEvent += _tab_MarketDepthUpdateEvent;
        }
Exemple #5
0
        /// <summary>
        /// конструктор
        /// </summary>
        public ClusterCountertrend(string name, StartProgram startProgram)
            : base(name, startProgram)
        {
            //создание вкладку для торговли
            TabCreate(BotTabType.Simple);
            _tabToTrade = TabsSimple[0];
            _tabToTrade.CandleFinishedEvent += _tabToTrade_CandleFinishedEvent;

            // создаём вкдалку для кластера
            TabCreate(BotTabType.Cluster);
            _tabCluster = TabsCluster[0];

            Regime   = CreateParameter("Regime", "Off", new[] { "Off", "On" });
            Volume   = CreateParameter("Volume", 1, 1.0m, 50, 1);
            BackLook = CreateParameter("Back Look", 1, 1, 10, 1);
        }
Exemple #6
0
        // service / сервис

        /// <summary>
        /// constructor
        /// конструктор
        /// </summary>
        /// <param name="nameBot">uid / имя робота</param>
        /// <param name="startProgram">the program that launched the class / программа которая запустила класс</param>
        public RiskManager(string nameBot, StartProgram startProgram)
        {
            _startProgram           = startProgram;
            _name                   = nameBot + "RiskManager";
            MaxDrowDownToDayPersent = 1;
            Load();

            if (_startProgram != StartProgram.IsOsOptimizer)
            {
                if (Watcher == null)
                {
                    Activate();
                }
                RiskManagersToCheck.Add(this);
            }
        }
Exemple #7
0
        public TimeOfDayBot(string name, StartProgram startProgram)
            : base(name, startProgram)
        {
            TabCreate(BotTabType.Simple);
            _tab = TabsSimple[0];

            Regime      = CreateParameter("Regime", "Off", new[] { "Off", "Buy", "Sell" });
            Volume      = CreateParameter("Volume", 3, 1.0m, 50, 4);
            Slippage    = CreateParameter("Slippage", 0, 0, 20m, 0.1m);
            TimeToInter = CreateParameterTimeOfDay("Time to Inter", 10, 0, 1, 0);
            Stop        = CreateParameter("Stop", 1, 1.0m, 10, 0.1m);
            Profit      = CreateParameter("Profit", 1, 1.0m, 10, 0.1m);

            _tab.NewTickEvent += TabOnNewTickEvent;
            _tab.PositionOpeningSuccesEvent += TabOnPositionOpeningSuccesEvent;
        }
        public void TestCalendarSystemTestForth()
        {
            var output = new StringWriter();
            var input  = new StringReader(
                @"AddEvent 2011-11-11T11:11:22 | party Viki | home
AddEvent 2011-11-11T11:11:22 | party Viki
AddEvent 2011-11-11T11:11:55 | party Viki | home
AddEvent 2011-11-11T11:11:33 | party Viki
AddEvent 2011-11-11T11:11:11 | party Viki | home
AddEvent 2011-11-11T11:11:44 | party Viki
AddEvent 2011-11-11T11:11:55 | party Viki
AddEvent 2011-11-11T11:11:33 | party Viki | home
AddEvent 2011-11-11T11:11:11 | party Viki
AddEvent 2011-11-11T11:11:44 | party Viki | home
ListEvents 2011-11-11T11:11:22 | 5
End");
            string expected = @"Event added
Event added
Event added
Event added
Event added
Event added
Event added
Event added
Event added
Event added
2011-11-11T11:11:22 | party Viki
2011-11-11T11:11:22 | party Viki | home
2011-11-11T11:11:33 | party Viki
2011-11-11T11:11:33 | party Viki | home
2011-11-11T11:11:44 | party Viki
";

            using (output)
            {
                using (input)
                {
                    Console.SetIn(input);
                    Console.SetOut(output);

                    StartProgram.Main();

                    string actual = output.ToString();
                    Assert.AreEqual(expected, actual);
                }
            }
        }
        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, чтобы удалялись все файлы робота
        }
Exemple #10
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;
        }
Exemple #11
0
        /// <summary>
        /// constructor
        /// конструктор
        /// </summary>
        public PositionUi(Position position, StartProgram startProgram)
        {
            _startProgramm = startProgram;
            _position      = position;
            InitializeComponent();
            CreateMainTable();
            CreateOrdersTable();
            CreateTradeTable();

            RePaint();

            Title = OsLocalization.Entity.TitlePositionUi + "  " + _position.Number;
            PositionLabel1.Content    = OsLocalization.Entity.PositionLabel1;
            PositionLabel2.Content    = OsLocalization.Entity.PositionLabel2;
            PositionLabel3.Content    = OsLocalization.Entity.PositionLabel3;
            SaveChangesButton.Content = OsLocalization.Entity.PositionLabel4;
        }
Exemple #12
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;
        }
Exemple #13
0
        public SmaScreener(string name, StartProgram startProgram) : base(name, startProgram)
        {
            TabCreate(BotTabType.Screener);
            _screenerTab = TabsScreener[0];

            _screenerTab.NewTabCreateEvent += _screenerTab_NewTabCreateEvent;
            _screenerTab.CreateCandleIndicator(1, "Sma", new List <string>()
            {
                "100"
            }, "Prime");

            Regime          = CreateParameter("Regime", "Off", new[] { "Off", "On" });
            Slippage        = CreateParameter("Slippage", 0, 0, 20, 1);
            Volume          = CreateParameter("Volume", 0.1m, 0.1m, 50, 0.1m);
            TrailStop       = CreateParameter("Trail Stop", 0.7m, 0.5m, 5, 0.1m);
            CandlesLookBack = CreateParameter("Candles Look Back count", 10, 5, 100, 1);
        }
Exemple #14
0
        public FractialMA_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;
            Regime = CreateParameter("Regime", "Off", new[] { "Off", "On", "OnlyClosePosition", "OnlyShort", "OnlyLong" });

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

            LengthAtr  = CreateParameter("LengthAtr", 14, 0, 200, 1);
            LengthUp   = CreateParameter("LengthUp", 3, 0, 200, 1);
            LengthDown = CreateParameter("LengthDown", 3, 0, 200, 1);
            //Slipage = 10;
            //VolumeFix1 = 1;
            //VolumeFix2 = 1;
            //LengthAtr = 14;
            KofAtr = 0.5m;
            //LengthUp = 3;
            //LengthDown = 3;

            DeleteEvent += Strategy_DeleteEvent;

            Thread closerThread = new Thread(CloseFailPosition);

            closerThread.IsBackground = true;
            closerThread.Start();
        }
Exemple #15
0
        public void CreateNewBots(List <string> botsName, string botType, bool isScript, StartProgram startProgramm)
        {
            _botType = botType;

            for (int i = 0; i < _botsToStart.Count; i++)
            {
                List <string> names = _botsToStart[i];

                for (int i2 = i; i2 < botsName.Count; i2 += _botsToStart.Count)
                {
                    names.Add(botsName[i2]);
                }
            }

            _isScript      = isScript;
            _startProgramm = startProgramm;
        }
Exemple #16
0
        public OsTraderMaster(StartProgram startProgram, WindowsFormsHost hostLogPrime)
        {
            NumberGen.GetNumberOrder(startProgram);
            _startProgram = startProgram;

            if (_startProgram == StartProgram.IsTester)
            {
                _typeWorkKeeper = ConnectorWorkType.Tester;
                ((TesterServer)ServerMaster.GetServers()[0]).TestingStartEvent += StrategyKeeper_TestingStartEvent;
                ((TesterServer)ServerMaster.GetServers()[0]).TestingFastEvent  += StrategyKeeper_TestingFastEvent;
                ((TesterServer)ServerMaster.GetServers()[0]).TestingEndEvent   += StrategyKeeper_TestingEndEvent;
            }

            if (_startProgram != StartProgram.IsTester)
            {
                ServerMaster.ActivateAutoConnection();
            }

            ServerMaster.LogMessageEvent += SendNewLogMessage;


            _riskManager = new RiskManager.RiskManager("GlobalRiskManager", _startProgram);
            _riskManager.RiskManagerAlarmEvent += _riskManager_RiskManagerAlarmEvent;
            _riskManager.LogMessageEvent       += SendNewLogMessage;
            _globalController = new GlobalPosition(_hostAllDeals, _startProgram);
            _globalController.LogMessageEvent += SendNewLogMessage;

            _log = new Log("Prime", _startProgram);
            _log.StartPaint(hostLogPrime);
            _log.Listen(this);
            _hostLogPrime = hostLogPrime;

            SendNewLogMessage(OsLocalization.Trader.Label1, LogMessageType.User);

            Load();
            _tabBotNames.SelectionChanged += _tabBotControl_SelectionChanged;
            ReloadRiskJournals();
            _globalController.StartPaint();

            Master = this;

            if (_startProgram == StartProgram.IsOsTrader && PrimeSettingsMaster.AutoStartApi)
            {
                ApiMaster = new AdminApiMaster(Master);
            }
        }
Exemple #17
0
        // service
        // сервис

        /// <summary>
        /// constructor
        /// конструктор
        /// </summary>
        /// <param name="name">robot name/имя робота</param>
        /// <param name="startProgram">program requesting the creation of a log/программа запрашивающая создание журнала</param>
        public Journal(string name, StartProgram startProgram)
        {
            Name = name;

            try
            {
                _positionController = new PositionController(name, startProgram);
                _positionController.PositionStateChangeEvent     += _positionController_DealStateChangeEvent;
                _positionController.PositionNetVolumeChangeEvent += _positionController_PositionNetVolumeChangeEvent;
                _positionController.UserSelectActionEvent        += _positionController_UserSelectActionEvent;
                _positionController.LogMessageEvent += SendNewLogMessage;
            }
            catch (Exception error)
            {
                SendNewLogMessage(error.ToString(), LogMessageType.Error);
            }
        }
Exemple #18
0
        public ArbitrageFutures(string name, StartProgram startProgram)
            : base(name, startProgram)
        {
            TabCreate(BotTabType.Simple);
            _tab1 = TabsSimple[0];
            TabCreate(BotTabType.Simple);
            _tab2 = TabsSimple[1];

            _tab1.PositionClosingSuccesEvent += PositionClosingSuccesEvent;
            _tab2.PositionClosingSuccesEvent += PositionClosingSuccesEvent;

            Analiser = new MarketDepthSpreadAnaliserArb();
            Analiser.addTab(_tab1);
            Analiser.addTab(_tab2);
            Analiser.SpreadChangeEvent += Analiser_SpreadChangeEvent;
            Analiser.ProfitChangeEvent += Analiser_ProfitChangeEvent;

            Regime = CreateParameter("Regime", "Off", new[] { "Off", "On", "OnlyClosePosition" });

            minSpread    = CreateParameter("minSpread", 0.5m, 0.1m, 3, 0.05m);
            minSpreadAdd = CreateParameter("Добирать при расхождении", 0.5m, 0.1m, 3, 0.05m);

            minProfit = CreateParameter("minProfit", 0.5m, 0.1m, 3, 0.05m);

            Slippage = CreateParameter("Slipage", 0, 0, 20, 1);
            MaxTrade = CreateParameter("MaxTrade", 4, 1, 5, 1);

            _CountTrade = CreateParameter("Открыто доборов", 0, 0, 5, 1);

            leverage         = CreateParameter("Маржинальное плечо", 1m, 1m, 10, 0.1m);
            isContract       = CreateParameter("Торгуем контрактами", false);
            autoCanselTrades = CreateParameter("Принудительно закрывать по времени", true);

            DepoCurrency1 = CreateParameter("Валюта 1", "Currency2", new[] { "Currency1", "Currency2" });
            DepoCurrency2 = CreateParameter("Валюта 2", "Currency2", new[] { "Currency1", "Currency2" });

            divider1 = CreateParameter("Размер 1 контр.", 1m, 1m, 100, 1);
            divider2 = CreateParameter("Размер 2 контр.", 1m, 1m, 100, 1);

            ParametrsChangeByUser += ArbitrageIndex_ParametrsChangeByUser;

            Thread worker = new Thread(LogicError);

            worker.IsBackground = true;
            worker.Start();
        }
Exemple #19
0
        /// <summary>
        /// create order /
        /// создать ордер
        /// </summary>
        public Order CreateOrder(
            Side direction, decimal priceOrder, decimal volume,
            OrderPriceType priceType, TimeSpan timeLife, StartProgram startProgram,
            OrderPositionConditionType positionConditionType)
        {
            Order newOrder = new Order();

            newOrder.NumberUser            = NumberGen.GetNumberOrder(startProgram);
            newOrder.Side                  = direction;
            newOrder.Price                 = priceOrder;
            newOrder.Volume                = volume;
            newOrder.TypeOrder             = priceType;
            newOrder.LifeTime              = timeLife;
            newOrder.PositionConditionType = positionConditionType;

            return(newOrder);
        }
        public BotCreateUi(List <string> botsIncluded, List <string> botsFromScript, StartProgram startProgram)
        {
            InitializeComponent();

            for (int i = 0; i < botsIncluded.Count; i++)
            {
                for (int i2 = 0; i2 < botsFromScript.Count; i2++)
                {
                    if (botsIncluded[i].Equals(botsFromScript[i2]))
                    {
                        botsIncluded.RemoveAt(i);
                        i--;
                        break;
                    }
                }
            }

            _botsIncluded   = botsIncluded;
            _botsFromScript = botsFromScript;


            if (startProgram == StartProgram.IsOsTrader)
            {
                TextBoxName.Text = "MyNewBot";
            }
            else if (startProgram == StartProgram.IsOsOptimizer)
            {
                TextBoxName.Text      = "No name";
                TextBoxName.IsEnabled = false;
            }

            Title                = OsLocalization.Trader.Label59;
            LabelName.Content    = OsLocalization.Trader.Label61;
            ButtonAccept.Content = OsLocalization.Trader.Label17;

            _gridIncludeBots            = GetDataGridView();
            HostNamesIncludedBots.Child = _gridIncludeBots;

            _gridScriptBots           = GetDataGridView();
            HostNamesScriptBots.Child = _gridScriptBots;

            UpdateGrids();

            ItemInclude.Header = OsLocalization.Charts.Label6;
            ItemScript.Header  = OsLocalization.Charts.Label7;
        }
        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();
        }
Exemple #22
0
        public TimeFrameBuilder(string name, StartProgram startProgram)
        {
            _name = name;

            _candleCreateType       = CandleMarketDataType.Tick;
            _seriesCreateMethodType = CandleCreateMethodType.Simple;
            TimeFrame  = TimeFrame.Min1;
            TradeCount = 100;
            _volumeToCloseCandleInVolumeType     = 1000;
            _rencoPunktsToCloseCandleInRencoType = 100;
            _deltaPeriods = 1000;

            if (startProgram != StartProgram.IsOsOptimizer)
            {
                Load();
                _canSave = true;
            }
        }
Exemple #23
0
        public MyTest(string name, StartProgram startProgram) : base(name, startProgram)
        {
            TabCreate(BotTabType.Simple);
            _tab = TabsSimple[0];

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

            Regime              = CreateParameter("Regime", "Off", new[] { "Off", "On" });
            Slippage            = CreateParameter("Slippage %", 0, 0, 100, 0.1m);
            Volume              = CreateParameter("Volume", 0.1m, 0.1m, 50, 0.1m);
            EnvelopDeviation    = CreateParameter("Envelop Deviation", 0.3m, 0.2m, 10, 0.1m);
            EnvelopMovingLength = CreateParameter("Envelop Moving Length", 40, 10, 200, 5);
            TrailStop           = CreateParameter("Trail Stop %", 1, 0.1m, 100, 0.1m);

            _sma        = new LinearRegressionCurve(name + "LRC1", false);
            _sma        = (LinearRegressionCurve)_tab.CreateCandleIndicator(_sma, "Prime");
            _sma.Lenght = 8;
            _sma.Save();

            _envelop1 = new Envelops(name + "Envelop1", false);
            _envelop1 = (Envelops)_tab.CreateCandleIndicator(_envelop1, "Prime");
            _envelop1.Save();

            _envelop2 = new Envelops(name + "Envelop2", false);
            _envelop2 = (Envelops)_tab.CreateCandleIndicator(_envelop2, "Prime");
            _envelop2.Save();

            _envelop3 = new Envelops(name + "Envelop3", false);
            _envelop3 = (Envelops)_tab.CreateCandleIndicator(_envelop3, "Prime");
            _envelop3.Save();

            _envelop1.Deviation            = EnvelopDeviation.ValueDecimal;
            _envelop1.MovingAverage.Lenght = EnvelopMovingLength.ValueInt;
            //_envelop1.ColorUp = Color.Red;

            _envelop2.Deviation            = EnvelopDeviation.ValueDecimal * 2m;
            _envelop2.MovingAverage.Lenght = EnvelopMovingLength.ValueInt;

            _envelop3.Deviation            = EnvelopDeviation.ValueDecimal * 3m;
            _envelop3.MovingAverage.Lenght = EnvelopMovingLength.ValueInt;

            ParametrsChangeByUser += MyTest_ParametrsChangeByUser;
        }
Exemple #24
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;
        }
Exemple #25
0
        public BotManualControl(string name, BotTabSimple botTab, StartProgram startProgram)
        {
            _name         = name;
            _startProgram = startProgram;

            StopIsOn          = false;
            StopDistance      = 30;
            StopSlipage       = 5;
            ProfitIsOn        = false;
            ProfitDistance    = 30;
            ProfitSlipage     = 5;
            DoubleExitIsOn    = true;
            DoubleExitSlipage = 10;

            SecondToOpenIsOn = true;
            SecondToOpen     = new TimeSpan(0, 0, 0, 50);

            SecondToCloseIsOn = true;
            SecondToClose     = new TimeSpan(0, 0, 0, 50);

            SetbackToOpenIsOn = false;

            SetbackToOpenPosition = 10;

            SetbackToCloseIsOn = false;

            SetbackToClosePosition = 10;

            if (Load() == false)
            {
                Save();
            }

            _botTab = botTab;

            if (_startProgram != StartProgram.IsTester)
            {
                if (Watcher == null)
                {
                    Activate();
                }
                TabsToCheck.Add(this);
            }
        }
Exemple #26
0
    public RsiTrade(string name, StartProgram startProgram)
        : base(name, startProgram)
    {
        TabCreate(BotTabType.Simple);
        _tab = TabsSimple[0];

        _rsi = IndicatorsFactory.CreateIndicatorByName("RSI", name + "RSI", false);
        _rsi = (Aindicator)_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);

        Regime        = CreateParameter("Regime", "Off", new[] { "Off", "On", "OnlyLong", "OnlyShort", "OnlyClosePosition" });
        Volume        = CreateParameter("Volume", 1, 1.0m, 50, 4);
        Slippage      = CreateParameter("Slippage", 0, 0, 20, 1);
        RsiLength     = CreateParameter("Rsi Length", 20, 10, 40, 2);
        UpLineValue   = CreateParameter("Up Line Value", 65, 60.0m, 90, 0.5m);
        DownLineValue = CreateParameter("Down Line Value", 35, 10.0m, 40, 0.5m);

        _rsi.ParametersDigit[0].Value = RsiLength.ValueInt;

        _rsi.Save();

        Upline.Value   = UpLineValue.ValueDecimal;
        Downline.Value = DownLineValue.ValueDecimal;

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

        _tab.CandleFinishedEvent += Strateg_CandleFinishedEvent;
        DeleteEvent           += Strategy_DeleteEvent;
        ParametrsChangeByUser += Event_ParametrsChangeByUser;
    }
Exemple #27
0
        /// <summary>
        /// constructor
        /// конструктор
        /// </summary>
        /// <param name="allPositionHost">the host on which we will draw the date grid / хост на который будем рисовать дата грид</param>
        /// <param name="startProgram">program running class / программа запустившая класс</param>
        public GlobalPosition(WindowsFormsHost allPositionHost, StartProgram startProgram)
        {
            _startProgram = startProgram;

            _host = allPositionHost;

            _grid = CreateNewTable();

            _host.Child = _grid;
            _host.Child.Show();

            if (Watcher == null)
            {
                Watcher = new Thread(WatcherHome);
                Watcher.IsBackground = true;
                Watcher.Name         = "GlobalPositionThread";
                Watcher.Start();
            }
        }
Exemple #28
0
        /// <summary>
        /// create position /
        /// создать сделку
        /// </summary>
        public Position CreatePosition(string botName, Side direction, decimal priceOrder, decimal volume, OrderPriceType priceType, TimeSpan timeLife,
                                       Security security, Portfolio portfolio, StartProgram startProgram)
        {
            Position newDeal = new Position();

            newDeal.Number    = NumberGen.GetNumberDeal(startProgram);
            newDeal.Direction = direction;
            newDeal.State     = PositionStateType.Opening;

            newDeal.AddNewOpenOrder(CreateOrder(direction, priceOrder, volume, priceType, timeLife, startProgram, OrderPositionConditionType.Open));

            newDeal.NameBot       = botName;
            newDeal.Lots          = security.Lot;
            newDeal.PriceStepCost = security.PriceStepCost;
            newDeal.PriceStep     = security.PriceStep;
            newDeal.PortfolioValueOnOpenPosition = portfolio.ValueCurrent;

            return(newDeal);
        }
Exemple #29
0
    public OneLegArbitrage(string name, StartProgram startProgram)
        : base(name, startProgram)
    {
        TabCreate(BotTabType.Index);
        _tab1 = TabsIndex[0];

        Regime   = CreateParameter("Regime", "Off", new[] { "Off", "On", "OnlyLong", "OnlyShort", "OnlyClosePosition" });
        Volume   = CreateParameter("Volume", 3, 1.0m, 50, 4);
        Slippage = CreateParameter("Slipage", 0, 0, 20, 1);

        _ma = IndicatorsFactory.CreateIndicatorByName("Sma", name + "MovingAverage", false);
        _ma = (Aindicator)_tab1.CreateCandleIndicator(_ma, "Prime");
        _ma.Save();

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

        _tab2.CandleFinishedEvent += Strateg_CandleFinishedEvent;
    }
Exemple #30
0
        public ParabolicSarTrade(string name, StartProgram startProgram)
            : base(name, startProgram)
        {
            TabCreate(BotTabType.Simple);
            _tab = TabsSimple[0];

            _sar = new ParabolicSaR(name + "Prime", false);
            _sar = (ParabolicSaR)_tab.CreateCandleIndicator(_sar, "Prime");
            _sar.Save();

            _tab.CandleFinishedEvent += Strateg_CandleFinishedEvent;

            Slipage   = 0;
            VolumeFix = 1;

            Load();

            DeleteEvent += Strategy_DeleteEvent;
        }
 public virtual IEnumerator<ITask> StartLegoProgramHandler(StartProgram startLegoProgram)
 {
     yield return Arbiter.Choice(_legoBrickPort.SendNxtCommand(
         new nxtcmd.LegoStartProgram(startLegoProgram.Body.Program)),
         delegate(nxtcmd.LegoResponse ok)
         {
             startLegoProgram.ResponsePort.Post(DefaultSubmitResponseType.Instance);
         },
         delegate(Fault fault)
         {
             startLegoProgram.ResponsePort.Post(fault);
         });
     yield break;
 }