/// <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(); }
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, чтобы удалялись все файлы робота }
private StrategyParameterInt alarn_persent; // с каким использованным % депо можно закрывать убыточную сделку public Frankbol_for_bnb(string name, StartProgram startProgram) : base(name, startProgram) // конструктор { TabCreate(BotTabType.Simple); // создание простой вкладки _tab = TabsSimple[0]; // записываем первую вкладку в поле kvot_name = "USDT"; // тут надо указать - инициализировать название квотируемой валюты (деньги) tovar_name = "BNB"; // тут надо указать - инициализировать название товара vkl_Robota = CreateParameter("РОБОТ Включен?", false); slippage = CreateParameter("Велич. проскаль.у ордеров", 1m, 1m, 200m, 5m); profit = CreateParameter("ТЭЙКПРОФИТ от рынка На ", 10, 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("Сколько ПРИБЫЛИ закрывать стоп ордером? ", 1m, 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("АВАРИЙНЫЙ ОБЪЕМ ПРОДАЖ", 450, 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("% купленного можно сливать = ", 25, 50, 100, 1); _bolin = new Bollinger(name + "Bollinger", false); _bolin.Lenght = 20; _bolin.Deviation = 2.2m; _bolin = (Bollinger)_tab.CreateCandleIndicator(_bolin, "Prime"); _bolin.Save(); block_in = true; // инициализируем значение блокировки _ma_short = new MovingAverage(name + "Ma5", true); _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; // событие новых тиков } // конструктор