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 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; }
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; }
/// <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); }
// 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); } }
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, чтобы удалялись все файлы робота }
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; }
/// <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; }
/// <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 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); }
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(); }
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; }
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); } }
// 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); } }
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(); }
/// <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(); }
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; } }
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; }
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; }
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); } }
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; }
/// <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(); } }
/// <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); }
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; }
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; }