Sure
Here is the WLD code
The TS Code I will get back later.It still has bugs
var Bar, Frame, Multiplier, dayback, zeropoint, StartDate, hilodate: integer;
var HH, LL, PriceRange, OCT, SF, MN, MX, SPAN, daybackx: fLoat;
var D6, D11, D12, D13, D14, D15, D16, D17, D18, FHigh: float;
var E11, E12, E13, E14, E15, E16, E17, E18, FLOW, Increment: float;
var StrtVal, Value0, Value1, Value2, Value3, Value4, Value5, Value6, Value7, Value8, Value9, Value10, Value11: float;
var BodyHiLo: boolean;
HideVolume;
SetColorScheme( #Lime, 922, #Olive, 001, 021, #Silver );
{ Good only for daily chart }
if isdaily=false then
begin
ShowMessage( 'Works on daily data only!' );
Abort;
end;
{ User Input }
BodyHiLo:=true;
Frame:=64;
Multiplier:=1;
StartDate:=20021002;
{ Get Correct Timeframe }
for bar:= 1 to barcount-1 do
begin
if getdate(bar)=StartDate then zeropoint:=bar
end;
hilodate:=round(int(frac((barcount-1-zeropoint)/64)*64-8));
dayback:=round(int(frac((barcount-1-zeropoint)/64)*64));
{ Check High Low }
If BodyHiLo then HH:= Max(Highest(BarCount-hilodate,#Open,Frame*Multiplier ), Highest(BarCount-hilodate,#Close,Frame*Multiplier ))
else HH:=Highest(BarCount-hilodate, #High,Frame*Multiplier);
If BodyHiLo then LL:= Min(Lowest(BarCount-hilodate,#Open,Frame*Multiplier ),Lowest(BarCount-hilodate,#Open,Frame*Multiplier ))
else LL:=Lowest(BarCount-hilodate, #Low,Frame*Multiplier);
{Identify Scale Factor}
If (HH <= 250000) and (HH > 25000) then SF := 100000
else if (HH <= 25000) and (HH > 2500) then SF := 10000
else if (HH <= 2500) and (HH > 250) then SF := 1000
else if (HH <= 250) and (HH > 25) then SF := 100
else if (HH <= 12.5) and (HH > 6.25) then SF := 12.5
else if (HH <= 6.25) and (HH > 3.125) then SF := 6.25
else if (HH <= 3.125) and (HH > 1.5625) then SF := 3.125
else if (HH <= 1.5625) and (HH > 0.390625) then SF := 1.5625
else SF := 0.1953125;
PriceRange:=HH-LL;
D6 := int(Log10(SF/PriceRange)/Log10(2));
OCT := SF * (Power(0.50, D6));
MN := Int(LL/OCT);
MN := MN * OCT; { trunc occurs before the mult, this forces that}
If (MN + OCT) > HH then MX := MN + OCT
else MX := MN + (2 * OCT);
Span:=MX-MN;
if (LL >= 0.1875 * Span + MN) AND (HH <= 0.5625 * Span + MN) then D12 := MN + 0.50 * Span else D12 :=0;
if (LL >= 0.4375 * Span + MN) AND (HH <= 0.8125 * Span + MN) then D14 := MN + 0.75 * Span else D14 :=0;
if (LL >= MN - 0.125 * Span) AND (HH <= 0.625 * Span + MN) AND (D12 = 0) then D11 := MN + 0.50 * Span else D11 :=0;
if (LL >= 0.375 * Span + MN) AND (HH <= 1.125 * Span + MN) AND (D14= 0) then D15 := MX else D15 :=0;
if (LL >= 0.125 * Span + MN) AND (HH <= 0.875 * Span + MN) AND (D11 = 0) AND (D12 = 0) AND (D14 =0) AND (D15 = 0) then D13 := MN + 0.75 * Span else D13 :=0;
if (D11+D12+D13+D14+D15 = 0) then D16 := MX else D16 := 0;
if D11 > 0 then D18 := D11
else if D12 > 0 then D18 := D12
else if D13 > 0 then D18 := D13
else if D14 > 0 then D18 := D14
else if D15 > 0 then D18 := D15
else if D16 > 0 then D18 := D16; { added this line }
FHigh := D18;
if (D11 > 0) then E11 := MN else E11 := 0;
if (D12 > 0) then E12 := MN + 0.25 * Span else E12 := 0;
if (D13 > 0) then E13 := MN + 0.25 * Span else E13 := 0;
if (D14 > 0) then E14 := MN + 0.50 * Span else E14 := 0;
if (D15 > 0) then E15 := MN + 0.50 * Span else E15 := 0;
if (D16 > 0) then E16 := MN else E16 := 0;
E18 := E11+E12+E13+E14+E15+E16;
FLOW := e18;
Increment:=0.125*(FHigh-FLow);
Value11:=FLow-Increment;
StrtVal:=Value11-Increment;
Value0:=FLow;
Value1:=FLow+Increment;
Value2:=Value1+Increment;
Value3:=Value2+Increment;
Value4:=Value3+Increment;
Value5:=Value4+Increment;
Value6:=Value5+Increment;
Value7:=Value6+Increment;
Value8:=FHigh;
Value9:=Value8+Increment;
Value10:=Value9+Increment;
DrawHorzLine( StrtVal, 0, #Red, #Dotted );
DrawHorzLine( Value11, 0, #White, #Dotted );
DrawHorzLine( Value0, 0, #Blue, #Thick );
DrawHorzLine( Value1, 0, #White, #Dotted );
DrawHorzLine( Value2, 0, #Red, #Dotted );
DrawHorzLine( Value3, 0, #Green, #Dotted );
DrawHorzLine( Value4, 0, #Blue, #Dotted );
DrawHorzLine( Value5, 0, #Green, #Dotted );
DrawHorzLine( Value6, 0, #Red, #Dotted );
DrawHorzLine( Value7, 0, #White, #Dotted );
DrawHorzLine( Value8, 0, #Blue, #Thick );
DrawHorzLine( Value9, 0, #White, #Dotted );
DrawHorzLine( Value10, 0, #Red, #Dotted );
AnnotateChart( '-2/8', 0, Barcount-dayback, StrtVal, #White, 8 );
AnnotateChart( '-1/8', 0, Barcount-dayback, Value11, #White, 8 );
AnnotateChart( '0/8', 0, Barcount-dayback, Value0, #White, 8 );
AnnotateChart( '1/8', 0, Barcount-dayback, Value1, #White, 8 );
AnnotateChart( '2/8', 0, Barcount-dayback, Value2, #White, 8 );
AnnotateChart( '3/8', 0, Barcount-dayback, Value3, #White, 8 );
AnnotateChart( '4/8', 0, Barcount-dayback, Value4, #White, 8 );
AnnotateChart( '5/8', 0, Barcount-dayback, Value5, #White, 8 );
AnnotateChart( '6/8', 0, Barcount-dayback, Value6, #White, 8 );
AnnotateChart( '7/8', 0, Barcount-dayback, Value7, #White, 8 );
AnnotateChart( '8/8', 0, Barcount-dayback, Value8, #White, 8 );
AnnotateChart( '+1/8', 0, Barcount-dayback, Value9, #White, 8 );
AnnotateChart( '+2/8', 0, Barcount-dayback, Value10, #White, 8 );
AnnotateChart( '-2/8', 0, Barcount-dayback-frame, StrtVal, #White, 8 );
AnnotateChart( '-1/8', 0, Barcount-dayback-frame, Value11, #White, 8 );
AnnotateChart( '0/8', 0, Barcount-dayback-frame, Value0, #White, 8 );
AnnotateChart( '1/8', 0, Barcount-dayback-frame, Value1, #White, 8 );
AnnotateChart( '2/8', 0, Barcount-dayback-frame, Value2, #White, 8 );
AnnotateChart( '3/8', 0, Barcount-dayback-frame, Value3, #White, 8 );
AnnotateChart( '4/8', 0, Barcount-dayback-frame, Value4, #White, 8 );
AnnotateChart( '5/8', 0, Barcount-dayback-frame, Value5, #White, 8 );
AnnotateChart( '6/8', 0, Barcount-dayback-frame, Value6, #White, 8 );
AnnotateChart( '7/8', 0, Barcount-dayback-frame, Value7, #White, 8 );
AnnotateChart( '8/8', 0, Barcount-dayback-frame, Value8, #White, 8 );
AnnotateChart( '+1/8', 0, Barcount-dayback-frame, Value9, #White, 8 );
AnnotateChart( '+2/8', 0, Barcount-dayback-frame, Value10, #White, 8 );
DrawCircle2( (Barcount-dayback+frame/2) , value4, (Barcount-dayback+frame/2) , value5+increment, 0, #White, #Dotted );
DrawCircle2( (Barcount-dayback+frame/4) , value2, (Barcount-dayback+frame/4) , value3+increment, 0, #White, #Dotted );
DrawCircle2( (Barcount-dayback+frame/4) , value6, (Barcount-dayback+frame/4) , value7+increment, 0, #White, #Dotted );
DrawCircle2( (Barcount-dayback+3*frame/4), value2, (Barcount-dayback+3*frame/4), value2+increment, 0, #White, #Dotted );
DrawCircle2( (Barcount-dayback+3*frame/4), value6, (Barcount-dayback+3*frame/4), value6+increment, 0, #White, #Dotted );
DrawCircle2( (Barcount-dayback-frame/2) , value4, (Barcount-dayback-frame/2) , value5+increment, 0, #White, #Dotted );
DrawCircle2( (Barcount-dayback-frame/4) , value2, (Barcount-dayback-frame/4) , value3+increment, 0, #White, #Dotted );
DrawCircle2( (Barcount-dayback-frame/4) , value6, (Barcount-dayback-frame/4) , value7+increment, 0, #White, #Dotted );
DrawCircle2( (Barcount-dayback-3*frame/4), value2, (Barcount-dayback-3*frame/4), value3+increment, 0, #White, #Dotted );
DrawCircle2( (Barcount-dayback-3*frame/4), value6, (Barcount-dayback-3*frame/4), value7+increment, 0, #White, #Dotted );
DrawCircle2( (Barcount-dayback+frame/2) , value4, (Barcount-dayback+frame/2) , value5, 0, #White, #Thin );
DrawCircle2( (Barcount-dayback+frame/4) , value2, (Barcount-dayback+frame/4) , value3, 0, #White, #Thin );
DrawCircle2( (Barcount-dayback+frame/4) , value6, (Barcount-dayback+frame/4) , value7, 0, #White, #Thin );
DrawCircle2( (Barcount-dayback+3*frame/4), value2, (Barcount-dayback+3*frame/4), value2, 0, #White, #Thin );
DrawCircle2( (Barcount-dayback+3*frame/4), value6, (Barcount-dayback+3*frame/4), value6, 0, #White, #Thin );
DrawCircle2( (Barcount-dayback-frame/2) , value4, (Barcount-dayback-frame/2) , value5, 0, #White, #Thin );
DrawCircle2( (Barcount-dayback-frame/4) , value2, (Barcount-dayback-frame/4) , value3, 0, #White, #Thin );
DrawCircle2( (Barcount-dayback-frame/4) , value6, (Barcount-dayback-frame/4) , value7, 0, #White, #Thin );
DrawCircle2( (Barcount-dayback-3*frame/4), value2, (Barcount-dayback-3*frame/4), value3, 0, #White, #Thin );
DrawCircle2( (Barcount-dayback-3*frame/4), value6, (Barcount-dayback-3*frame/4), value7, 0, #White, #Thin );
DrawCircle2( (Barcount-dayback+frame/2) , value4, (Barcount-dayback+frame/2) , value5-increment/2, 0, #White, #Thick );
DrawCircle2( (Barcount-dayback+frame/4) , value2, (Barcount-dayback+frame/4) , value3-increment/2, 0, #White, #Thick );
DrawCircle2( (Barcount-dayback+frame/4) , value6, (Barcount-dayback+frame/4) , value7-increment/2, 0, #White, #Thick );
DrawCircle2( (Barcount-dayback+3*frame/4), value2, (Barcount-dayback+3*frame/4), value2-increment/2, 0, #White, #Thick );
DrawCircle2( (Barcount-dayback+3*frame/4), value6, (Barcount-dayback+3*frame/4), value6-increment/2, 0, #White, #Thick );
DrawCircle2( (Barcount-dayback-frame/2) , value4, (Barcount-dayback-frame/2) , value5-increment/2, 0, #White, #Thick );
DrawCircle2( (Barcount-dayback-frame/4) , value2, (Barcount-dayback-frame/4) , value3-increment/2, 0, #White, #Thick );
DrawCircle2( (Barcount-dayback-frame/4) , value6, (Barcount-dayback-frame/4) , value7-increment/2, 0, #White, #Thick );
DrawCircle2( (Barcount-dayback-3*frame/4), value2, (Barcount-dayback-3*frame/4), value3-increment/2, 0, #White, #Thick );
DrawCircle2( (Barcount-dayback-3*frame/4), value6, (Barcount-dayback-3*frame/4), value7-increment/2, 0, #White, #Thick );
CV
--------------------------------------
"Trade what you see not what you think and definitely not what others think"