Anyone using Metastock 8 can use the following formula to create a new indicator that will draw Igor's Camarilla lines (and a HLC/3 pivot) for every day on your INTRA-DAY chart. It will base the calculations on your previous day's chart data. After dropping the indicator on your chart, you can lower the variable to only show lines near the current price. 5 works good for ES. {---------------------------BEGIN---------------------} Prd:=Input("Points From Nearest Pivot",.1,200,45); D:=DayOfMonth()<>ValueWhen(2,1,DayOfMonth()); HighPd:=If(D OR Cum(1)=2,H,Max(H,PREV)); LowPd:=If(D OR Cum(1)=2,L,Min(L,PREV)); LastH:=ValueWhen(1,D,ValueWhen(2,1,HighPd)); LastL:=ValueWhen(1,D,ValueWhen(2,1,LowPd)); LastC:=ValueWhen(1,D,ValueWhen(2,1,C)); Pivot:=(LastH+LastL+LastC)/3; R1:=((LastH/LastL))*LastC; S1:=LastC - (R1-LastC); R2:=(((LastH/LastL)+0.83)/1.83)*LastC; S2:=LastC - (R2-LastC); R3:=(((LastH/LastL)+2.66)/3.66)*LastC; S3:=LastC - (R3-LastC); If(R3-HHV(H,30)<Prd,ValueWhen(1,R3>0,R3),ValueWhen(1,Pivot>0,Pivot)); If(R2-HHV(H,30)<Prd,ValueWhen(1,R2>0,R2),ValueWhen(1,Pivot>0,Pivot)); If(R1-HHV(H,30)<Prd,ValueWhen(1,R1>0,R1),ValueWhen(1,Pivot>0,Pivot)); ValueWhen(1,Pivot>0,Pivot); If(LLV(L,30)-S1<Prd,ValueWhen(1,S1>0,S1),ValueWhen(1,Pivot>0,Pivot)); If(LLV(L,30)-S2<Prd,ValueWhen(1,S2>0,S2),ValueWhen(1,Pivot>0,Pivot)); If(LLV(L,30)-S3<Prd,ValueWhen(1,S3>0,S3),ValueWhen(1,Pivot>0,Pivot)); {---------------------------END---------------------}
For fun, I coded Igor's cracked formula up in WealthLab, drew requisite LL levels, and applied it to the dow-mini (YM, 1 minute bars) from 3/12 - 3/19. I couldn't make heads or tails of how to apply this towards trading at all !!!!! If I'm missing something, and someone can help me understand better, I'd greatly appreciate it !!! Trading range days are supposed to bounce off of HL3 and LL3 (and it did not), and strong trending days (we had 'em this last week) is supposed to jettison thru HL4 or LL4, and that really didn't happen. BTW, I used the following commentary on the Camarilla equation, as a basis for these rules: http://www.camarillaequation.com/ Note that I only used Daily levels, and didn't look at weekly or monthly. And I only looked at 1-min bars. Perhaps this isn't the correct approach ? For you WL guys, here's the code I used. Please comment accordingly: Code: {$NO_AUTO_EXECUTE} var Bar: Integer; var dClS, dHiS, dLoS, dOpS: integer; var dHi, dLo, dCl, dOp: float; var CamLL3, CamLL4, CamLL5, CamHL3, CamHL4, CamHL5: integer; var dCamLL3, dCamLL4, dCamLL5, dCamHL3, dCamHL4, dCamHL5: Float; CamLL3 := CreateSeries; CamLL4 := CreateSeries; CamLL5 := CreateSeries; CamHL3 := CreateSeries; CamHL4 := CreateSeries; CamHL5 := CreateSeries; SetScaleDaily; dClS := IntradayFromDaily(#Close); dHiS := IntradayFromDaily(#High); dLoS := IntradayFromDaily(#Low); dOpS := IntradayFromDaily(#Open); RestorePrimarySeries; for Bar := 0 to BarCount - 1 do begin If BarNum(Bar) = 0 then begin // Opening Bar for Stock // Dailys dHi := @dHiS[Bar]; dLo := @dLoS[Bar]; dCl := @dClS[Bar]; dOp := @dOpS[Bar]; // Calculate Camarilla Levels dCamHL5 := (dHi/dLo)*dCl; dCamHL4 := (((dHi/DLo)+0.83)/1.83)*dCl; dCamHL3 := (((dHi/DLo)+2.66)/3.66)*dCl; dCamLL5 := dCl-(dCamHL5-dCl); dCamLL4 := dCl-(dCamHL4-dCl); dCamLL3 := dCl-(dCamHL3-dCl); end; @CamLL3[Bar] := dCamLL3; @CamLL4[Bar] := dCamLL4; @CamLL5[Bar] := dCamLL5; @CamHL3[Bar] := dCamHL3; @CamHL4[Bar] := dCamHL4; @CamHL5[Bar] := dCamHL5; // Plot Camarilla Levels PlotSeriesLabel(CamLL3,0,#Purple,#Thick,'Camarilla'); PlotSeries(CamLL4,0,#Purple,#Thin); PlotSeries(CamLL5,0,#Purple,#Dotted); PlotSeries(CamHL3,0,#Purple,#Thick); PlotSeries(CamHL4,0,#Purple,#Thin); PlotSeries(CamHL5,0,#Purple,#Dotted); end;