Pagina 1 van 1

Trendlijnen programmeren

BerichtGeplaatst: di 04 feb 2003, 17:11
door Wilco
Wie kan mij vertellen hoe ik een trendlijn in een handelssysteem kan programmeren.
Als ik TL_New(parameters) gebruik verschijnt er niets. Bovendien zou ik als parameters geen vaste waarden willen invullen, maar bijv. de laatste 2 toppen in de grafiek.

Trendlijnen programmeren

BerichtGeplaatst: zo 09 feb 2003, 11:04
door artisan
Dat is voor mij ook een vraag die ik graag beantwoord zou willen zien. Zelf heb ik met onderstaande code in de daggrafiek van ASMI iets van een trendlijn proberen te tekenen, maar zoals Wilco al zegt, zonder succes.

value function ztrendlijn (value ?xFromDate=1020428,value xFromPrice=28,
value xToDate=1030206,value xToPrice=12) begin
?TL_New (xFromdate,0,xFromPrice,xToDate,0,xToPrice);
?end;

Trendlijnen programmeren

BerichtGeplaatst: ma 10 feb 2003, 18:52
door artisan
Ik heb het voor elkaar Wilco !! Allereerst heb ik de volgende functie "xTrendlijn" gedefinieerd:

value function xTrendlijn (value xFromPrice,value xFromTime,value xFromdate,
value xToPrice,value xTodate,value xToTime,value xExtLeft,value xExtRight,value xAlert=0)
begin
value xValue;
xValue := Builtin(114,Date,Time,xFromDate,xFromTime,xFromPrice
? ,xToDate,xToTime,xToPrice,xExtLeft,xExtRight);
Plot1 (xValue,"TrendLine");

end;

Vervolgens kun je met behulp van onderstaande indicator "zTrendLijn" ?de trendlijn in de grafiek plaatsen:

value function ztrendlijn (value xFromDate=1020426,value xFromPrice=28,value xToDate=1030206,value xToPrice=12) begin
?xTrendlijn (xFromPrice,0,xFromdate,xToPrice,xToDate,0,0,0);
?end;

Het hierboven behandelde voorbeeld slaat op ASMI, waarbij vanaf 28 euro op 26 april vorig jaar een lijn getrokken wordt naar 12 euro op 6 februari dit jaar. Je kan natuurlijk ook variabelen hiervoor uitkiezen door bijvoorbeel de hoogste koers van de afgelopen twee maanden te selecteren. Je moet dan natuurlijk ook de bijbehorende datum in een variabele vastleggen. ?(Met dank aan DO ( zie verticale trendlijn (2) verderop in dit forum.)

Trendlijnen programmeren

BerichtGeplaatst: di 11 feb 2003, 10:32
door Wilco
Artisan, helaas kreeg ik je oplossing niet aan de praat: er verscheen niets in beeld. Daarom je zTrendLijn maar wat aangepast:

value function z TrendLijn (value xFromDate=1020426,value xFromPrice=28,value xToDate=1030206,value xToPrice=12) begin;
value xValue;
xTrendlijn (xFromPrice,0,xFromdate,xToPrice,xToDate,0,0,0);

Plot1 (xValue,"TrendLine");
end;

Echter ook dit was het niet echt: wel beeld maar een subgrafiek met een horizontale rechte lijn op 0.00

Vervolgens van je functie xTrendLijn maar een indicator gemaakt en deze ingevoegd in de grafiek en dat werkte wel. ?Dus in zoverre wel een gedeelte van m?n probleem beantwoord (hoewel ik dus niet direct de bedoeling van zTrendLijn zie).

Echter mijn kernprobleem is het volgende:
ik zoek een oplossing voor een automatische plot van een trendlijn in de grafiek: een indicator die iedere dag automatisch een trendlijn over bijv. de toppen van de grafiek (de top en de op ??n na hoogste top van de afgelopen dagen) trekt en zomogelijk ook niet meer actuele trendlijnen ?verwijderd.
Daarmee zou namelijk een koersdoel op basis van trendlijnen cq. een trendkanaal in een handelssysteem ingebouwd kunnen worden.

Trendlijnen programmeren

BerichtGeplaatst: di 11 feb 2003, 18:06
door artisan
Wilco, bij mij werkt het uitstekend. Ik vermoed dat je de eerste code (onder xTrendLijn) niet als functie hebt opgeslagen , maar als indicator. ?Je kan dit kontroleren door met F11 naar de designer te gaan en dan via tabblad Editor, Module openen onder het tabblad Function te kijken of daar inderdaad een functie onder de naam xTrendlijn gedefinieerd staat.
De tweede code (onder zTrendLijn) moet je opslaan als indicator. Je ziet dat in deze laatste code de functie xTrendLijn aangeroepen wordt.
Dit verklaart ook dat je in je zelfgemaakte code een rechte lijn op het scherm krijgt, omdat de waarde xValue blijkbaar steeds de waarde nul houdt.

Succes!!

Trendlijnen programmeren

BerichtGeplaatst: di 11 feb 2003, 19:21
door artisan
Nog even ter aanvulling: De functie xTrendlijn is specifiek als functie opgeslagen zodat je hem later in elke willekeurige indicator (hier zTrendlijn) kunt gebruiken. Dat beantwoord je vraag wellicht waarom ik xTrendlijn niet als indicator gebruik.
Je kunt nu in een nieuw te maken indicator de koerstoppen berekenen. Door die op te slaan in bijv de variabelen xMax1 en xMax2 en deze variabelen te gebruiken bij het aanroepen van de functie xTrendlijn kun je de door jou gevraagde trendlijnen voor elke willekeurige grafiek maken .

Trendlijnen programmeren

BerichtGeplaatst: wo 12 feb 2003, 15:50
door Wilco
Artisan, ondanks alle goede bedoelingen: ook als ik alles letterlijk doe wat je aangeeft, ik krijg niets in beeld. De duvel zal er wel mee spelen, oftewel zal wel aan mij liggen, maar al met al ben ik dus geen stap verder.

Trendlijnen programmeren

BerichtGeplaatst: vr 14 feb 2003, 20:11
door Wilco
Ik heb uit de manual Stad 5 blz. 28 e.v. ?op http://groups.yahoo.com/group/vestics/ ? de onderstaande code gekopieerd en ingevoerd in Vestics. Ik krijg daarmee exact de gevraagde automatische trendlijnen!

Echter nu heb ik weer het probleem dat het wel wat teveel van het goede wordt: meer dan ?tig trendlijnen!

Hoe kan ik deze code zodanig aanpassen, dat ik bijv. alleen de laatste 3 trendlijnen krijg? ?Als dat lukt hebben we er weer een mooie indicator bij in Vestics.


Inputs: RHStren(4), RLStren(4), Trailbar(6);

Vars: ? RHTLRef(-1), RHTLRef2(-1),RHSet(-1), RHSet2(-1),RHArrayVal(0);

Array: RHDate[10](0), RHTime[10](0), RHVal[10](0), RLDate[10](99999),
? ? ?RLTime[10](99999), RLVal[10](99999);

{Find new Swing High bars and draw corresponding trend lines }
If SwingHighBar(1, High, RHStren, RHStren+1)=RHStren then Begin
For Value1 =9 downto 0 Begin
RHDate[Value1+1]=RHDate[Value1];
RHTime[Value1+1]=RHTime[Value1];
RHVal[Value1+1]=RHVal[Value1];
End;
RHDate[0]=Date[RHStren];
RHTime[0]=Time[RHStren];
RHVal[0]=High[RHStren];
For Value22=1 to 10 Begin
if RHVal[Value22]>RHVal[0] then Begin
RHArrayVal=Value22;
Value22=11;
End;
End;
if Value22<>11 then Begin
if RHSet>=0 then Begin
RHSet2=TL_SetExtRight(RHTLRef, False);
TL_Delete(RHTLRef);
End;
RHTLRef=TL_New(RHDate[RHArrayVal],RHTime[RHArrayVal],RHVal[RHArrayVal], RHDate[0], RHTime[0], RHVal[0]);
RHSet=TL_SetExtRight(RHTLRef, True);
End;
End;