futures io futures trading

Categories Help    

MultiCharts Downloads / MultiCharts Indicators

Share MultiCharts indicators, EasyLanguage indicators.

Sort by

Show full/short entries Entries
Donchian Channel
MultiCharts .NET64 Version 12.0 Release (Build 18187)

using System;
using System.Drawing;
using System.Linq;
using PowerLanguage.Function;

namespace PowerLanguage.Indicator
	public class Donchian Channel : IndicatorObject
		public Donchian Channel(object _ctx):base(_ctx)
			n_bars = 5;

        public int n_bars { get; set; }
		private IPlotObject plothigh, plotlow;
		protected override void Create()
			plothigh = AddPlot(new PlotAttributes("plothigh", EPlotShapes.Line, Color.Red));
			plotlow = AddPlot(new PlotAttributes("plotlow", EPlotShapes.Line, Color.Red));
		protected override void StartCalc()
		protected override void CalcBar()
			if(Bars.High[5] > 0 && Bars.Low[5] > 0)
Suggest other entries I might like
Details: Donchian Channel

October 7th, 2019
Size: 1.73 KB
Downloaded: 78 times
Market Acceleration Indicator
Hi Traders,
I find it necessary to make sure to stay out of the markets when they are "slow" vs "fast". However, historically that is challenging as it has been quite subjective. Watching the time and sales order flow gives a sense, but what is fast now vs earlier or another time period is still subjective.

I wrote the following simple indicator which gives some level of quantitative visibility if the mkt is moving fast vs slow. The indicator takes the time difference between the the last tick update of the bar compared to the previous tick update. A slower market will have a longer duration and therefore a larger value. A fast market will have very short durations of updates with values closer to 0.

I trade with tick charts so that is the lens that I am viewing this indicator. I wanted to have the values coincide with visual trend of values that are trending "up" (faster) vs "down" indicating slower mkts. That is why I applied a sign reversal to the values in the code.

When using the indicator, values closer to 0 indicates very fast, vs. values with larger negative values represent a slower market (hence the duration between updates is longer in duration). In the screenshot, I have a green line and red line manually applied which are my thresholds for fast vs slow. Those levels were based on my own analysis and screen time of the market being traded. You will have to gauge levels yourself based on the market and chart used.

Suggestions welcome and glad to contribute.

Code written in easy-language with use with MC 64 v12.0

Indicator version v000.01

Suggest other entries I might like
Details: Market Acceleration Indicator

March 29th, 2019
Size: 9.21 KB
Downloaded: 162 times
RSI Clone of the original Jurik RSX
I came across some code in that plotted an RSI clone of the original Jurik RSX indicator. I have no idea if there is any similarity between the two. But, it was fun converting the code into multicharts. I am giving the code here.
I have attached a PLA file which can be use by multichart users. Also an image showing the RSX Clone together with the original RSI

Name: RSI Clone of the original Jurik RSX
Version: 1.00
Date: 21-08-2017

{Mark Jurik is a well known and respected name in technical analysis. he provides a number of advanced tools to traders.
The JMA is his product, which is a smoother, less noisy and low lag moving average.
Mr Jurik also provides a smoother, low lag RSI. 
I cam accross a code in which calculated a Jurik RSI Clone. Now,it is quite possible that the clone may be
nothing like the original Jurik RSI.
But, for whatever it is worth, I converted the tradingview code into Multicharts which is easylanguage compatible}

{ Trading viewcode is here:}

input: src(close), Length(14), lvlob(70), lvlos(30), mid(50);
vars: f90_(1), f88(1);
vars: clampmax(0), clampmin(0);
vars: f8(1), f18(1),f20(1),f10(1),v8(1);
vars: f28(1), f30(1), vC(1);
vars: f38(1),f40(1), v10(1),f48(1),f50(1),v14(1),f58(1),f60(1),v18(1);
vars: f68(1),f70(1), v1C(1), f78(1),f80(1), f90(1), v20(1),f0(1),v4(1),v4_(1),rsx(1);

clampmax = 100;
clampmin = 0;

if currentbar > 1 then begin
if f90_[1] = 0 then begin
f90_ = 1;
else begin 
if f88[1] <= f90_[1] then begin
f90_ = f88[1] + 1; 
else begin
f90_ = f90_[1] + 1;

if f90_[1] = 0.0 and (length-1 >= 5) then begin
f88 = Length - 1.0;
else begin
f88 = 5.0;

f8 =  100.0*(src); 
f18 = 3.0 / (length + 2.0) ;
f20 = 1.0 - f18 ;
f10 = f8[1];
v8 = f8 - f10 ;

f28 = f20 * f28[1] + f18 * v8; 
f30 = f18 * f28 + f20 * f30[1];
vC = f28 * 1.5 - f30 * 0.5; 

f38 = f20 * f38[1] + f18 * vC; 
f40 = f18 * f38 + f20 * f40[1];
v10 = f38 * 1.5 - f40 * 0.5; 
f48 = f20 * f48[1] + f18 * v10; 
f50 = f18 * f48 + f20 * f50[1];
v14 = f48 * 1.5 - f50 * 0.5; 
f58 = f20 * f58[1] + f18 * absvalue(v8); 
f60 = f18 * f58 + f20 * f60[1];
v18 = f58 * 1.5 - f60 * 0.5;

f68 = f20 * f68[1] + f18 * v18; 
f70 = f18 * f68 + f20 * f70[1];
v1C = f68 * 1.5 - f70 * 0.5; 
f78 = f20 * f78[1] + f18 * v1C;  
f80 = f18 * f78 + f20 * f80[1]; 
v20 = f78 * 1.5 - f80 * 0.5;

if (f88 >= f90_) and (f8 <> f10) then 
f0 = 1.0 else f0 = 0.0;

if (f88 = f90_) and (f0 = 0.0) then f90 = 0 else f90 = f90_;

if (f88 < f90) and (v20 > 0.0000000001) then
v4_ =  (v14 / v20 + 1.0) * 50.0 
v4 = 50.0;

if (v4_ > 100.0) then begin
rsx = 100.0;
else begin
if v4_ < 0.0 then rsx = 0 else rsx = v4_;

Suggest other entries I might like
Details: RSI Clone of the original Jurik RSX

August 21st, 2017
Size: 8.60 KB
Downloaded: 202 times
Custom Fibonacci Floor Trader Pivots MC.NET 10 5 *
Here's a set of Fibonacci pivots built off of the Custom Floor Trader Pivots generously supplied by Japhro.

Fibonacci pivot points start just the same as standard pivot points. From the base pivot point, Fibonacci multiples of the high-low differential are added to form resistance levels and subtracted to form support levels.

PLN file is zipped to allow upload.
Suggest other entries I might like
Details: Custom Fibonacci Floor Trader Pivots MC.NET 10

April 4th, 2017
Size: 3.61 KB
Downloaded: 145 times
Custom PSAR for MC.NET 10
This is the standard PSAR supplied with MC.NET with the option to change the color of the Bullish and Bearish plots.

PLN file is zipped to allow upload.
Suggest other entries I might like
Details: Custom PSAR for MC.NET 10

April 2nd, 2017
Size: 1.49 KB
Downloaded: 67 times
Custom Floor Trader Pivots for MC.NET 5 *
I wasn't a fan of the standard floor trader pivots indicator in so I had someone revamp it, it was a paid job, since I am not a programmer but I am happy to share it here. My contribution to the community, I suppose.

The standard pivots had a dashed line, even if you selected line, the older sessions pivots cluttered up the chart and the labelling wasn't to my liking, with only markers that covered up the last price marker on the chart axis. We also added pivot mid-points which in my trading experience are very important. Hope you like this one better doesn't allow me to upload the file as is with the .pln extension, so I had to zip it

Since all MC.NET indicators are .pln extension perhaps that can be added to the list of acceptable file types to upload?
Thanks - J
Suggest other entries I might like
Details: Custom Floor Trader Pivots for MC.NET

September 16th, 2016
Size: 3.62 KB
Downloaded: 192 times
DMI change bar color 2 *
I want to change the ID code to change color when there is current bar cross between DM + DM uphill (blue) and down (red). The other bars are still black. View Source (not working)

using System.Drawing;
using PowerLanguage.Function;

namespace PowerLanguage.Indicator
public class DMI_joa : IndicatorObject
private DirMovement m_dirmovement1;

private IPlotObject Plot1;

private IPlotObject Plot2;

private IPlotObject Plot3;

public DMI_joa(object ctx) :
adxtrend = 25;
length = 8;

public int length { get; set; }

public double adxtrend { get; set; }

public Color UpbarColour { get; set; }

public Color DownBarColour { get; set; }

private IPlotObject plotOpen, plotHigh, plotLow, plotClose;

protected override void Create(){
m_dirmovement1 = new DirMovement(this);
Plot1 =
AddPlot(new PlotAttributes("DMI+", 0, Color.Blue,
Color.Empty, 0, 0, true));
Plot2 =
AddPlot(new PlotAttributes("DMI-", 0, Color.Red,
0, 0, true));
Plot3 =
AddPlot(new PlotAttributes("ADX", 0, Color.Cyan,
Color.Empty, 0, 0, false));

// Initialize the IPlotObjects
plotHigh = AddPlot(new PlotAttributes("High",
EPlotShapes.BarHigh, Color.Black));
plotLow = AddPlot(new PlotAttributes("Low",
EPlotShapes.BarLow, Color.Black));
plotOpen = AddPlot(new PlotAttributes("Open",
EPlotShapes.LeftTick, Color.Black));
plotClose = AddPlot(new PlotAttributes("Close",
EPlotShapes.RightTick, Color.Black));

// Default values for the inputs
UpbarColour = Color.Green;
DownBarColour = Color.Red;

protected override void StartCalc(){
m_dirmovement1.PriceH = Bars.High;
m_dirmovement1.PriceL = Bars.Low;
m_dirmovement1.PriceC = Bars.Close;
m_dirmovement1.Length = length;

protected override void CalcBar(){
Plot1.Set(0, m_dirmovement1.DMIPlus.Value);
Plot2.Set(0, m_dirmovement1.DMIMinus.Value);
Plot3.Set(0, m_dirmovement1.ADX.Value);

if (PublicFunctions.DoubleGreater(m_dirmovement1.ADX.Value, adxtrend))
if (this.CrossesOver(m_dirmovement1.DMIPlus, m_dirmovement1.DMIMinus))
Alerts.Alert("Bullish alert");
// plotOpen.Set(Bars.Open[0], UpbarColour);
// plotHigh.Set(Bars.High[0], UpbarColour);
// plotLow.Set(Bars.Low[0], UpbarColour);
// plotClose.Set(Bars.Close[0], UpbarColour);
if (this.CrossesUnder(m_dirmovement1.DMIPlus, m_dirmovement1.DMIMinus))
Alerts.Alert("Bearish alert");
// plotOpen.Set(Bars.Open[0], DownBarColour);
// plotHigh.Set(Bars.High[0], DownBarColour);
// plotLow.Set(Bars.Low[0], DownBarColour);
// plotClose.Set(Bars.Close[0], DownBarColour);

I tried to SetPlotColor and PlotPaintBar and do not get
By the way I use
Can you help me? Thank you
Suggest other entries I might like
Details: DMI change bar color

November 16th, 2015
Size: 14.72 KB
Downloaded: 83 times
improved Keltner Channel and Bollinger Bands 5 *
Version: 20150901

Improvements comparing to out-of-box BB and KC indicators:
1) It is rewritten based on underlying functions, so that when you need to write strategy, you can call the function directly.
2) it gives you choice of moving average type. I only enable EMA and SMA, but you can add more with simple coding.
3) the mid line can be in two colors when it is up/down from last bar.
Suggest other entries I might like
Details: improved Keltner Channel and Bollinger Bands

September 1st, 2015
Size: 4.37 KB
Downloaded: 361 times
Bid/Ask/Last Price Line (for MC .NET) 5 *
A multicharts .NET C# version of the bid / ask / last price lines I used on Ninja. Haven't tested it on all timeframes or instruments, but looks good on futures.

Coded with much inspiration from the Market_Depth_on_Chart_2 indicator included with MC.

Updates on a 0.2 sec timer rather than ticks, so the bid/ask can be drawn when they change without trades.

This is Version 1, posted 6/18/2015.

Version 2, posted 12/23/2015.
  • Fixes problems with not allowing changes to colors & widths.
  • Cheap hack to work around a bug introduced into MultiCharts .NET builds > 12000. Their "ChartPoint2Point()" is broken now for volume and range charts. Now the price line simply draws 15 bars to the right of the last bar.
Suggest other entries I might like
Details: Bid/Ask/Last Price Line (for MC .NET)

June 18th, 2015
Size: 1.70 KB
Downloaded: 191 times
US Dollar Index Multicharts Indicator
After not being able to find a suitable source for this data without another data subscription, I decided to make my own indicator. It calculates the dollar index from 6 forex pairs. Pairs must be entered in the correct sequence to have it calculate properly. I have the six pairs entered and then hidden on the chart so that only the indicator shows.

Indicator txt code:

{US Dollar Index Calculated from Currency Pairs EURUSD, USDJPY, GBPUSD, USDCAD, USDSEK, and USDCHF.

Version 1.0


Instruments must be entered in above order.

Formula for calculation:

USDx = 50.14348112 * EURUSD^(-0.576) * USDJPY^0.136 * GBPUSD^(-0.119) * USDCAD^0.091 * USDSEK^0.042 * USDCHF^0.036 }


EURUSD( Close Data1 ),
USDJPY( Close Data2 ),
GBPUSD( Close Data3 ),
USDCAD( Close Data4 ),
USDSEK( Close Data5 ),
USDCHF( Close Data6 );



USDx = 50.14348112*Power(EURUSD,(-0.576))*Power(USDJPY,0.136)*Power(GBPUSD,(-0.119))*Power(USDCAD,0.091)*Power(USDSEK,0.042)*Power(USDCHF,0.036);

Plot1 ( USDx, "USDx" ) ;
Suggest other entries I might like
Details: US Dollar Index Multicharts Indicator

November 28th, 2014
Size: 3.24 KB
Downloaded: 132 times


Copyright © 2020 by futures io, s.a., Av Ricardo J. Alfaro, Century Tower, Panama, +507 833-9432,
All information is for educational use only and is not investment advice.
There is a substantial risk of loss in trading commodity futures, stocks, options and foreign exchange products. Past performance is not indicative of future results.