| 
 PureBytes Links 
Trading Reference Links 
 | 
I Have noticed the Composite Data from the SCAN is stored 
backwards.
Here is a revised version that corrects this and some other small
errors.
Also, does anyone know why I have to Store the Array in Reverse???
(BC-BCL)
ie Array[0] is ending up as Array[LastBar] in the
composite...................
KR
        Michael.
SCAN CODE:
// Create Trend
Direction Composite V1.1 (Daily Only)
//
//      This is to be run in
SCAN mode. 
// Note - This scan can be slow, Don't run on "All
Stocks"!
// Setup
// Use Zig 7. (Default)
// Filter = Current Stock (eg. Index) 
// n = 1
Buy =
1;
// To Satisfy
scan (Create Composite)
//Scan:
CompName =
Name()
+
"~Trend";
BC =
(BarCount-1); 
//Arrays size is
same (Shortcut)
adjz =
Param("Zig",7,0,15,0.1);
for(
BCL =
(BarCount-1);
BCL >=
0;
BCL-- )
        {
        CAdj =
Ref(Close,-BCL);
        LTB =
TroughBars(CAdj,adjz,1);
        LPB =
PeakBars(CAdj,adjz,1);
        for(
i =
(adjz*10);
i >
-1;
i-- )
 
              {
        adjz2 =
i/10;
        LTB2 =
TroughBars(CAdj,adjz2);
        LPB2 =
PeakBars(CAdj,adjz2);
  
     if
((LTB[BC] != LTB2[BC]) OR (LPB[BC] != LPB2[BC])) {i=0;}
                }
        // Create Unique Primary & Secondary Arrays in For Loop.
        // On ref array, insert into Specific array Position.
        // 1 = UP, 2 = Down. //Array is stored Reverse???
        Primary[(BC-BCL)] = IIf( (LTB[BC] < LPB[BC]),1,2);
        Secondary[(BC-BCL)] = IIf( (LTB2[BC] < LPB2[BC]),1,2);
        }
//Add Primary & Secondary ARRAYS to composite.
AddToComposite( Primary,   CompName, "O",3);   
AddToComposite( Secondary, CompName, "H",3);   
AddToComposite( 1,         CompName, "IO",3 );
At 11:44 AM 26/01/2004, you wrote:
Here's some little Code Snippets from my trading system work in progress.
You should be able to just Cut N Paste into Amibroker.
1st up is an Indicator that shows WalkForward conditions of ZigTrend status.
2nd is a Scan that creates a composite of those WalkForward Conditions.
The trends are derived from PeakBar & TroughBar functions.
I have Implemented the Calculation of Zig in a SAFE manner (Within a WalkForward style For Loop), For the creation of the Trend directions.
Any insights to this (Good or Bad) would be very much welcome at this point.
INDICATOR Notes:
Use the Parameter function (CTRL-R) to move back in time, Watch the Primary and Secondary Trends change as you Move Back.
SCAN Notes:
Creates a composite ticker (Based on selected Ticker) Indicating Primary and Secondary Trends. Composite is named: Ticker~Trend
COMPOSITE Notes:
Open is considered the Primary Trend
High is considered the Secondary Trend
1 is considered UP
2 is considered DOWN
INDICATOR CODE:
// Trend Direction Indicator V1. (Daily Only)
// Use Zig 7.
BC = (BarCount-1);  //Arrays size is same (Shortcut)
adjz = Param("Zig",7,0,15,0.1);
adjc = Param("Back",0,0,BarCount,1);
CAdj = Ref(Close,-adjc);
LTB = TroughBars(CAdj,adjz,1);
LPB = PeakBars(CAdj,adjz,1);
PlotZig1 = Zig(CAdj,adjz);
for( i = (adjz*10); i > -1; i-- )
  {
   adjz2 = i/10;
   LTB2 = TroughBars(CAdj,adjz2);
   LPB2 = PeakBars(CAdj,adjz2);
   if ((LTB[BC] != LTB2[BC]) OR (LPB[BC] != LPB2[BC])) {i=0;}
  }
PlotZig2 = Zig(CAdj,adjz2);
if (LTB[BC] < LPB[BC])
        { Primary = "Up";}
        else
        { Primary = "Down";}
if (LTB2[BC] < LPB2[BC])
        { Secondary = "Up";}
        else
        { Secondary = "Down";}
WriteVal(BarCount)+" BarCount (Total)";
WriteVal(BC)+" BC (For Arrays)\n";
Plot(CAdj,"Close",1,styleLine);
Plot(PlotZig1,"Zig",colorBlue,styleLine);
Plot(PlotZig2,"Zig2",colorRed,9); // Line-Dots. 
Title = Name() +
"\nPrimary: " + Primary +
"\nSecondary: " + Secondary +
"\n\\c38Diagnostics....." +
"\nLTB1: " + LTB + //" BC: " + LTB[BC] +
"\nLPB1: " + LPB + //" BC: " + LPB[BC] +
"\nLTB2: " + LTB2 + //" BC: " + LTB2[BC] + 
"\nLPB2: " + LPB2 + //" BC: " + LPB2[BC] +
"\nBarIndex: " +BarIndex() +
"\nRef Adjust: -" + Adjc +
"\nZig1: " + adjz +
"\nZig2: " + adjz2 +
"\nClose Price: " + Cadj;
SCAN CODE:
// Create Trend Direction Composite V1. (Daily Only)
//
//      This is to be run in SCAN mode. 
// Note - This scan can be slow, Don't run on "All Stocks"!
// Setup
// Use Zig 7. (Default)
// Filter = Current Stock (eg. Index) 
// n = 1
Buy = 1; // To Satisfy scan (Create Composite)
//Scan:
CompName = Name() + "~Trend";
BC = (BarCount-1);  //Arrays size is same (Shortcut)
adjz = Param("Zig",7,0,15,0.1);
for( BCL = (BarCount-1); BCL > -1; BCL-- )
        {
        CAdj = Ref(Close,-BCL);
        LTB = TroughBars(CAdj,adjz,1);
        LPB = PeakBars(CAdj,adjz,1);
        for( i = (adjz*10); i > -1; i-- )
                {
        adjz2 = i/10;
        LTB2 = TroughBars(CAdj,adjz2);
        LPB2 = PeakBars(CAdj,adjz2);
        if ((LTB[BC] != LTB2[BC]) OR (LPB[BC] != LPB2[BC])) {i=0;}
                }
        // Create Unique Primary & Secondary Arrays in For Loop.
        // On ref array, insert into Specific array Position.
        // 1 = UP, 2 = Down.
        Primary[BCL] = IIf( (LTB[BC] < LPB[BC]),1,2);
        Secondary[BCL] = IIf( (LTB2[BC] < LPB2[BC]),1,2);
        }
//Add Primary & Secondary ARRAYS to composite.
AddToComposite( Primary,   CompName, "O",3);   
AddToComposite( Secondary, CompName, "H",3);   
AddToComposite( 1,         CompName, "IO",3 );
Send BUG REPORTS to bugs@xxxxxxxxxxxxx
Send SUGGESTIONS to suggest@xxxxxxxxxxxxx
-----------------------------------------
Post AmiQuote-related messages ONLY to: amiquote@xxxxxxxxxxxxxxx 
(Web page: http://groups.yahoo.com/group/amiquote/messages/)
--------------------------------------------
Check group FAQ at: http://groups.yahoo.com/group/amibroker/files/groupfaq.html 
Yahoo! Groups Links
To visit your group on the web, go to:
http://groups.yahoo.com/group/amibroker/
  
To unsubscribe from this group, send an email to:
amibroker-unsubscribe@xxxxxxxxxxxxxxx
  
Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service. 
Send BUG REPORTS to bugs@xxxxxxxxxxxxx
Send SUGGESTIONS to suggest@xxxxxxxxxxxxx
-----------------------------------------
Post AmiQuote-related messages ONLY to: amiquote@xxxxxxxxxxxxxxx 
(Web page: http://groups.yahoo.com/group/amiquote/messages/)
--------------------------------------------
Check group FAQ at: http://groups.yahoo.com/group/amibroker/files/groupfaq.html
Yahoo! Groups Links
To visit your group on the web, go to:http://groups.yahoo.com/group/amibroker/ 
To unsubscribe from this group, send an email to:amibroker-unsubscribe@xxxxxxxxxxxxxxx 
Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service.
 |