PureBytes Links
Trading Reference Links
|
AmiBroker Group,
I am attaching Test code so you can run it and see what I am trying to
do. My analysis involves Manually determining these dates and levels.
No way yet to have AFL calculate them for me.
DatesTest01.afl has the parameters Grouped by type (Date, Level, Text,
Symbol)
DatesTest02.afl has the Parameters Grouped by input (one block for each
input set)
I have put in valid daily values so you will see some results. You
will have to Manually adjust the size of this chart pane to have the
Text Align with the Top Symbol.
Mike - Thanks for your response. I liked the idea of inputting the
dates in DateNum format that you showed in your response. I used it
here in the tests.
As I expect my analysis to involve anywhere from 10-50 points, you can
(hopefully) see the potential problems.
I am using Dennis Brown's Flexible Parameters to handle the Parameter
screen for user input, but hope that someone on the list here can
suggest a more efficient / better method to do what I have shown. When
I want to scale it up to the 50-100 points, I am afraid the processing
time will make it impractical.
Any and all suggestions appreciated.
Thanks in advance...
__._,_.___
**** IMPORTANT ****
This group is for the discussion between users only.
This is *NOT* technical support channel.
*********************
TO GET TECHNICAL SUPPORT from AmiBroker please send an e-mail directly to
SUPPORT {at} amibroker.com
*********************
For NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG:
http://www.amibroker.com/devlog/
For other support material please check also:
http://www.amibroker.com/support.html
*********************************
__,_._,___
|
/*
Simple Test of Matching Dates 02
Parameters Organized by Grouping
Quick Summary of System
User inputs the Date, Level, and Comment for a Level event
A level (1-9) event sets all levels below it
i.e. If on Date 3 you have a Level 6 event, then
you need to show Levels 1-6 (symbols) for that date
Desired Results:
A STACK (Level #) of Colored symbols with the Text
Issues:
1. How to Process
2. How to Scale up to 20-50-100 Dates
3. When Scaling up - Managing the Parameters Screen
4. In this example - the order/grouping of the parameters
5. Combining PlotShapes (Pixel based Placement) and PlotText ($ based Placement)
Resolutions:
1. Ask the Group
2. Ask the Group
3. Using the Flexible Parameters from Dennis Brown
4. Using the Flexible Parameters in live system to Group Parameters and build Sub Menus
5. Plot indicator in seperate chart pane and manually size scale in 0-1 range
*/
// Paramaters Organized by Grouping
// Date Parameters - in Numeric form (DateNum values)
// Level Parameters (0-9)
// Text Parameters for On Screen Comments
// Symbol Parameters 0-4 (0 - None, 1 - Triangle, 2 -
D1 = Param("D01", 1081010, 1000101, 1101231, 1);
L1 = Param("L01", 2, 0, 9, 1);
T1 = ParamStr("T01", "Text 01");
S1 = Param("S01", 2, 0, 4, 1);
D2 = Param("D02", 1081003, 1000101, 1101231, 1);
L2 = Param("L02", 8, 0, 9, 1);
T2 = ParamStr("T02", "Text 02");
S2 = Param("S02", 4, 0, 4, 1);
D3 = Param("D03", 1080926, 1000101, 1101231, 1);
L3 = Param("L03", 3, 0, 9, 1);
T3 = ParamStr("T03", "Text 03");
S3 = Param("S03", 3, 0, 4, 1);
D4 = Param("D04", 1081017, 1000101, 1101231, 1);
L4 = Param("L04", 1, 0, 9, 1);
T4 = ParamStr("T04", "Text 04");
S4 = Param("S04", 4, 0, 4, 1);
D5 = Param("D05", 1081024, 1000101, 1101231, 1);
L5 = Param("L05", 7, 0, 9, 1);
T5 = ParamStr("T05", "Text 05");
S5 = Param("S05", 1, 0, 4, 1);
D6 = Param("D06", 1081031, 1000101, 1101231, 1);
L6 = Param("L06", 2, 0, 9, 1);
T6 = ParamStr("T06", "Text 06");
S6 = Param("S06", 1, 0, 4, 1);
D7 = Param("D07", 1081107, 1000101, 1101231, 1);
L7 = Param("L07", 5, 0, 9, 1);
T7 = ParamStr("T07", "Text 07");
S7 = Param("S07", 3, 0, 4, 1);
D8 = Param("D08", 1080919, 1000101, 1101231, 1);
L8 = Param("L08", 6, 0, 9, 1);
T8 = ParamStr("T08", "Text 08");
S8 = Param("S08", 2, 0, 4, 1);
D9 = Param("D09", 0, 0, 1101231, 1);
L9 = Param("L09", 0, 0, 9, 1);
T9 = ParamStr("T09", "");
S9 = Param("S09", 0, 0, 4, 1);
D10 = Param("D10", 0, 0, 1101231, 1);
L10 = Param("L10", 0, 0, 9, 1);
T10 = ParamStr("T10", "");
S10 = Param("S10", 0, 0, 4, 1);
// Set up the Color Arrays
color0 = colorwhite; // I Am using a Black background
color1 = colortan;
color2 = colordarkyellow;
color3 = colorpink;
color4 = colorturquoise;
color5 = colorgreen;
color6 = coloryellow;
color7 = colorred;
color8 = colorblue;
color9 = colorgrey50;
// Set up the Shapes Arrays
shape0 = shapedowntriangle;
shape1 = shapeuptriangle;
shape2 = shapecircle;
shape3 = shapesquare;
shape4 = shapestar;
// Set Both DateNum vs BarIndex
dn = DateNum();
bi = BarIndex();
// Due to the STACK of PlotShapes Required - How do I Process this...??
// Initialize the Plot control array
plotcontrol = 0;
// Initialize the Level Plot control Arrays
LP0 = LP1 = LP2 = LP3 = LP4 = LP5 = LP6 = LP7 = LP8 = LP9 = LP10 = 0;
// Initialze the Plot Shape control array
pshape = shapenone;
// loop through all bars to see if it matches a date and then set the control arrays
for(k=1; k<BarCount; k++)
{
i=0; // set the starting value for the do loop
do
{
i++; // Increment the looping variable
pshape[k] = VarGet("shape" + VarGet("S"+i));
if(dn[k] == VarGet("D"+i))
{
plotcontrol[k] = 1;
// Set the shape to Plot
// Do I need to get this plottext statement moved? How?
// plottext( text, x, y - in Dollars (Y Scale), color, bkcolor);
PlotText(" " + VarGetText("T"+i), k, (VarGet("L"+i)-1)*0.11, VarGet("color"+VarGet("L"+i)));
// now set the Level Plot array values
/* Method 1 - appears to not work
for (m=1; m<11; m++)
{
VarSet("LP" + m + "[" + k + "]", iif(VarGet("L"+i)>=1,1,0));
}
*/
/* Method 2 - BFI - Brut Force and Ignorance
*/
LP1[k] = iif(varget("L"+i)>=1,1,0);
LP2[k] = iif(varget("L"+i)>=2,1,0);
LP3[k] = iif(varget("L"+i)>=3,1,0);
LP4[k] = iif(varget("L"+i)>=4,1,0);
LP5[k] = iif(varget("L"+i)>=5,1,0);
LP6[k] = iif(varget("L"+i)>=6,1,0);
LP7[k] = iif(varget("L"+i)>=7,1,0);
LP8[k] = iif(varget("L"+i)>=8,1,0);
LP9[k] = iif(varget("L"+i)>=9,1,0);
break; // to break out of the DO LOOP (I Hope)
// Assumption that Actual Date only entered Once!!
}
} while( i<11);
}
// For Reference - Plot the Zero and One Level
//plot(Array, name, color, style, min, max, xshift);
Plot(0,"Zero", colorred, styleline+stylenolabel+stylenotitle);
Plot(1,"One", colorred, styleline+stylenolabel+stylenotitle);
// Now handle plotting the stack of shapes
for(i=1; i<11; i++)
{
// plotshapes( shape, color, layer, yposition, offset);
Plotshapes(plotcontrol*VarGet("LP" + i)*pshape, VarGet("color"+i), 0, 0, (i-1)*15);
}
/*
Simple Test of Matching Dates
Parameters Organized by Type
Quick Summary of System
User inputs the Date, Level, and Comment for a Level event
A level (1-9) event sets all levels below it
i.e. If on Date 3 you have a Level 6 event, then
you need to show Levels 1-6 (symbols) for that date
Desired Results:
A STACK (Level #) of Colored symbols with the Text
Issues:
1. How to Process
2. How to Scale up to 20-50-100 Dates
3. When Scaling up - Managing the Parameters Screen
4. In this example - the order/grouping of the parameters
5. Combining PlotShapes (Pixel based Placement) and PlotText ($ based Placement)
Resolutions:
1. Ask the Group
2. Ask the Group
3. Using the Flexible Parameters from Dennis Brown
4. Using the Flexible Parameters in live system to Group Parameters and build Sub Menus
5. Plot indicator in seperate chart pane and manually size scale in 0-1 range
*/
// Date Paramaters - in Numeric form (DateNum values)
D1 = Param("D01", 1081010, 1000101, 1101231, 1);
D2 = Param("D02", 1081003, 1000101, 1101231, 1);
D3 = Param("D03", 1080926, 1000101, 1101231, 1);
D4 = Param("D04", 1081017, 1000101, 1101231, 1);
D5 = Param("D05", 1081024, 1000101, 1101231, 1);
D6 = Param("D06", 1081031, 1000101, 1101231, 1);
D7 = Param("D07", 1081107, 1000101, 1101231, 1);
D8 = Param("D08", 1080919, 1000101, 1101231, 1);
D9 = Param("D09", 0, 0, 1101231, 1);
D10 = Param("D10", 0, 0, 1101231, 1);
// Level Parameters
L1 = Param("L01", 2, 0, 9, 1);
L2 = Param("L02", 8, 0, 9, 1);
L3 = Param("L03", 3, 0, 9, 1);
L4 = Param("L04", 1, 0, 9, 1);
L5 = Param("L05", 7, 0, 9, 1);
L6 = Param("L06", 2, 0, 9, 1);
L7 = Param("L07", 5, 0, 9, 1);
L8 = Param("L08", 6, 0, 9, 1);
L9 = Param("L09", 0, 0, 9, 1);
L10 = Param("L10", 0, 0, 9, 1);
// Text Parameters for On Screen Comments
T1 = ParamStr("T01", "Text 01");
T2 = ParamStr("T02", "Text 02");
T3 = ParamStr("T03", "Text 03");
T4 = ParamStr("T04", "Text 04");
T5 = ParamStr("T05", "Text 05");
T6 = ParamStr("T06", "Text 06");
T7 = ParamStr("T07", "Text 07");
T8 = ParamStr("T08", "Text 08");
T9 = ParamStr("T09", "");
T10 = ParamStr("T10", "");
// Symbol Parameters
S1 = Param("S01", 2, 0, 4, 1);
S2 = Param("S02", 4, 0, 4, 1);
S3 = Param("S03", 3, 0, 4, 1);
S4 = Param("S04", 4, 0, 4, 1);
S5 = Param("S05", 1, 0, 4, 1);
S6 = Param("S06", 1, 0, 4, 1);
S7 = Param("S07", 3, 0, 4, 1);
S8 = Param("S08", 2, 0, 4, 1);
S9 = Param("S09", 0, 0, 4, 1);
S10 = Param("S10", 0, 0, 4, 1);
// Set up the Color Arrays
color0 = colorwhite; // I Am using a Black background
color1 = colortan;
color2 = colordarkyellow;
color3 = colorpink;
color4 = colorturquoise;
color5 = colorgreen;
color6 = coloryellow;
color7 = colorred;
color8 = colorblue;
color9 = colorgrey50;
// Set up the Shapes Arrays
shape0 = shapedowntriangle;
shape1 = shapeuptriangle;
shape2 = shapecircle;
shape3 = shapesquare;
shape4 = shapestar;
// Set Both DateNum vs BarIndex
dn = DateNum();
bi = BarIndex();
// Due to the STACK of PlotShapes Required - How do I Process this...??
// Initialize the Plot control array
plotcontrol = 0;
// Initialize the Level Plot control Arrays
LP0 = LP1 = LP2 = LP3 = LP4 = LP5 = LP6 = LP7 = LP8 = LP9 = LP10 = 0;
// Initialze the Plot Shape control array
pshape = shapenone;
// loop through all bars to see if it matches a date and then set the control arrays
for(k=1; k<BarCount; k++)
{
i=0; // set the starting value for the do loop
do
{
i++; // Increment the looping variable
pshape[k] = VarGet("shape" + VarGet("S"+i));
if(dn[k] == VarGet("D"+i))
{
plotcontrol[k] = 1;
// Set the shape to Plot
// Do I need to get this plottext statement moved? How?
// plottext( text, x, y - in Dollars (Y Scale), color, bkcolor);
PlotText(" " + VarGetText("T"+i), k, (VarGet("L"+i)-1)*0.11, VarGet("color"+VarGet("L"+i)));
// now set the Level Plot array values
/* Method 1 - appears to not work
for (m=1; m<11; m++)
{
VarSet("LP" + m + "[" + k + "]", iif(VarGet("L"+i)>=1,1,0));
}
*/
/* Method 2 - BFI - Brut Force and Ignorance
*/
LP1[k] = iif(varget("L"+i)>=1,1,0);
LP2[k] = iif(varget("L"+i)>=2,1,0);
LP3[k] = iif(varget("L"+i)>=3,1,0);
LP4[k] = iif(varget("L"+i)>=4,1,0);
LP5[k] = iif(varget("L"+i)>=5,1,0);
LP6[k] = iif(varget("L"+i)>=6,1,0);
LP7[k] = iif(varget("L"+i)>=7,1,0);
LP8[k] = iif(varget("L"+i)>=8,1,0);
LP9[k] = iif(varget("L"+i)>=9,1,0);
break; // to break out of the DO LOOP (I Hope)
// Assumption that Actual Date only entered Once!!
}
} while( i<11);
}
// For Reference - Plot the Zero and One Level
//plot(Array, name, color, style, min, max, xshift);
Plot(0,"Zero", colorred, styleline+stylenolabel+stylenotitle);
Plot(1,"One", colorred, styleline+stylenolabel+stylenotitle);
// Now handle plotting the stack of shapes
for(i=1; i<11; i++)
{
// plotshapes( shape, color, layer, yposition, offset);
Plotshapes(plotcontrol*VarGet("LP" + i)*pshape, VarGet("color"+i), 0, 0, (i-1)*15);
}
|