can anybody review this script and tell me why it is not working?
Thanks
var grID = 0;
var nBarCounter = 0;
var aOpen = null;
var aClose = null;
var aColor = null;
var nColor = null;
var nColor_1 = null;
var nPeriod = null;
var aFPArray = new Array();
var bInitialized = false;
function preMain() {
var x;
setPriceStudy(true);
setStudyTitle("TTM-Trend");
setShowTitleParameters( false );
setColorPriceBars( true );
setDefaultPriceBarColor( Color.black );
setShowCursorLabel(false) ;
grID = 0;
x=0;
aFPArray[x] = new FunctionParameter( "fPeriod", FunctionParameter.NUMBER);
with( aFPArray[x] ) {
setName( "Comp Bars" );
setLowerLimit( 1 );
setUpperLimit( 125 );
setDefault( 6 );
}
x++;
aFPArray[x] = new FunctionParameter( "fUpColor", FunctionParameter.COLOR);
with( aFPArray[x] ) {
setName( "Up Color" );
setDefault( Color.blue );
}
x++;
aFPArray[x] = new FunctionParameter( "fDnColor", FunctionParameter.COLOR);
with( aFPArray[x] ) {
setName( "Dn Color" );
setDefault( Color.red );
}
}
function main( fPeriod, fUpColor, fDnColor ) {
var x;
var nOpen, nClose, nHigh, nLow;
if ( getBarState() == BARSTATE_ALLBARS ) {
return null;
}
if ( bInitialized == false ) {
nPeriod = Math.round( fPeriod );
aColor = new Array( nPeriod+1 );
aClose = new Array( nPeriod+1 );
aOpen = new Array( nPeriod+1 );
aClose[0] = ( open(0)+high(0)+close(0)+ low(0) ) / 4;
aOpen[0] = open(0);
nBarCounter = 0;
bInitialized = true;
}
if ( getBarState() == BARSTATE_NEWBAR ) {
aOpen.pop();
aOpen.unshift(0);
aClose.pop();
aClose.unshift(0);
aColor.pop();
aColor.unshift(0);
nColor_1 = nColor;
nBarCounter++;
}
nOpen = (aOpen[1]+aClose[1])/2;
aOpen[0] = nOpen;
nClose = ( open(0)+high(0)+low(0)+cl ose(0) ) / 4;
aClose[0] = nClose;
nHigh = Math.max( high(0), nOpen, nClose );
nLow = Math.min( low(0), nOpen, nClose );
if ( nClose > nOpen ) {
nColor = fUpColor;
}
else {
nColor = fDnColor;
}
if ( nBarCounter<=nPeriod+2 ) return;
x=1;
while ( x<=nPeriod ) {
if ( nOpen <= Math.max( aOpen[x], aClose[x] ) && nOpen >= Math.min( aOpen[x], aClose[x] ) &&
nClose <= Math.max( aOpen[x], aClose[x] ) && nClose >= Math.min( aOpen[x], aClose[x] ) ) {
nColor = aColor[x];
}
x++;
}
aColor[0] = nColor;
setPriceBarColor( nColor );
return( null );
}
Thanks
var grID = 0;
var nBarCounter = 0;
var aOpen = null;
var aClose = null;
var aColor = null;
var nColor = null;
var nColor_1 = null;
var nPeriod = null;
var aFPArray = new Array();
var bInitialized = false;
function preMain() {
var x;
setPriceStudy(true);
setStudyTitle("TTM-Trend");
setShowTitleParameters( false );
setColorPriceBars( true );
setDefaultPriceBarColor( Color.black );
setShowCursorLabel(false) ;
grID = 0;
x=0;
aFPArray[x] = new FunctionParameter( "fPeriod", FunctionParameter.NUMBER);
with( aFPArray[x] ) {
setName( "Comp Bars" );
setLowerLimit( 1 );
setUpperLimit( 125 );
setDefault( 6 );
}
x++;
aFPArray[x] = new FunctionParameter( "fUpColor", FunctionParameter.COLOR);
with( aFPArray[x] ) {
setName( "Up Color" );
setDefault( Color.blue );
}
x++;
aFPArray[x] = new FunctionParameter( "fDnColor", FunctionParameter.COLOR);
with( aFPArray[x] ) {
setName( "Dn Color" );
setDefault( Color.red );
}
}
function main( fPeriod, fUpColor, fDnColor ) {
var x;
var nOpen, nClose, nHigh, nLow;
if ( getBarState() == BARSTATE_ALLBARS ) {
return null;
}
if ( bInitialized == false ) {
nPeriod = Math.round( fPeriod );
aColor = new Array( nPeriod+1 );
aClose = new Array( nPeriod+1 );
aOpen = new Array( nPeriod+1 );
aClose[0] = ( open(0)+high(0)+close(0)+ low(0) ) / 4;
aOpen[0] = open(0);
nBarCounter = 0;
bInitialized = true;
}
if ( getBarState() == BARSTATE_NEWBAR ) {
aOpen.pop();
aOpen.unshift(0);
aClose.pop();
aClose.unshift(0);
aColor.pop();
aColor.unshift(0);
nColor_1 = nColor;
nBarCounter++;
}
nOpen = (aOpen[1]+aClose[1])/2;
aOpen[0] = nOpen;
nClose = ( open(0)+high(0)+low(0)+cl ose(0) ) / 4;
aClose[0] = nClose;
nHigh = Math.max( high(0), nOpen, nClose );
nLow = Math.min( low(0), nOpen, nClose );
if ( nClose > nOpen ) {
nColor = fUpColor;
}
else {
nColor = fDnColor;
}
if ( nBarCounter<=nPeriod+2 ) return;
x=1;
while ( x<=nPeriod ) {
if ( nOpen <= Math.max( aOpen[x], aClose[x] ) && nOpen >= Math.min( aOpen[x], aClose[x] ) &&
nClose <= Math.max( aOpen[x], aClose[x] ) && nClose >= Math.min( aOpen[x], aClose[x] ) ) {
nColor = aColor[x];
}
x++;
}
aColor[0] = nColor;
setPriceBarColor( nColor );
return( null );
}
Comment