door Pierre » di 22 jun 2004, 9:03
Hallo mvs,
Het is inderdaad mogelijk om zo'n stoploss te maken.
Dat gaat als volgt...
value function zStopOnEntryBar() begin
?value xMarketPosition, xBarNo; ?
?value xStopLong, xStopShort;
?{--- get position and bars since entry ---}
?xMarketPosition := MarketPosition;
?xBarNo := BarsSinceEntry(0);
?{--- set stoploss for long position ---}
?if xMarketPosition=1 then xStopLong := Low[xBarNo]
?else xStopLong := Low;
?{--- set stoploss for short position ---}
?if xMarketPosition=-1 then xStopShort := High[xBarNo]
?else xStopShort := High;
?{--- execute the stops ---}
?exitlong next bar at xStopLong stop;
?exitshort next bar at xStopShort stop;
?end;
Let op: deze versie is alleen geschikt voor Vestics-2!
Voor Vestics-1 zou het ietsje anders moeten.
Korte toelichting...
In Vestics-2 wordt, net als in TradeStation, de MarketPosition weergegeven zoals deze was aan het begin van de bar. Met andere woorden... als je net in deze bar long bent gegaan, dan geeft marketposition dat nog niet aan.
Vandaar dat de stop voor een long positie als volgt wordt bepaald...
- als de marketposition long is, dan zijn we dus al eneke bars long, en dan nemen we de low van de entrybar van deze trade.
- als de marketposition niet long is, dan is er een (kleine) kans dat we in deze bar een long positie innemen. Zo ja, dan moeten we de low van deze bar als stoploss nemen.
Een stukje verderop wordt een stoploss order ingegeven voor de long positie. Deze opdracht geldt alleen voor de volgende bar en sluit een eventuele long positie als de koers onder de ingestelde stop-waarde komt. Als we geen long positie hebben doet deze opdracht dus niets.
De afhandeling van de short positie is net het spiegelbeeld van de long positie.
vr. groeten,
Pierre Dolmans