Announcement

Collapse
No announcement yet.

Price Profile efs searching

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Price Profile efs searching

    hello eSignal staff;
    i have been searching for Price Profile efs written by Futurenets.co.uk as that was what i have been looking for and I have asked customer support staff, but they seem can't help me to find it out. If you can please kindly send it to me through pm or email. Deeply appreciate it..If Paul is still in this Forum, please kindly help. Thanks a lot for the reply.

  • #2
    I founded this file

    .
    PHP Code:
    /****************************************************************************************************
    You are welcome to use this code freely. You may redistribute it provided you include this comment 
    block, plus a description of any changes you make.

    If you extend it, or adapt it to other uses, I'd appreciate a look at what
    you've done. Thanks.

    Alternatively please let me have your ideas for future versions.

    Check my web site ([url]http://www.futurenets.co.uk[/url]) or eSignal's file share ([url]http://forum.esignal.com/[/url])
    for latest version. 

    Paul Williams
    [email][email protected][/email]

    Versions:
    01Sep2002 - Version 1.00 - Initial distribution.
    05Jul2003 - Version 1.10 - Usage, bar color, profile type and observation details.
    06Jul2003 - Version 1.20 - BarsBack replaced with StartBar - can be a number or date mm/dd/yyyy.
    07Jul2003 - Version 1.21 - Fixed input handling bug.
    07Jul2003 - Version 1.22 - setCursorLabelName.
    01Aug2003 - Version 1.23 - Offset input to shift profile in view.
    31Oct2003 - Version 1.24 - Value line added.
    01Feb2004 - Version 1.25 - Replaced StartBar parameter with DaysBack.

    ========================================
    USAGE:
    1. DaysBack - number of days back to profile.
    2. BarsForward = number of bars forward from the starting point (default 10000000).
    3. PriceTick = price interval e.g. miniS&P use 0.25 (default 1).
    4. Composite = set to any number e.g. 1 to combine profile days.
    5. Offset = number of bars to offset the profile, useful when out of view.

    BAR COLORS:
    1. Red - 1st hour initial balance.
    2. Blue - 1st standard deviation.

    PROFILE TYPES:
    1. Balance Day - prices stay within initial balance range.
    2. Directional Day - prices extend in one direction above or below the initial balance range.
    3. Trend Day - prices move significantly away from the initial balance range.
    4. Uncertain Day - prices extend in both directions above and below the initial balance range.

    OBSERVATIONS:
    1. Buying/selling towards previous value area. 
    2. Buying/selling away from previous value area.
    3. Value areas providing support/resistance.

    *****************************************************************************************************/

    function preMain() {
        
    setPriceStudy(true);
        
    setStudyTitle("MP");
        
    setCursorLabelName("MP");
        
    setPlotType(PLOTTYPE_LINE)
        
    setDefaultBarThickness(1); 
        
    setDefaultBarFgColor(Color.red);
        
    setDefaultBarStyle(PS_DASH); 
        var 
    fp1 = new FunctionParameter("DaysBack"FunctionParameter.NUMBER);
        
    fp1.setLowerLimit(1);        
        
    fp1.setDefault(2); 
        var 
    fp2 = new FunctionParameter("BarsForward"FunctionParameter.NUMBER);
        
    fp2.setLowerLimit(1);        
        
    fp2.setDefault(1000000); 
        var 
    fp3 = new FunctionParameter("PriceTick"FunctionParameter.NUMBER);
        
    fp3.setLowerLimit(0);        
        
    fp3.setDefault(1.0); 
        var 
    fp4 = new FunctionParameter("Composite"FunctionParameter.STRING);
        
    fp4.setName("Composite");
        
    fp4.addOption("True");
        
    fp4.addOption("False");
        
    fp4.setDefault("False");    
        var 
    fp5 = new FunctionParameter("Offset"FunctionParameter.NUMBER);
        
    fp5.setLowerLimit(0);        
        
    fp5.setDefault(0); 
    }

    var 
    vInit false;
    var 
    aMPprice = new Array(1);
    var 
    aMPtpo1 = new Array(1);
    var 
    aMPtag1 = new Array(1);
    var 
    aMPtpo2 = new Array(1);
    var 
    aMPtag2 = new Array(1);
    var 
    aMPclr2 = new Array(1);
    var 
    vStartFlag false;
    var 
    vOSFlag false;
    var 
    vOS 0;
    var 
    vBarsFwdCount 0;
    var 
    vBarNow 0;
    var 
    vPriceInt null;
    var 
    vDayStart false;
    var 
    vLastHigh;
    var 
    vLastLow 0
    var 
    vMPTag 0;
    var 
    vMPStart 0;
    var 
    vMPSize 1;
    var 
    vMPStartTime 0;
    var 
    vValPoint null;
    var 
    vStartTime;
    var 
    vDaysBack;
    var 
    vBarsForward;
    var 
    vPriceTick;
    var 
    vComposite;
    var 
    vOffset;

    function 
    initMP() {

        var 
    i;

        for(
    0< (vMPSize-1); i++) {
            
    aMPprice.pop();
            
    aMPtpo1.pop();
            
    aMPtag1.pop();
            
    aMPtpo2.pop();
            
    aMPtag2.pop();
            
    aMPclr2.pop();
        }    
        
    vMPSize 1;
        
    vMPStart vBarNow;
        
    aMPprice[0] = getValue("Open");
        
    aMPtpo1[0] = 0;
        
    aMPtag1[0] = 0;
        
    aMPtpo2[0] = 0;
        
    aMPtag2[0] = 0;
        
    aMPclr2[0] = 0;
        
        return 
    null;
    }

    function 
    resizeMP() {

        var 
    diff;
        var 
    qty;
        var 
    nextprice;
        var 
    i;

        
    diff vLastHigh aMPprice[vMPSize 1];
        if (
    diff 0) {
            
    qty = (diff vPriceInt) + 1;
            
    nextprice aMPprice[vMPSize 1];
            for (
    0qtyi++) {
                
    nextprice += vPriceInt;
                
    aMPprice.push(nextprice);
                
    aMPtpo1.push(0);
                
    aMPtag1.push(0);
                
    aMPtpo2.push(0);
                
    aMPtag2.push(0); 
                
    aMPclr2.push(0);
                ++
    vMPSize;
            }
        }

        
    diff aMPprice[0] - vLastLow;
        if (
    diff 0) {
            
    qty = (diff vPriceInt) + 1;
            
    nextprice aMPprice[0];
            for (
    0qtyi++) {
                
    nextprice -= vPriceInt;
                
    aMPprice.unshift(nextprice);
                
    aMPtpo1.unshift(0);
                
    aMPtag1.unshift(0);
                
    aMPtpo2.unshift(0);
                
    aMPtag2.unshift(0); 
                
    aMPclr2.unshift(0);
                ++
    vMPSize;
            }
        }

        return 
    null;
    }

    function 
    subtractTPO() {

        var 
    i;
        
        for (
    0vMPSizei++) {
            if ((
    vLastLow <= aMPprice[i]) && (vLastHigh >= aMPprice[i])) {
                
    aMPtpo2[i] -= 1;
            }
        }

        return 
    null;
    }

    function 
    addTPO(ValueUpdate) {

        var 
    i;
        var 
    j;
        var 
    k;
        var 
    firsthour false;
        var 
    rawt getValue("rawtime");
        
        if ((
    rawt vMPStartTime) < 3600firsthour true;

        if ((
    ValueUpdate 0) && (firsthour == false)) {
            var 
    tpoMax 0;
            var 
    tpoMaxCnt 0;    
            var 
    tpoMaxIndex = new Array(vMPSize);        
            var 
    tpoTotal 0;
        }
        
        for (
    0vMPSizei++) {
        
            if ((
    vLastLow <= aMPprice[i]) && (vLastHigh >= aMPprice[i])) {
            
                
    aMPtpo2[i] += 1;            
                if (
    aMPtag2[i] == 0) {            
                    
    vMPTag++;
                    
    aMPtag2[i] = vMPTag;
                }     
                var 
    vdrawOS = -* (Math.abs(vBarNow vMPStart) + vOffset);    
                if (
    aMPclr2[i] == 0)
                    
    drawLineRelative(vdrawOSaMPprice[i], vdrawOS aMPtpo2[i], aMPprice[i], PS_SOLID1Color.greyaMPtag2[i]);
                else
                    
    drawLineRelative(vdrawOSaMPprice[i], vdrawOS aMPtpo2[i], aMPprice[i], PS_SOLID1Color.blueaMPtag2[i]);
                    
                if (
    firsthour == trueaMPtpo1[i] = 1;
                if ((
    aMPtpo1[i] == 1) && (aMPtag1[i] == 0)) {
                    ++
    vMPTag;
                    
    aMPtag1[i] = vMPTag;
                }
                var 
    vdrawOS = -* (Math.abs(vBarNow vMPStart) + vOffset);
                
    drawLineRelative(vdrawOSaMPprice[i], vdrawOS aMPtpo1[i], aMPprice[i], PS_SOLID1Color.redaMPtag1[i]);
            }
            
            if ((
    firsthour == false) && (ValueUpdate 0)) {
                
    tpoTotal += aMPtpo2[i];
                if ((
    == 0) || (aMPtpo2[i] > tpoMax)) {
                    
    tpoMax aMPtpo2[i];
                    
    tpoMaxCnt 1;  
                    
    tpoMaxIndex[tpoMaxCnt-1] = i;
                }
                else if (
    aMPtpo2[i] == tpoMax) {
                    
    tpoMaxCnt++;
                    
    tpoMaxIndex[tpoMaxCnt-1] = i;
                }         
                
            }
            
        }
        
        if ((
    firsthour == false) && (ValueUpdate 0) && (tpoTotal 0)) {
            for (
    0vMPSizei++) aMPclr2[i] = 0;
            
    tpoMaxCnt 1;
            if (
    0) {
                var 
    vPrice getValue("Close");
                var 
    diffmin 0;
                var 
    diff 0;
                for (
    0tpoMaxCnti++) {
                    
    tpoMaxIndex[i];
                    
    diff Math.abs(aMPprice[j] - vPrice);
                    if ((
    ==0) || (diff diffmin)) {
                        
    i;
                        
    diffmin diff;
                    }
                }        
            }
            
    tpoMaxIndex[k];

            
    vValPoint aMPprice[i];
            
            
    aMPclr2[i] = 1;
            var 
    tpoCount aMPtpo2[i];
            var 
    tpoValue tpoCount tpoTotal;
            var 
    UprIndex 1;
            var 
    Uprtpo 0;
            var 
    LwrIndex 1;
            var 
    Lwrtpo 0;
            while (
    tpoValue 0.68) {
                if (
    LwrIndex >= 0Lwrtpo aMPtpo2[LwrIndex];
                if (
    UprIndex vMPSizeUprtpo aMPtpo2[UprIndex];
                if (
    Uprtpo >= Lwrtpo) {
                    
    aMPclr2[UprIndex] = 1;
                    
    tpoCount += aMPtpo2[UprIndex];
                    
    UprIndex += 1;
                    
    Uprtpo 0;                   
                }
                else {
                    
    aMPclr2[LwrIndex] = 1;
                    
    tpoCount += aMPtpo2[LwrIndex];
                    
    LwrIndex -= 1;
                    
    Lwrtpo 0;                   
                }
                
    tpoValue tpoCount tpoTotal;
            }
            for (
    0vMPSizei++) {
                
    vdrawOS = -* (Math.abs(vBarNow vMPStart) + vOffset);    
                if (
    aMPclr2[i] == 0)
                    
    drawLineRelative(vdrawOSaMPprice[i], vdrawOS aMPtpo2[i], aMPprice[i], PS_SOLID1Color.greyaMPtag2[i]);
                else
                    
    drawLineRelative(vdrawOSaMPprice[i], vdrawOS aMPtpo2[i], aMPprice[i], PS_SOLID1Color.blueaMPtag2[i]);
            }     
        }

        return;
    }

    function 
    main(DaysBackBarsForwardPriceTickCompositeOffset) {

        var 
    tmp;
        var 
    vInterval getInterval();
        if (
    vInterval == "D" || vInterval == "W" || vInterval == "M") return null;

        if (
    vInit == false) {
            
    vInit true;
            
    clearLines(); 
            
    vDaysBack DaysBack;
            
    vBarsForward BarsForward;
            
    vPriceInt PriceTick;
            
    vComposite Composite;
            
    vOffset = -Offset;
            var 
    vOSet getOldestBarIndex();
            
    vStartTime getValue("rawtime",-vOSet);
            for(var 
    0vDaysBack; ++i) {
                if (
    getFirstBarIndexOfDay(vStartTime) > getOldestBarIndex()) {
                    var 
    vPrevDay getPreviousTradingDay(vStartTime);
                    var 
    vPrevDayStart getFirstBarIndexOfDay(vPrevDay);
                    
    vOSet getOldestBarIndex() - vPrevDayStart;
                    
    vStartTime getValue("rawtime", -vOSet);                
                }
            }        
        }
     
        if (
    vStartFlag == false) {
            var 
    getValue("rawtime");
            var 
    vFirstIndex getFirstBarIndexOfDay(t);
            if (
    vFirstIndex == getCurrentBarIndex()) {
                if (
    >= vStartTimevStartFlag true;
            }      
        }
        
        if (
    vDayStart == truevBarsFwdCount++;

        if ((
    vStartFlag == true) && (vBarsFwdCount vBarsForward)) {
            if (
    getBarState() == BARSTATE_NEWBAR) {
                if (
    vOSFlag == truevOS += 1;
                
    vBarNow getCurrentBarIndex() + vOS;
                if (
    vOSFlag == false && vBarNow == 0vOSFlag true;
                
    vLastHigh getValue("High");
                
    vLastLow getValue("Low");
                
    tmp getValue("rawtime");
                if (
    tmp != null
                    var 
    vFirstIndex getFirstBarIndexOfDay(tmp);
                if (
    vFirstIndex == getCurrentBarIndex()) {
                    
    vLastHigh getValue("High");
                    
    vLastLow getValue("Low");
                    if (
    vComposite == "False") {
                        
    vMPStartTime tmp;
                        
    initMP();
                        
    vDayStart true;
                        
    vBarsFwdCount 0;
                        
    resizeMP();
                        
    addTPO(1);
                    }
                    else {
                        if (
    vDayStart == false) {
                            
    vMPStartTime tmp;
                            
    initMP();
                            
    vDayStart true;
                            
    vBarsFwdCount 0;
                            
    resizeMP();
                            
    addTPO(1);                        
                        }
                        else {
                            
    resizeMP();
                            
    addTPO(1);
                        }
                    }
                }
                else if (
    vDayStart == true) {
                    
    resizeMP();
                    
    addTPO(1);
                }
            }
            else if (
    vDayStart == true) {
                if ((
    getValue("High") > vLastHigh) || (getValue("Low") < vLastLow)) {
                    
    subtractTPO();
                    
    vLastHigh getValue("High");
                    
    vLastLow getValue("Low");
                    
    resizeMP();
                    
    addTPO(0);
                }
                else {
                    
    vLastHigh getValue("High");
                    
    vLastLow getValue("Low");
                }
            }

        }

        return 
    vValPoint;
    }

    function 
    db(a,b,c) {
        
    debugPrintln(getMonth() + " " getDay() + " " getHour() + " " getMinute() + " " " " " " c);

    Comment


    • #3
      Paul's Profile Efs....

      Thank you Barros for your kind reply and send me the efs...i will look at the efs and will keep you update...many thanks Barros and Paul from Futurenets.co.uk...for all your generous and kind help me...kiki

      Comment


      • #4
        Price Profile

        Hi Barros; I have experienced with the Price Profile efs written by Futurenets.co.uk that you sent..it looks great to me, except i wonder why when i put in Davsback 2, it will give me 3 days and if i put in Daysback = 4 it will give me 5 days...do you know what goes wrong with this extra one? what i need to do to fix this problem. Thanks always

        Comment


        • #5
          I beleive

          Hi Kiki,
          You have the today market more 1, 2, 3.... days back.

          Comment


          • #6
            Re: I beleive

            Hi Barros:

            Perhaps you can help me understand this indicator. I had asked Paul Williams to explain it. He said he's temporarily tied up but will get back to me. I am interested in this indicator.

            1-I understand the the red vertical dashes is the 1st hour's price range.
            2-The Blue lines are 1 STDDev. But one STD Dev of what?
            3- Are the blue and grey lines volume at each price level?
            3-What is that red dashed line for that's zig zags thru the prices?

            TIA,

            dom

            Comment


            • #7
              Seach Google about Market Profile

              Hi people,
              I am not a specialist in this strategy. I only had the file kept.
              Try to search at Google and you will find information about the subject
              Barros.

              Comment


              • #8
                The response

                On March, 29, 2004 I made the same Kiki question: Where can I get a Price (Market) Profile Manual?
                Now after two years I received it:

                Re. your email: please visit http://www.futurenets.co.uk/products.htm for latest product information.

                My e-mail:
                Sent: Monday, March 29, 2004 2:27 PM
                Subject: PriceProfile Manual


                Dear Sirs,
                Could you send me, or suggest where can I get a Price(Market)Profile Manual?
                Thank you for your attention.
                Truly,
                Manoel Barros.

                PS: Congratulations for the PP.

                Comment

                Working...
                X