1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
| SetBarsRequired(1000000,1000000);
GraphXSpace = 20;
_SECTION_BEGIN("ZOOM");
FocusTrigger= ParamTrigger("Focus on Cursor","FOCUS");// zoom out by ZoomIncrement
ZoomInTrigger= ParamTrigger("Zoom in","IN");// zoom in by ZoomIncrement
ZoomOutTrigger= ParamTrigger("Zoom out","OUT");// zoom in by ZoomIncrement
ZoomAllTrigger = ParamTrigger("Zoom max. out","ALL");// zoom out to all bars
ZoomPrevTrigger= ParamTrigger("Go to Next Event","NEXT");// Jump to next event
ZoomNextTrigger= ParamTrigger("Go to Previous Event","PREVIOUS");// Jump to previous event
RJTrigger= ParamTrigger("Right Justify Chart","JUSTIFY");
ZoomIncrement= Param("Zoom Increment",10,1,1000,2);
ZoomWidth= Param("Window Width",20,2,1000,1);
_SECTION_END();
_SECTION_BEGIN("TEST SIGNALS");
ZoomEvent= ParamList("Zoom Event","MONDAY|RSI-BUY|RSI-SELL|TARGET",1);// Test events
ProfitTarget= Param("Profit Target",0.1,0,2,0.01);// Profit target
_SECTION_END();
PrevZoomWidth= Nz(StaticVarGet("ZoomWidth"));
ZoomChange= PrevZoomWidth != ZoomWidth;
StaticVarSet("ZoomWidth",ZoomWidth);
ZoomAction = FocusTrigger OR ZoomOutTrigger OR ZoomAllTrigger OR ZoomNextTrigger OR ZoomPrevTrigger OR ZoomChange OR ZoomInTrigger OR RJTrigger;
if( ZoomEvent == "MONDAY" ) Event = DayOfWeek() == 1;
else if( ZoomEvent == "RSI-BUY" )
{
Event = Cross(30,RSI());// Buy rule to investigate
PlotShapes(IIf(Event,shapeSmallUpTriangle, shapeNone),5,0,C,0);
Sell = 0;
}
else if( ZoomEvent == "RSI-SELL" )
{
Event = Cross(RSI(),70);// sell rule to investigate
PlotShapes(IIf(Event,shapeHollowDownTriangle, shapeNone),4,0,C,0);
Buy = 0;
}
else if( Zoomevent == "TARGET" )
{
Target = Ref(C,1) - C;// Profit target to analyze
Event = Target > ProfitTarget;
PlotShapes(IIf(Event,shapeSmallUpTriangle, shapeNone),5,0,C,0);
}
else Event = 0;
Plot(C,"",1,128);
EventNum = Cum(Event);
FVBI = Status("FirstVisibleBarIndex");
LVBI = Status("LastVisibleBarIndex");
BI = BarIndex();
SBI = SelectedValue(BI);
LBI = LastValue(BI);
FirstVisibleBar = Status( "FirstVisibleBar" );
Lastvisiblebar = Status("LastVisibleBar");
for( b = Firstvisiblebar; b < Lastvisiblebar AND b < BarCount; b++)
{
if( Event[b] ) PlotText("\n\n\n\nEvent\n"+NumToStr(EventNum[b],1.0,False),b,L[b],1);
}
if( GetCursorMouseButtons() == 1 )
{
StaticVarSet("CursorIndex",SBI);
EventNum = Cum(Event);
StaticVarSet("EventNumber",SelectedValue(EventNum));
StaticVarSet("FocusIndex",SBI-1);
}
CursorIndex= Nz(StaticVarGet("CursorIndex"));
if( ZoomAction )
{
CurrentRange= LastVisiblebar-FirstVisibleBar;
VisibleCenter= int((LastVisibleBar + FirstVisibleBar)/2);
PrevEventIndex = LastValue(ValueWhen(Event,BI,1));
NextEventIndex = LastValue(ValueWhen(Event,BI,-1));
FirstBarIndex = Nz(StaticVarGet("FirstBarIndex"));
LastBarIndex = Nz(StaticVarGet("LastBarIndex"));
if( FocusTrigger) ZoomToCursor( ZoomWidth );
else if( ZoomInTrigger ) ZoomIn( ZoomWidth );
else if( ZoomOutTrigger ) ZoomOut( ZoomWidth );
else if( ZoomNextTrigger ) ZoomToPrev( Event, ZoomWidth );
else if( ZoomPrevTrigger ) ZoomToNext( Event, ZoomWidth );
else if( ZoomAllTrigger ) ZoomAllOut();
else if( RJTrigger ) RightJustifyChart( ZoomWidth );
}
MArkFocus();
Plot(Event,"",5,styleArea|styleOwnScale|styleNoLabel,0,10);
CursorIndex = StaticVarGet("CursorIndex");
EventNumber= StaticVarGet("EventNumber");
Title = "\n"+
"Cursor Index: "+NumToStr(CursorIndex,1.0,False)+"\n"+
"EventNumber: "+NumToStr(EventNumber,1.0,False)+"\n"; |