AlexandrDruz

Moderators
  • Content count

    21
  • Joined

  • Last visited

Community Reputation

11 Good

About AlexandrDruz

  • Rank
    Member
  • Birthday 09/09/2009
  1. Для того чтобы наши специалисты могли дать квалифицированный ответ, данный запрос необходимо отправить в Службу клиентской поддержки на сайте https://www.ubkmarkets.com/account/support/new
  2. Здравствуйте, Kenst. Благодарим за Ваш ответ. Ошибка при модификации значений Stop Loss и Take Profit была устранена нашими разработчиками и передана в тестирование. Обновление с исправлениями будет выложено в Play Market после успешного прохождения этапа тестирования. Наши специалисты продолжают работы над остальными вопросами, описанными Вами. Благодарим за отзыв и помощь в развитии приложения.
  3. Пожалуйста, попробуйте в настройках графика отключить функцию "Торговые уровни" и напишите нам о результате. Также уточните, Вы запускаете программу из фонового режима или котировки "висят" после логина? Укажите Версию Вашей операционной системы.
  4. Торговый робот написанный под терминал МТ4 не сможет работать на площадке iPro Marketplace, т.к. для разработки используются разные языки программирования. Вы можете создать собственную АТС на базе языка программирования C#.
  5. Ошибка

    Уточните пожалуйста, письмо с данной ошибкой Вы направили в службу поддержки и не получили ответ?
  6. Ошибка

    Для того чтобы наши специалисты могли дать квалифицированный ответ, Вам необходимо зайти в свой Личный кабинет на сайте https://www.ubkmarkets.com под своим логином и паролем, и написать письмо в службу клиентской поддержки https://www.ubkmarkets.com/account/support/new. В письме необходимо детально указать суть возникающей ошибки и приложить скриншоты.
  7. Не отменяется отложенный ордер

    Конструктор типа DateTime принимает значение часов (hours) в 24 значном формате. То есть expTime = new DateTime(ServerTime.Year, ServerTime.Month, ServerTime.Day, 2, 0, 0); это 2 часа ночи. Пример использования локального времени (времени пользовательского ПК): //ордер будет отменен в 15:45 expTime = new DateTime(ServerTime.Year, ServerTime.Month, ServerTime.Day, 15, 45, 0); TradeResult result = Trade.OpenPendingPosition(Instrument.Id, ExecutionRule.SellLimit, 0.01, Instrument.Ask + 0.02, 0, Stops.InPips(300, 300), expTime, "Order CANCELPOS", null); Пример использования серверного времени: //ордер будет отменен через 45 минут var expTime = new DateTime(ServerTime.Year, ServerTime.Month, ServerTime.Day, ServerTime.Hour, ServerTime.Minute + 45, 0); var expTimeServer = DateTime.SpecifyKind(expTime, DateTimeKind.Utc); TradeResult result = Trade.OpenPendingPosition(Instrument.Id, ExecutionRule.SellLimit, 0.01, Instrument.Ask + 0.02, 0, Stops.InPips(300, 300), expTimeServer, "Order CANCELPOS", null);
  8. На данный момент у нас не предусмотрена такая возможность. Только по цене.
  9. Можно. Пример кода: using System; using IPro.Model.MarketData; using IPro.Model.Trade; using IPro.Model.Client.Trade; using IPro.Model.Programming; using IPro.Model.Programming.Indicators; using IPro.Model.Programming.Chart; using IPro.Model.Programming.TradeSystems; using IPro.Model.Client.MarketData; namespace IPro.Indicators { [Indicator("Example")] public class Example : Indicator { private ISeries<Bar> _barSerie; [Series("Result")] public IIndicatorSeries Result { get; set; } //метод для получения серии баров по заданному инструменту и таймфрейму private ISeries<Bar> GetAnotherTimeframe(Guid instrumentId, Period period) { return GetCustomSeries(instrumentId, period); } protected override void Calculate(int index) { if (_barSerie == null) { //получаем серию баров по текущему инструменту с таймфреймом H4 _barSerie = GetAnotherTimeframe(Instrument.Id, new Period(PeriodType.Hour, 4)); } // calculate } } } Но для загрузки баров необходимо какое-то время, всё зависит от качества интернет связи и загружаемого количества баров (загрузка происходит асинхронно).
  10. Основные моменты: подключить namespacre (using), в котором лежит индикатор и добавить аттрибут [assembly:ReferenceIndicator("Название_Индикатора")] с названием индикатора. Пример индикатора: using System; using IPro.Model.MarketData; using IPro.Model.Trade; using IPro.Model.Client.Trade; using IPro.Model.Programming; using IPro.Model.Programming.Indicators; using IPro.Model.Programming.Chart; using IPro.Model.Programming.TradeSystems; namespace IPro.Indicators { [Indicator("CustomAlligator", Location = IndicatorLocation.Chart, LevelsAllowed = false)] public class CustomAlligator : Indicator { [Parameter("LR_Jaws_Period", DefaultValue = 13, MinValue = 1)] public int JawsPeriod { get; set; } [Parameter("LR_Jaws_Shift", DefaultValue = 8, MinValue = -1000, MaxValue = 1000)] public int JawsShift { get; set; } [Parameter("LR_Teeth_Period", DefaultValue = 8, MinValue = 1)] public int TeethPeriod { get; set; } [Parameter("LR_Teeth_Shift", DefaultValue = 5, MinValue = -1000, MaxValue = 1000)] public int TeethShift { get; set; } [Parameter("LR_Lips_Period", DefaultValue = 5, MinValue = 1)] public int LipsPeriod { get; set; } [Parameter("LR_Lips_Shift", DefaultValue = 3, MinValue = -1000, MaxValue = 1000)] public int LipsShift { get; set; } [Parameter("LR_Method", DefaultValue = MaMethods.Smma)] public MaMethods Method { get; set; } [Parameter("LR_Price_Mode", DefaultValue = PriceMode.Median)] public PriceMode PriceMode { get; set; } [Series("LR_Jaws", Color = Color.Blue)] public IIndicatorSeries JawsSeries { get; set; } [Series("LR_Teeth", Color = Color.Red)] public IIndicatorSeries TeethSeries { get; set; } [Series("LR_Lips", Color = Color.Lime)] public IIndicatorSeries LipsSeries { get; set; } protected override int TotalPeriod { get { return Math.Max(JawsPeriod, Math.Max(TeethPeriod, LipsPeriod)); } } protected override void Calculate(int index) { JawsSeries[index + JawsShift] = Series.Ma(index, JawsPeriod, PriceMode, Method); TeethSeries[index + TeethShift] = Series.Ma(index, TeethPeriod, PriceMode, Method); LipsSeries[index + + LipsShift] = Series.Ma(index, LipsPeriod, PriceMode, Method); } } } Пример использования его в стратегии: using System; using IPro.Model.MarketData; using IPro.Model.Trade; using IPro.Model.Client.Trade; using IPro.Model.Programming; using IPro.Model.Programming.Indicators; using IPro.Model.Programming.Chart; using IPro.Model.Programming.TradeSystems; using IPro.Model.Programming.Indicators.Standard; using IPro.Model.Client.MarketData; using System.Collections.Generic; //добавляем namespace, в котором лежит индикатор using IPro.Indicators; //добавляем аттрибут, указываем нужный индикатор [assembly:ReferenceIndicator("CustomAlligator")] namespace IPro.TradeSystems { [TradeSystem("StrategyWithCustomAlligator")] public class StrategyWithCustomAlligator : TradeSystem { private Period _period = new Period(PeriodType.Hour, 4); // Simple parameter example [Parameter("Some comment", DefaultValue = "Hello, world!")] public string CommentText { get; set; } protected override void Init() { //создаем пользовательский индикатор var custom = GetIndicator<CustomAlligator>(Instrument.Id, Timeframe); // Event occurs once at the start of the strategy Print("Starting TS on account: {0}, comment: {1}", this.Account.Number, CommentText); } protected override void NewQuote() { // Event occurs on every new quote } protected override void NewBar() { // Event occurs on every new bar } protected override void PositionChanged(IPosition position, ModificationType type) { // Event occurs on every change of the positions if (type==ModificationType.Closed) { Print("Position {0} was closed at price {1}", position.Number, position.ClosePrice); } } } }
  11. Кастомный индикатор должен быть в namespace IPro.Indicators. Важно совпадение атрибута и имени класса индикатора (в примере имя - SA). namespace IPro.Indicators { [Indicator("SA")] public class SA : Indicator В торговой стратегии необходимо в using добавить две строчки. Пример: using IPro.Indicators; [assembly:ReferenceIndicator("SA")] Ну и дальше вызывать его как обычно: var indCustom = GetIndicator<SA>(Instrument.Id, Timeframe);
  12. Получение серии баров

    Можно. Пример получения серии баров для EURSEK: var guid = new System.Guid("270d98a2-f40a-42ab-880f-030e60f692b9"); var barSeries = GetCustomSeries(guid, Timeframe); Но стоит учесть, что для загрузки баров необходимо какое-то время, всё зависит от качества интернет связи и загружаемого количества баров.
  13. Отмена отложенных ордеров

    Релиз версии 1.3.3 ожидается в конце февраля.
  14. Отмена отложенных ордеров

    Решение данной проблемы запланировано в релизе 1.3.3
  15. iPro Marketplace — Версия 1.3.0

    Создавая стратегию, Вы можете указать в коде на основании каких событий или цен будут открываться позиции.