Using MC.net As A Data Server

Questions about MultiCharts .NET and user contributed studies.
Gann_Man
Posts: 85
Joined: 01 Jul 2007
Location: Missouri
Has thanked: 7 times
Been thanked: 2 times

Using MC.net As A Data Server

Postby Gann_Man » 08 May 2018

Hi all,
I've been using MC since 7/2007 and MC.net since 8/2012.

Looking for some advice or web links for help. What I'm wanting to do is use MC.net for connecting to my real-time data feeds and be able to somehow send this market data simultaneously to my other trading platforms, e.g: MC Standard, NT, Ensign, SC, Optuma, updating in real-time.

The best way to visualize this idea is to watch these 2 short, 3 minute, youtube videos:
https://www.youtube.com/watch?v=XkXwoQISX3I
https://www.youtube.com/watch?v=JmQXCLCqDgk
I currently use this setup in Ensign for charting. NT sends 9000 bars of 1-minute data to Ensign and updates tic-by-tic! Very cool!

I also found this tool but unsure if it will do what I need or how to implement it:
https://fx1.net/sharedvar.php

This is beyond my capability to code and willing to pay $$ someone to code it for me.

Thanks everybody for any help or direction!

User avatar
Anna MultiCharts
Posts: 560
Joined: 14 Jul 2017
Has thanked: 42 times
Been thanked: 140 times

Re: Using MC.net As A Data Server

Postby Anna MultiCharts » 11 May 2018

Hello, Gann_Man!

There’s no pre-built functionality for this in MultiCharts.
As for regular MultiCharts your Sharedvar solution should be the easiest way to achieve this. You’ll need to create a study that when applied to a chart will stream the data from MultiCharts to another platform through the Sharedvar dll.
As for MultiCharts .NET – you can connect MultiCharts with e.g. NT using C#. Please search for the relevant instructions on the Internet.

Gann_Man
Posts: 85
Joined: 01 Jul 2007
Location: Missouri
Has thanked: 7 times
Been thanked: 2 times

Re: Using MC.net As A Data Server

Postby Gann_Man » 13 May 2018

Hello, Gann_Man!

There’s no pre-built functionality for this in MultiCharts.
As for regular MultiCharts your Sharedvar solution should be the easiest way to achieve this. You’ll need to create a study that when applied to a chart will stream the data from MultiCharts to another platform through the Sharedvar dll.
As for MultiCharts .NET – you can connect MultiCharts with e.g. NT Trader using C#. Please search for the relevant instructions on the Internet.
Anna,
Can you please provide more details or examples on how to "connect MultiCharts .NET with e.g. NT Trader using C#". I've been searching for days "for the relevant instructions on the Internet" with no luck. Can you please provide some links to these relevant instructions? Thank you!

Gann_Man
Posts: 85
Joined: 01 Jul 2007
Location: Missouri
Has thanked: 7 times
Been thanked: 2 times

Re: Using MC.net As A Data Server

Postby Gann_Man » 13 May 2018

Below is the NT c# code for connecting to my Ensign Software. I do not understand the c# language. I can only code in EL. Can this script be translated to MC.net? Also don't know if the included dll is generic or NT specific (can maybe get source code if needed). Here is the direct link to the NT Package: http://ensignsupport.com/eds/NT.Ensi ... .05.07.zip I have received permission from Ensign to hack on this code to get it working on MC.net. Willing to pay for help getting this code working on MC.net. Thank you!

Code: Select all

//
// Copyright (C) 2006, NT LLC <NT@NT.com>.
// NT reserves the right to modify or overwrite this NinjaScript component with each release.
//

#region Using declarations
using System;
using System.ComponentModel;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Xml.Serialization;
using NT.Data;
using NT.Gui.Chart;
#endregion

#region NinjaScript generated code. Neither change nor remove.
// This namespace holds all indicators and is required. Do not change it.
namespace NT.Indicator
{
public partial class Indicator : IndicatorBase
{
private EDS[] cacheEDS = null;

private static EDS checkEDS = new EDS();

/// <summary>
/// Ensign Data Server
/// </summary>
/// <returns></returns>
public EDS EDS(bool debug, string symbols)
{
return EDS(Input, debug, symbols);
}

/// <summary>
/// Ensign Data Server
/// </summary>
/// <returns></returns>
public EDS EDS(Data.IDataSeries input, bool debug, string symbols)
{
if (cacheEDS != null)
for (int idx = 0; idx < cacheEDS.Length; idx++)
if (cacheEDS[idx].Debug == debug && cacheEDS[idx].Symbols == symbols && cacheEDS[idx].EqualsInput(input))
return cacheEDS[idx];

lock (checkEDS)
{
checkEDS.Debug = debug;
debug = checkEDS.Debug;
checkEDS.Symbols = symbols;
symbols = checkEDS.Symbols;

if (cacheEDS != null)
for (int idx = 0; idx < cacheEDS.Length; idx++)
if (cacheEDS[idx].Debug == debug && cacheEDS[idx].Symbols == symbols && cacheEDS[idx].EqualsInput(input))
return cacheEDS[idx];

EDS indicator = new EDS();
indicator.BarsRequired = BarsRequired;
indicator.CalculateOnBarClose = CalculateOnBarClose;
#if NT7
indicator.ForceMaximumBarsLookBack256 = ForceMaximumBarsLookBack256;
indicator.MaximumBarsLookBack = MaximumBarsLookBack;
#endif
indicator.Input = input;
indicator.Debug = debug;
indicator.Symbols = symbols;
Indicators.Add(indicator);
indicator.SetUp();

EDS[] tmp = new EDS[cacheEDS == null ? 1 : cacheEDS.Length + 1];
if (cacheEDS != null)
cacheEDS.CopyTo(tmp, 0);
tmp[tmp.Length - 1] = indicator;
cacheEDS = tmp;
return indicator;
}
}
}
}

// This namespace holds all market analyzer column definitions and is required. Do not change it.
namespace NT.MarketAnalyzer
{
public partial class Column : ColumnBase
{
/// <summary>
/// Ensign Data Server
/// </summary>
/// <returns></returns>
[Gui.Design.WizardCondition("Indicator")]
public Indicator.EDS EDS(bool debug, string symbols)
{
return _indicator.EDS(Input, debug, symbols);
}

/// <summary>
/// Ensign Data Server
/// </summary>
/// <returns></returns>
public Indicator.EDS EDS(Data.IDataSeries input, bool debug, string symbols)
{
return _indicator.EDS(input, debug, symbols);
}
}
}

// This namespace holds all strategies and is required. Do not change it.
namespace NT.Strategy
{
public partial class Strategy : StrategyBase
{
/// <summary>
/// Ensign Data Server
/// </summary>
/// <returns></returns>
[Gui.Design.WizardCondition("Indicator")]
public Indicator.EDS EDS(bool debug, string symbols)
{
return _indicator.EDS(Input, debug, symbols);
}

/// <summary>
/// Ensign Data Server
/// </summary>
/// <returns></returns>
public Indicator.EDS EDS(Data.IDataSeries input, bool debug, string symbols)
{
if (InInitialize && input == null)
throw new ArgumentException("You only can access an indicator with the default input/bar series from within the 'Initialize()' method");

return _indicator.EDS(input, debug, symbols);
}
}
}
#endregion

Gann_Man
Posts: 85
Joined: 01 Jul 2007
Location: Missouri
Has thanked: 7 times
Been thanked: 2 times

Re: Using MC.net As A Data Server

Postby Gann_Man » 14 May 2018

Sorry about the bad link.
http://www.ensignsoftware.com/downloads.php DOWNLOAD NT 7 Script
Also has a 7-day free trial for: Ensign 10 Charting Software

User avatar
fbertram
Posts: 166
Joined: 16 Oct 2014
Location: Seattle, USA
Has thanked: 36 times
Been thanked: 76 times
Contact:

Re: Using MC.net As A Data Server

Postby fbertram » 14 May 2018

Hi Gann_Man,

I looked at the information you have provided. Unfortunately, this won't be a slam dunk. While the code looks very straightforward, the magic happens in the DLL that Ensign has provided as part of the package. This DLL links back to NT.Core, and cannot be used standalone. Unless Ensign provides the source code for their DLL, I am afraid there is not much I can do. Maybe you want to contact them and see if they are willing to provide the source code for that DLL.

Best regards, Felix

User avatar
Anna MultiCharts
Posts: 560
Joined: 14 Jul 2017
Has thanked: 42 times
Been thanked: 140 times

Re: Using MC.net As A Data Server

Postby Anna MultiCharts » 15 May 2018

Anna,
Can you please provide more details or examples on how to "connect MultiCharts .NET with e.g. NT Trader using C#". I've been searching for days "for the relevant instructions on the Internet" with no luck. Can you please provide some links to these relevant instructions? Thank you!
Gann_Man,

I’m afraid we don’t have such examples or instructions. You might want to contact Sharedvar support for assistance.


Return to “MultiCharts .NET”