예제 #1
0
        public MetaTraderTimeBarsAdapter(MtApiClient metaTraderProvider)
        {
            this.metaTraderProvider = metaTraderProvider ?? throw new ArgumentNullException(nameof(metaTraderProvider));
            this.lastCandeAdded     = new Subject <ICandle>();
            this.timesBarCollection = new CandleCollection();
            this.lastCandleIndex    = 0;

            this.metaTraderProvider.OnLastTimeBar += FireOnLastTimeBar;
        }
예제 #2
0
        public TradeMonitor(MtApiClient apiClient)
        {
            if (apiClient == null)
            {
                throw new ArgumentNullException(nameof(apiClient));
            }

            _apiClient = apiClient;
        }
예제 #3
0
        public MtAPIFacade(string host, int port)
        {
            this._MtApiClient = new MtApiClient();
            this.host         = host;
            this.port         = port;

            _MtApiClient.ConnectionStateChanged += MtApiClient_ConnectionStateChanged;
            _MtApiClient.OnLastTimeBar          += MtApiClient_OnLastTimeBar;
        }
        public MainPageViewModel(MtApiClient metaTraderProvider, IMarketEventsLogger marketEventsLogger)
        {
            this.metaTraderProvider = metaTraderProvider ?? throw new ArgumentNullException(nameof(metaTraderProvider));
            this.marketEventsLogger = marketEventsLogger ?? throw new ArgumentNullException(nameof(marketEventsLogger));

            this.metaTraderProvider.ConnectionStateChanged += ProviderConnectionStateChanged;

            ConnectMetaTraderCommand = new DelegateCommand(() => ConnectMetaTrader());
            NotConnected             = true;
        }
예제 #5
0
        private MT4APICharts()
        {
            apiClient = new MtApiClient();
            // apiClient.QuoteUpdated += ApiClient_QuoteUpdated;
            apiClient.QuoteUpdate            += ApiClient_QuoteUpdate;
            apiClient.ConnectionStateChanged += ApiClient_ConnectionStateChanged;

            _timerTradeMonitor = new TimerTradeMonitor(apiClient)
            {
                Interval = 10000
            };                                                                          // 10 sec
            _timerTradeMonitor.AvailabilityOrdersChanged += _tradeMonitor_AvailabilityOrdersChanged;

            _timeframeTradeMonitor = new TimeframeTradeMonitor(apiClient);
            _timeframeTradeMonitor.AvailabilityOrdersChanged += _tradeMonitor_AvailabilityOrdersChanged;

            apiClient.OnLastTimeBar += apiClient_OnLastTimeBar;
            //Connect to MT
            _timerTradeMonitor.Start();
            _timeframeTradeMonitor.Start();
            apiClient.BeginConnect(8222);
        }
예제 #6
0
 /// <summary>
 ///  Constructor for initializing a new instance with a custom instance of <see cref="TimeElapsedTrigger"/>.
 /// <para>SyncTrigger is set to false by default</para>
 /// </summary>
 /// <param name="apiClient">The <see cref="MtApiClient"/> which will be used to communicate with MetaTrader.</param>
 /// <param name="timeElapsedTrigger">The custom instance of <see cref="TimeElapsedTrigger"/> which will be used to trigger this instance of <see cref="TradeMonitor"/>.</param>
 public TimerTradeMonitor(MtApiClient apiClient, TimeElapsedTrigger timeElapsedTrigger)
     : base(apiClient, timeElapsedTrigger)
 {
     _timeElapsedTrigger = timeElapsedTrigger;
 }
예제 #7
0
 /// <summary>
 /// Constructor for initializing a new instance with a default <see cref="Interval"/> of 10 seconds.
 /// <para>SyncTrigger is set to true by default</para>
 /// </summary>
 /// <param name="apiClient">The <see cref="MtApiClient"/> which will be used to communicate with MetaTrader.</param>
 public TimerTradeMonitor(MtApiClient apiClient)
     : this(apiClient, new TimeElapsedTrigger(TimeSpan.FromSeconds(10)))
 {
     SyncTrigger = true; //Sync-Trigger set to true, to have the same behavior as before
 }
 public BaseTechnicalIndicator(MtApiClient metaTraderProvider)
 {
     this.metaTraderProvider = metaTraderProvider ?? throw new ArgumentNullException(nameof(metaTraderProvider));
 }
예제 #9
0
 public StatusBarViewModel(MtApiClient metaTraderProvider)
 {
     this.metaTraderProvider = metaTraderProvider ?? throw new ArgumentNullException(nameof(metaTraderProvider));
     this.metaTraderProvider.ConnectionStateChanged += MetaTraderProviderConnectionStateChanged;
 }
예제 #10
0
 public BaseCommandHandler(MtApiClient metaTraderProvider)
 {
     this.metaTraderProvider = metaTraderProvider ?? throw new ArgumentNullException(nameof(metaTraderProvider));
 }
예제 #11
0
 public RelativeStrengthIndex(MtApiClient metaTraderProvider)
     : base(metaTraderProvider)
 {
 }
예제 #12
0
 public ModifiedOrdersMonitor(MtApiClient apiClient, IMonitorTrigger monitorTrigger, OrderModifiedTypes orderModifiedTypes = OrderModifiedTypes.All, bool syncTrigger = false)
     : base(apiClient, monitorTrigger, syncTrigger)
 {
     _lastOrders        = GetOrders();
     OrderModifiedTypes = orderModifiedTypes;
 }
예제 #13
0
 /// <summary>
 /// Constructor for initializing a new instance with a trigger instance of <see cref="NewBarTrigger"/>.
 /// <para>SyncTrigger is set to true by default</para>
 /// </summary>
 /// <param name="apiClient">The <see cref="MtApiClient"/> which will be used to communicate with MetaTrader.</param>
 public TimeframeTradeMonitor(MtApiClient apiClient)
     : base(apiClient, new NewBarTrigger(apiClient))
 {
     SyncTrigger = true; //Sync-Trigger set to true, to have the same behavior as before
 }
 public MetaTraderMarketListenerAdapter(MtApiClient metaTraderProvider)
 {
     this.metaTraderProvider              = metaTraderProvider ?? throw new ArgumentNullException(nameof(metaTraderProvider));
     this.metaTraderProvider.QuoteUpdate += FireOnQuotedUpdated;
     this.quotedUpdated = new Subject <IQuote>();
 }
예제 #15
0
 public MovingAverage(MtApiClient metaTraderProvider)
     : base(metaTraderProvider)
 {
 }
예제 #16
0
 public TimerTradeMonitor(MtApiClient apiClient)
     : base(apiClient)
 {
     _timer.Interval = 10000; //default interval 10 sec
     _timer.Elapsed += _timer_Elapsed;
 }
예제 #17
0
 /// <summary>
 /// Constructor for initializing an instance of <see cref="TradeMonitor"/>.
 /// </summary>
 /// <param name="apiClient">The <see cref="MtApiClient"/> which will be used to communicate with MetaTrader.</param>
 /// <param name="monitorTrigger">The custom instance of <see cref="IMonitorTrigger"/> which will be used to trigger this instance of <see cref="TradeMonitor"/>.</param>
 public TradeMonitor(MtApiClient apiClient, IMonitorTrigger monitorTrigger) : base(apiClient, monitorTrigger)
 {
 }
예제 #18
0
 public TimeframeTradeMonitor(MtApiClient apiClient)
     : base(apiClient)
 {
     apiClient.OnLastTimeBar += ApiClient_OnLastTimeBar;
 }
예제 #19
0
 public NewBarTrigger(MtApiClient apiClient)
 {
     _apiClient = apiClient;
     _apiClient.OnLastTimeBar += _apiClient_OnLastTimeBar;
 }