Announcement

Collapse
No announcement yet.

Trend Lines

Collapse
This topic is closed.
X
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Trend Lines

    File Name: TrendLines.efs

    Description:
    Trend Lines

    Formula Parameters:
    Length : 10

    Notes:


    Download File:
    TrendLines.efs



    EFS Code:
    PHP 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:        
        Trend Lines
    Version:            1.0  09/14/2009
     
    Formula Parameters:                     Default:
        Length                              10
       
    Notes:
        
    **********************************/
    var fpArray = new Array();
    var 
    bInit false;

    function 
    preMain(){
        
    setPriceStudy(true);
        
    setShowCursorLabel(false);
        
    setShowTitleParameters(false);
        
    setStudyTitle("Trend Lines");
        var 
    0;
        
    fpArray[x] = new FunctionParameter("Length"FunctionParameter.NUMBER);
        
    with(fpArray[x++]) {
            
    setName("Length");
            
    setLowerLimit(1);
            
    setDefault(10);
        }    
    }

    var 
    xLowest null;
    var 
    xHighest null;
    var 
    r1 0;
    var 
    r2 0;
    var 
    rt1 0;
    var 
    rt2 0;
    var 
    s1 0;
    var 
    s2 0;
    var 
    st1 0;
    var 
    st2 0;

    function 
    main(Length) {
    var 
    nBarState getBarState();
    var 
    nPos 0;    
    var 
    XX1X2Y1Y2K;
        if (
    nBarState == BARSTATE_ALLBARS) {
            if(
    Length == nullLength 10;
        }
        if (
    bInit == false) {
            
    xHighest highest(Lengthhigh());
            
    xLowest lowest(Lengthlow());
            
    bInit true;
        }
        if (
    xLowest.getValue(-nPos) == null || xHighest.getValue(-nPos) == null) return;
        
    nPos Math.round((Length 1)/2);    
        if(
    low(-nPos) == xLowest.getValue(-1) && ((getCurrentBarCount() - nPos) - st1) >= nPos)  {
            
    s2 s1
            
    s1 low(-nPos);
            
    st2 st1
            
    st1 getCurrentBarCount() - nPos;
        }
        if(
    high(-nPos) == xHighest.getValue(-1) && ((getCurrentBarCount() - nPos) - rt1) >= nPos) {
            
    r2=r1
            
    r1 high(-nPos);
            
    rt2 rt1
            
    rt1 getCurrentBarCount() - nPos;
        }
        
    X1 = -(getCurrentBarCount() - st2);
        
    X2 = -(getCurrentBarCount() - st1);
        
    Y1 s2;
        
    Y2 s1;
        
    = (Y2-Y1) / (X2-X1);
        
    X2 X2 Math.round(X1 2)  + Length;
        
    Y2 Y1 * (X2-X1); 
        
    drawLineRelative(-(getCurrentBarCount() - st2), s2X2Y2PS_SOLID2Color.green"Down"); 
        
    X1 = -(getCurrentBarCount() - rt2);
        
    X2 = -(getCurrentBarCount() - rt1);
        
    Y1 r2;
        
    Y2 r1;
        
    = (Y2-Y1) / (X2-X1);
        
    X2 X2 Math.round(X1 2)  + 10;
        
    Y2 Y1 * (X2-X1); 
        
    drawLineRelative(-(getCurrentBarCount() - rt2), r2X2Y2PS_SOLID2Color.red"Up");             
        return;

Working...
X