How can I add the technical indicator Money Flow Index to the esignal chart? What is the formula and how can I add it to the esignal chart.
Announcement
Collapse
No announcement yet.
How can I add the technical indicator Money Flow Index to the esignal chart?
Collapse
X
-
1taffy1
See this article in the eSignal KnowledgeBase on how to add studies to a chart.
The Money Flow indicator is available both as a Built-In Study and as an EFS in Formulas->Built-in Studies Formulas->Custom Formulas
Alex
Originally posted by 1taffy1 View PostHow can I add the technical indicator Money Flow Index to the esignal chart? What is the formula and how can I add it to the esignal chart.
-
Thank you for your message about Money Flow Index
Thank you for your message.
I am looking for the technical indicator "Money Flow Index" not Money Flow.
The internet address that declares that esignal has the indicator "Money Flow Index" is the internet address: http://www.esignal.com/support/optio...Flow_Index.htm
I use esignal as the time frame goes down to one second and the trading platform, I use, on Ameritrade, Think or Swim, only goes down to one MINUTE.
Therefore, as I use 30 technical indicators on four monitors, I wish to duplicate the most important technical indicators, of which Money Flow Index is the most important on esignal.
Please find below the Ameritrade, Think Or Swim, "Money Flow Index", formula that Think Or Swim uses.
# TD Ameritrade IP Company, Inc. (c) 2007-2016
#
declare lower;
input over_Sold = 20;
input over_Bought = 80;
input length = 14;
input movingAvgLength = 1;
plot MoneyFlowIndex = Average(moneyflow(high, close, low, volume, length), movingAvgLength);
plot OverBought = over_Bought;
plot OverSold = over_Sold;
MoneyFlowIndex.DefineColor("OverBought", GetColor(5));
MoneyFlowIndex.DefineColor("Normal", GetColor(7));
MoneyFlowIndex.DefineColor("OverSold", GetColor(1));
MoneyFlowIndex.AssignValueColor(if MoneyFlowIndex > over_Bought then MoneyFlowIndex.color("OverBought") else if MoneyFlowIndex > over_Sold then MoneyFlowIndex.color("Normal") else MoneyFlowIndex.color("OverSold"));
OverBought.SetDefaultColor(GetColor(8));
OverSold.SetDefaultColor(GetColor(8));
I sent this formula to Joe Bangkot ([email protected], tel no. 510-263-1700) at esignal and he cannot get it to work on esignal. As the internet address, I put in above about esignal knowing about "Money Flow Index", I assume that esignal would be able to find the "Money Flow Index" technical indicator and will help me put it on my esignal charts.
Perhaps after reviewing the internet site and seeing the Think OR Swim formula, you can suggest how to use it in esignal or you would know how to modify the Think Or Swim "Money Flow Index" formula so that I can use it in esignal.
I would greatly appreciate it.
I thank you for your time.
Sincerely yours,
Peter Marchesin
Comment
-
In case it helps:
Your TOS script just averages out the money flow to an sma length of 1.
That in effect is the same as just the money flow indicator itself since it divides the money flow by 1.
you can see that in the script below by changing the "MALength" to 1 from the default of 10.
The script mirrors the TOS script except for the default of "MALength" which TOS defaults to 1.
NOTE: I used different colors since I don't know what TOS color #s are.
PHP Code:/*********************************************************
Alexis C. Montenegro © December 2004
Use and/or modify this code freely. If you redistribute it
please include this and/or any other comment blocks and a
description of any changes you make.
**********************************************************/
//20160730: modified default MALength and added foreground color conditionals
var aFPArray = new Array();
function preMain() {
setStudyTitle("MAofMoneyFlow");
setCursorLabelName("MF", 0);
setCursorLabelName("MAofMF", 1);
setDefaultBarFgColor(Color.blue, 0);
setDefaultBarFgColor(Color.red, 1);
setDefaultBarThickness(1,0);
setDefaultBarThickness(1,1);
askForInput();
var x=0;
aFPArray[x] = new FunctionParameter("Length", FunctionParameter.NUMBER);
with(aFPArray[x++]){
setLowerLimit(1);
setDefault(14);
}
aFPArray[x] = new FunctionParameter("Symbol", FunctionParameter.STRING);
with(aFPArray[x++]){
setDefault();
}
aFPArray[x] = new FunctionParameter("Interval", FunctionParameter.STRING);
with(aFPArray[x++]){
setDefault();
}
aFPArray[x] = new FunctionParameter("MAType", FunctionParameter.STRING);
with(aFPArray[x++]){
addOption("sma");
addOption("ema");
addOption("wma");
setDefault("sma");
}
aFPArray[x] = new FunctionParameter("MALength", FunctionParameter.NUMBER);
with(aFPArray[x++]){
setLowerLimit(1);
addOption(1);
addOption(10);
setDefault(10);
}
aFPArray[x] = new FunctionParameter("over_Bought", FunctionParameter.NUMBER);
with(aFPArray[x++]){
setLowerLimit(0);
setDefault(80);
}
x++;
aFPArray[x] = new FunctionParameter("over_Sold", FunctionParameter.NUMBER);
with(aFPArray[x++]){
setLowerLimit(0);
setDefault(20);
}
aFPArray[x] = new FunctionParameter( "xMF_NormalColor", FunctionParameter.COLOR);
with( aFPArray[x++] ) {
setDefault( Color.blue );
}
aFPArray[x] = new FunctionParameter( "xMF_OverSldColor", FunctionParameter.COLOR);
with( aFPArray[x++] ) {
setDefault( Color.green );
}
aFPArray[x] = new FunctionParameter( "xMF_OverBotColor", FunctionParameter.COLOR);
with( aFPArray[x++] ) {
setDefault( Color.red );
}
aFPArray[x] = new FunctionParameter( "xMAofMF_NormalColor", FunctionParameter.COLOR);
with( aFPArray[x++] ) {
setDefault( Color.black );
}
aFPArray[x] = new FunctionParameter( "xMAofMF_OverSldColor", FunctionParameter.COLOR);
with( aFPArray[x++] ) {
setDefault( Color.lime );
}
aFPArray[x] = new FunctionParameter( "xMAofMF_OverBotColor", FunctionParameter.COLOR);
with( aFPArray[x++] ) {
setDefault( Color.magenta );
}
aFPArray[x] = new FunctionParameter("Params", FunctionParameter.BOOLEAN);
with(aFPArray[x++]){
setName("Show Parameters");
setDefault(false);
}
}
var bInit = false;
var xMF = null;
var xMAofMF = null;
function main(Length,Symbol,Interval,MAType,MALength,over_Bought,over_Sold,xMF_NormalColor,xMF_OverSldColor,xMF_OverBotColor,xMAofMF_NormalColor,xMAofMF_OverSldColor,xMAofMF_OverBotColor,Params) {
var xMAofMF0=null,xMF0=null,plotThichness=2;
if(bInit == false){
setDefaultBarThickness(plotThichness,0);
setDefaultBarThickness(plotThichness,1);
if(Symbol == null) Symbol = getSymbol();
if(Interval == null) Interval = getInterval();
var vSymbol = Symbol+","+Interval;
xMF = moneyFlow(Length,sym(vSymbol));
xMAofMF = eval(MAType)(MALength,moneyFlow(Length,sym(vSymbol)));
addBand(over_Bought,PS_SOLID,1,Color.black,"over_Bought");
addBand(over_Sold,PS_SOLID,1,Color.black,"over_Sold");
setShowTitleParameters(eval(Params));
bInit = true;
}
xMAofMF0=xMAofMF.getValue(0);
xMF0=xMF.getValue(0);
if(xMF0==null || xMAofMF0==null) return;
if(xMF0 >= over_Bought){
setBarFgColor(xMF_OverBotColor,0);
setBarThickness(plotThichness+1,0);
}else if(xMF0 <= over_Sold){
setBarFgColor(xMF_OverSldColor,0);
setBarThickness(plotThichness+1,0);
}else setBarFgColor(xMF_NormalColor,0);
if(xMAofMF0 >= over_Bought){
setBarFgColor(xMAofMF_OverBotColor,1);
setBarThickness(plotThichness+1,1);
}else if(xMAofMF0 <= over_Sold){
setBarFgColor(xMAofMF_OverSldColor,1);
setBarThickness(plotThichness+1,1);
}else setBarFgColor(xMAofMF_NormalColor,1);
return new Array (getSeries(xMF),getSeries(xMAofMF));
}
Comment
Comment