Candlestick: Piercing Line

ICE Data Services -

PiercingLine.efs  
EFSLibrary - Discussion Board  

File Name: PiercingLine.efs

Description:
Piercing Line

Formula Parameters:

  • Font: Arial Narrow
  • Font Size: 11
  • Font and Shape Color: Green
  • Font BgColor: White

Notes:
This is a bullish reversal pattern formed by two candlesticks. Following a downtrend, an up candlestick with a long real body is followed by a lower open on the next candlestick. This session finishes as an up candlestick and closes above the midpoint of the prior candlestick's real body. It is the reverse of the Dark Cloud.

Download File:
PiercingLine.efs


EFS Code:

/*********************************
Provided By:  
    eSignal (Copyright c eSignal), a division of Interactive Data 
    Corporation. 2009. All rights reserved. This sample eSignal 
    Formula Script (EFS) is for educational purposes only and may be 
    modified and saved under a new file name.  eSignal is not responsible
    for the functionality once modified.  eSignal reserves the right 
    to modify and overwrite this EFS file with each new release.
   

Description:        
    Piercing Line

Version:            1.0  12/24/2009

Formula Parameters:                     Default:
    Font                                Arial Narrow
    Font Size                           11
    Font and Shape Color                Green
    Font BgColor                        White
    
Notes:
    This is a bullish reversal pattern formed by two candlesticks. Following a downtrend, 
    an up candlestick with a long real body is followed by a lower open on the next 
    candlestick. This session finishes as an up candlestick and closes above the midpoint 
    of the prior candlestick's real body. It is the reverse of the Dark Cloud.
**********************************/

var fpArray = new Array();

function preMain() {
    setPriceStudy(true);
    setStudyTitle("Piercing Line");
    setShowCursorLabel(false);
    setShowTitleParameters(false);
    var x=0;
    fpArray[x] = new FunctionParameter("nFontSize", FunctionParameter.NUMBER);
	with(fpArray[x++]){
        setName("Font Size")
        setLowerLimit(6);		
        setDefault(11);
    }
    fpArray[x] = new FunctionParameter("cFontColor", FunctionParameter.COLOR);
    with(fpArray[x++]){
        setName("Font and Shape Color");
        setDefault(Color.green);
    }    
    fpArray[x] = new FunctionParameter("cFontBgColor", FunctionParameter.COLOR);
    with(fpArray[x++]){
        setName("Font BgColor");
        setDefault(Color.white);
    }    
    fpArray[x] = new FunctionParameter("sFont", FunctionParameter.STRING);
    with(fpArray[x++]){
        setName("Font");
        setDefault("Arial Narrow");
    }    
}

function main(sFont, nFontSize, cFontColor, cFontBgColor) {
    Find_PiercingLine(sFont, nFontSize, cFontColor, cFontBgColor);
    return;
}

function Find_PiercingLine(sFont, nFontSize, cFontColor, cFontBgColor) {
var nState = getBarState();
var Open = open(0);
var Close = close(0);
var Open1 = open(-1);
var Close1 = close(-1);
var Low1 = low(-1);
var nID = getCurrentBarCount();
    if (nState == BARSTATE_ALLBARS) {
        if (sFont == null) sFont = "Arial Narrow";
        if (nFontSize == null) nFontSize = 11;
        if (cFontColor == null) cFontColor = Color.green;
        if (cFontBgColor == null) cFontBgColor = Color.white;
    }
    if (Close1 < Open1 &&
        Open < Low1 &&
        Close > Close1 + ((Open1 - Close1) / 2) &&
        Close < Open1) {
        drawTextRelative(0, BelowBar2, "PLine", cFontColor, cFontBgColor, Text.PRESET | Text.CENTER, sFont, nFontSize, "T"+nID); 
        drawShapeRelative(0, BelowBar1, Shape.UPARROW, null, cFontColor, Shape.PRESET, "S"+nID);
    } else {
        removeText("T"+nID);
        removeShape("S"+nID);
    }
    return;
}