MultiCharts
futures io futures trading


Categories Help    

MultiCharts
MultiCharts Downloads / MultiCharts Indicators

Share MultiCharts indicators, EasyLanguage indicators.


Sort by
Filter

Show full/short entries Entries
Kaufman AMA with Trend Change
This indicator is the Kaufman Adaptive Moving Average, a/k/a KAMA, but which changes color when the indicator changes direction. This is a direct descendant of the Mov Avg Adaptive indicator that comes with MultiCharts.

I like single line indicators that change color when a trend changes, so this is my implementation of the KAMA with those attributes. The screenshot here is actually from TradeStation, but it looks and functions the same in MC.

Indicator Name: Mov Avg Adaptive Color Change
Inputs: Same as a normal KAMA, plus:
  • UsePlotColoring >>> set to true for coloring; false to turn it off
  • UpTrendColor >>> self explanatory
  • DownTrendColor >>> self explanatory
Small Difference in Original Calculation:
I added the Round2Fraction function to the MAA calculation, to round to the nearest minimum move for the chart. This helps filter out minor fluctuations when the indicator is practically flat, that may show a change in trend that isn't there. I don't believe this fundamentally changes anything, from my observations.

Import the PLA and apply to a chart. You're all set!

I posted a TradeStation version in that section, as the syntax is slightly different.
 
Suggest other entries I might like
Details: Kaufman AMA with Trend Change


September 30th, 2020
Size: 5.55 KB
Downloaded: 29 times

Keywords: adaptive average kama kaufman moving
Donchian Channel
MultiCharts .NET64 Version 12.0 Release (Build 18187)

 
Code
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;
		}

        [Input]
        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)
			{
				plothigh.Set(Bars.High.Highest(n_bars));
				plotlow.Set(Bars.Low.Lowest(n_bars));
			}
		}
	}
}
 
Suggest other entries I might like
Details: Donchian Channel


October 7th, 2019
Size: 1.73 KB
Downloaded: 82 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

Cheers,
JZ
 
Suggest other entries I might like
Details: Market Acceleration Indicator


March 29th, 2019
Size: 9.21 KB
Downloaded: 172 times
RSI Clone of the original Jurik RSX
I came across some code in tradingview.com 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

 
Code
{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 tradingview.com 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: https://www.tradingview.com/script/XzcIRUHv-JMA-RSX-Clone-LazyBear/}

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;
end
else begin 
if f88[1] <= f90_[1] then begin
f90_ = f88[1] + 1; 
end
else begin
f90_ = f90_[1] + 1;
end;
end;

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

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 
else
v4 = 50.0;

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

plot1(rsx,"RSX"); 
plot2(lvlob,"Res");
plot3(lvlos,"Sup");
plot4(mid,"mid");
 
Suggest other entries I might like
Details: RSI Clone of the original Jurik RSX


August 21st, 2017
Size: 8.60 KB
Downloaded: 207 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: 150 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: 70 times
Custom Floor Trader Pivots for MC.NET 5 *
I wasn't a fan of the standard floor trader pivots indicator in MC.net 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

Futures.io 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: 196 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) :
base(ctx){
adxtrend = 25;
length = 8;
}

[Input]
public int length { get; set; }

[Input]
public double adxtrend { get; set; }

[Input]
public Color UpbarColour { get; set; }

[Input]
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,
Color.Empty,
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(){
m_dirmovement1.Call();
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);
}
else{
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 multicharts.net
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: 86 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: 364 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.

UPDATE:
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: 193 times
 



 
Category
 



Copyright © 2020 by futures io, s.a., Av Ricardo J. Alfaro, Century Tower, Panama, +507 833-9432, info@futures.io
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.