is het mogelijk dat je een indicator maakt die een cijfer onder een candle zet, nu komt het, ik heb ook de indexen ind die beginnen om 2.00 uur, maar ik wil beginnen om 9.00 uur met de eerste candle, liefst in het wit het cijfer.
{- Filename: Intraday candle teller -}
procedure TextBelowBar(Bar: integer; Text: string; AColor: TColor);
begin
with CreateText(BarPosition[Bar], Low[Bar], Text) do
begin
VertPosition := vpBottom;
HorzPosition := hpCenter;
Color := AColor;
end;
end;
var
FirstBarTime: TDateTime;
DayNr, NewDayNr, BarNr, i, iFirst: integer;
NCol: TColor;
begin
with Indicator do
begin
RequiredBars := 10;
NewBand := false;
HiddenParams := true;
end;
FirstBarTime := CreateParameterTime('Tijd eerste bar', 9/24);
NCol := CreateParameterColor('Cijferkleur', clSilver);
iFirst := FirstValidIndex(Close);
for i:=iFirst to BarCount-1 do
begin
NewDayNr := trunc(DateTime[i]);
if NewDayNr <> DayNr then
begin
DayNr := NewDayNr;
BarNr := 1;
end;
if frac(DateTime[i]) >= FirstBarTime then
begin
TextBelowBar(i, IntToStr(BarNr), NCol);
BarNr := BarNr+1;
end;
end;
end.
Werkt goed Eric, mijn dank, nog een vraag als ik in een 15 min grafiek bij de 1e candle van 9.00 het cijfer wil hebben moet ik 8.58 invullen toch bij tijd eerste bar?
Dat weet ik niet, want ik weet niet wat jij bedoelt met "de candle van 9:00". Maar je ziet waar de 1 verschijnt toch? Als dat goed is voor jou dan niks meer aan doen.
De regel is: nummer 1 wordt geplaatst bij de eerste bar met een tijd (eindtijd, zoals weergegeven bovenin de grafiek) na de opgegeven tijd.
Het is niet tot op de pixel te regelen, als dit nog niet is wat je wilt moet je het getal 0.9999 op de vijfde regel iets groter of kleiner maken (wel kleiner dan 1).
{- Filename: Intraday candle teller -}
procedure TextBelowBar(Bar: integer; Text: string; AColor: TColor);
begin
with CreateText(BarPosition[Bar], Low[Bar]*0.9999, Text) do
begin
VertPosition := vpBottom;
HorzPosition := hpCenter;
Color := AColor;
end;
end;
var
FirstBarTime: TDateTime;
DayNr, NewDayNr, BarNr, i, iFirst: integer;
NCol: TColor;
begin
with Indicator do
begin
RequiredBars := 10;
NewBand := false;
HiddenParams := true;
end;
FirstBarTime := CreateParameterTime('Tijd eerste bar', 9/24);
NCol := CreateParameterColor('Cijferkleur', clSilver);
iFirst := FirstValidIndex(Close);
for i:=iFirst to BarCount-1 do
begin
NewDayNr := trunc(DateTime[i]);
if NewDayNr <> DayNr then
begin
DayNr := NewDayNr;
BarNr := 1;
end;
if frac(DateTime[i]) >= FirstBarTime then
begin
TextBelowBar(i, IntToStr(BarNr), NCol);
BarNr := BarNr+1;
end;
end;
end.
Eric, ik heb geprobeerd om he cijfer iets lager te zetten maar stenen stapelen lukt wel maar iets veranderen in software ook. alleen kreeg ik een foutmelding.
Zodra ik meer candels in en grafiek zet, dan zit het cijfer tocht te dicht tegen de staart van de candle aan, mocht jij deze weer iets lager zetten dan graag.
Alvast bedankt
Ik probeer het probleem te begrijpen om de beste oplossing te vinden, want het lijkt mij dat het probleem niet direct is dat de cijfers te dicht tegen de candle staart aan zitten. Bij mij is het probleem eerder dat de cijfers door elkaar en door de grafiek heen gaan lopen als er te weinig ruimte is. Daar verandert het aanpassen van dat cijfertje niet zo heel veel aan. Heb je een voorbeeld van het beeld dat jouw probleem goed weergeeft?
Eric, als je in de grafiek naar b.v bar 84-85-86 kijk dat bedoelde ik , uiteraard als ik een teveel bar is een grafiek zet dan krijg je wat jij bedoelt, zodra er bijna geen tail onder de bar zit heb je er ook geen last van.
mar kan jij iets inbouwen dat je het zelf kan regelen in de indicator?