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; }
/// <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(); }
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; // событие новых тиков } // конструктор
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; }
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, чтобы удалялись все файлы робота }
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> /// Конструктор класса робота /// </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(); }
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 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; // изменился объем в позиции }
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; }
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; }
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(); }
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; // событие успешного закрытия позиции }
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; }
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 }
// сервис 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; }
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(); }
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(); }