JB Volatility Strat, geen plot

Vragen en suggesties over Vesticode

Moderator: Perry

JB Volatility Strat, geen plot

Berichtdoor willie » di 08 maart 2005, 20:52

Hoi,

Bij deze strategy geeft de vestics editor geen fouten. Na invoegen in een grafiek komt er geen plot.

Wie kan zeggen hoe dit op te lossen ?

gr.

willie
---------------------
http://www.traders.com/Documentation/FE ... adestation

{Indicator: JB Volatility Strat }

inputs:
HighestHighRange( 20 ),
LowestLowRange( 20 ),
LongATR_Len(10 ),
LongTrailLen( 15 ),
LongProfitTakerLen(13),
WeeklyAverageLength( 34 ),
?RSIEntryThreshold( 30 ),
RSI_Length( 7 ),
?RSISignalLen( 10 ),
?RecentLowLen(3);
variables:
LowestLow(0),
LongATR( 0 ),
EntryLong(0),
LongStop(0),
LongProfitTarget(0),
WeeklyAverage(0),
RSISignalCounter( 0 ),
?MP( 0 ),
?ImmedStop(0),
LongStopCrossed( False ),
MaxLongStop(0);

Value1 = RSI(close, RSI_Length);
if Value1 crosses over RSIEntryThreshold and
Close > Average( Close, 34*5) and
MarketPosition = 0
then
RSISignalCounter = 0 ;
RSISignalCounter = RSISignalCounter + 1 ;
WeeklyAverage = Average( Close, WeeklyAverageLength * 5 );
LowestLow = Lowest(Low, LowestLowRange);
LongATR = AvgTrueRange( LongATR_Len) ;
EntryLong = LowestLow +2*LongATR;
LongStop = Highest(H, LongTrailLen) - 2*LongATR;
LongProfitTarget = XAverage(High,LongProfitTakerLen)+ 2*LongATR ;
MP = MarketPosition ;
if MP = 0 then
begin
LongStopCrossed = False ;
MaxLongStop = LongStop ;
end
else if LongStop > MaxLongStop then
MaxLongStop = LongStop ;
if Close > WeeklyAverage and
MarketPosition = 0 and
WeeklyAverage > WeeklyAverage[5] and
RSISignalCounter < RSISignalLen
then
begin
Buy next bar at EntryLong stop ;
Sell ("LowestLow") next bar at Lowest(Low, RecentLowLen) stop ;
Sell ("Profit Target#1") next bar at LongProfitTarget limit ;
end ;
if MP[1] = 0 and MP = 1 then
begin
RSISignalCounter = RSISignalLen ;
ImmedStop = Lowest(Low,RecentLowLen + 1);
end ;
if MarketPosition = 1 and
Close[1] < MaxLongStop and
Close >= MaxLongStop and
LongStopCrossed = False
then
LongStopCrossed = True ;
if MarketPosition = 1 and
Close < MaxLongStop and
Close[1]<MaxLongStop and
LongStopCrossed
then
Sell ("LongVolStop") next bar market
else if MarketPosition = 1 then
Sell ("ImmedStop") next bar at ImmedStop stop ;
if MarketPosition = 1 then
Sell next bar at LongProfitTarget limit ;




(Edited by willie at 8:53 pm op 8,mar. 2005)
willie
 
Berichten: 53
Geregistreerd op: vr 10 okt 2003, 20:49

JB Volatility Strat, geen plot

Berichtdoor Paul M » wo 09 maart 2005, 22:07

Hoi Willie,

Volgens mij moet je de tekst die tussen haakjes achter de sell instructie's staat verwijderen. Sell ("LongVolStop") next bar at market ?moet worden Sell next bar at market. En Sell veranderen in exitlong.

Paul

(Edited by Paul M at 11:06 pm op 9,mar. 2005)
Paul M
 
Berichten: 263
Geregistreerd op: vr 13 dec 2002, 23:21

JB Volatility Strat, geen plot

Berichtdoor willie » do 10 maart 2005, 21:57

Hoi Paul,


Bij dit laatste stuk code veranderd, geeft dit bij sommige fondsen een short positie in een lang stuk long markt over 1 jaar dag data.

then
Sell next bar at market
else if MarketPosition = 1 then
exitlong ("ImmedStop") next bar at ImmedStop stop ;
if MarketPosition = 1 then
?exitlong next bar at LongProfitTarget limit ;
willie
 
Berichten: 53
Geregistreerd op: vr 10 okt 2003, 20:49

JB Volatility Strat, geen plot

Berichtdoor Paul M » do 10 maart 2005, 23:32

Hoi Willie,

then
Sell next bar at market
else if MarketPosition = 1 then
exitlong ("ImmedStop") next bar at ImmedStop stop ;
if MarketPosition = 1 then
exitlong next bar at LongProfitTarget limit ;

moet zijn

then
exitlong next bar at market
else if MarketPosition = 1 then
exitlong next bar at ImmedStop stop ;
if MarketPosition = 1 then
exitlong next bar at LongProfitTarget limit ;

Paul
Paul M
 
Berichten: 263
Geregistreerd op: vr 13 dec 2002, 23:21

Berichtdoor JanBrinker » vr 25 maart 2005, 9:26

Hallo Willie,

Misschien heb je het probleem alllang opgelost maar toch maar een berichtje. Ik heb eens gekeken naar dit systeem en je moet volgens mij in de code onder "If MP=0 then ....." de twee Sell opdrachten verwijderen. De Sell opdrachten aan het einde van de code moeten dan inderddaad ook nog veranderd worden in ExitLong, maar de tekst tussen de haakjes kun je laten staan. De tekst tussen de haakjes geeft de naam van de trade aan en zou je kunnen gebruiken bij rapportages (de tekst zie je ook in het Transactiescherm in de kolom Opmerkingen). De code zoals hieronder heb ik bij mij getest en dan werkt het naar behoren.

Groeten,
Bertjan

inputs:
HighestHighRange( 20 ),
LowestLowRange( 20 ),
LongATR_Len( 10 ),
LongTrailLen( 15 ),
LongProfitTakerLen(13),
WeeklyAverageLength( 34 ),
RSIEntryThreshold( 30 ),
RSI_Length( 7 ),
RSISignalLen( 10 ),
RecentLowLen(3);
variables:
LowestLow(0),
LongATR( 0 ),
EntryLong(0),
LongStop(0),
LongProfitTarget(0),
WeeklyAverage(0),
RSISignalCounter( 0 ),
MP( 0 ),
ImmedStop(0),
LongStopCrossed( False ),
MaxLongStop(0);

Value1 = RSI(close, RSI_Length);
if Value1 crosses over RSIEntryThreshold and
Close > Average( Close, 34*5) and
MarketPosition = 0
then
RSISignalCounter = 0 ;
RSISignalCounter = RSISignalCounter + 1 ;
WeeklyAverage = Average( Close, WeeklyAverageLength * 5 );
LowestLow = Lowest(Low, LowestLowRange);
LongATR = AvgTrueRange( LongATR_Len) ;
EntryLong = LowestLow +2*LongATR;
LongStop = Highest(H, LongTrailLen) - 3*LongATR;
LongProfitTarget = XAverage(High,LongProfitTakerLen)+ 2*LongATR ;
MP = MarketPosition ;
if MP = 0 then
begin
LongStopCrossed = False ;
MaxLongStop = LongStop ;
end
else if LongStop > MaxLongStop then
MaxLongStop = LongStop ;
if Close > WeeklyAverage and
MarketPosition = 0 and
WeeklyAverage > WeeklyAverage[5] and
RSISignalCounter < RSISignalLen
then
begin
Buy next bar at EntryLong stop ;
end ;
if MP[1] = 0 and MP = 1 then
begin
RSISignalCounter = RSISignalLen ;
ImmedStop = Lowest(Low,RecentLowLen + 1);
end ;
if MarketPosition = 1 and
Close[1] < MaxLongStop and
Close >= MaxLongStop and
LongStopCrossed = False
then
LongStopCrossed = True ;
if MarketPosition = 1 and
Close < MaxLongStop and
Close[1]<MaxLongStop and
LongStopCrossed
then
ExitLong ("LongVolStop") next bar market
else if MarketPosition = 1 then
ExitLong ("ImmedStop") next bar at ImmedStop stop ;
if MarketPosition = 1 then
ExitLong next bar at LongProfitTarget limit ;
JanBrinker
 
Berichten: 14
Geregistreerd op: za 09 aug 2003, 13:18

Berichtdoor willie » vr 25 maart 2005, 14:06

Ik zie weinig trades op een dag grafiek, dit kan aan de instellingen liggen. Hoe is dit bij jou ?

gr.

willie
willie
 
Berichten: 53
Geregistreerd op: vr 10 okt 2003, 20:49

Berichtdoor JanBrinker » vr 25 maart 2005, 20:33

Hallo Willie,

Het systeem is 'Long Only' en daarom is het logisch dat het in de afgelopen jaren weinig trades oplevert. Ik heb het even heel snel getest op dagdata vanaf 1 januari 1993 voor Philips en ING. Voor Philips levert dat 27 trades op en 36 voor ING . In beide gevallen zijn de standaardinstellingen verliesgevend. ALs je het systeen echt zou willen gebruiken dan moet je volgens mij goed kijken naar het moment van exit. Naar mijn smaak eindigt vooral de LongVolStop de trades te snel, maar ook de LongProfitTarget is mij te strak. Verder stapt het model mijns inziens ook weer te snel in tijdens een correctie in de opgaande trend.

Groeten,
Bertjan
JanBrinker
 
Berichten: 14
Geregistreerd op: za 09 aug 2003, 13:18

Berichtdoor Joop Henzen » di 29 maart 2005, 18:31

Weet iemand de formule waarbij dit systeem ook voor short transacties geschikt zou zijn
Joop Henzen
 
Berichten: 215
Geregistreerd op: ma 30 dec 2002, 14:21
Woonplaats: Bussum

Berichtdoor Paul M » di 29 maart 2005, 19:12

Hoi Joop,

{Indicator: JB Volatility Strat Short}
inputs:
HighestHighRange( 20 ),
ShortATR_Len(10 ),
ShortTrailLen( 15 ),
ShortProfitTakerLen(13),
WeeklyAverageLength( 34 ),
RSIEntryThreshold( 70 ),
RSI_Length( 7 ),
RSISignalLen( 10 ),
RecentHighLen(3);
variables:
HighestHigh(0),
ShortATR( 0 ),
EntryShort(0),
ShortStop(0),
ShortProfitTarget(0),
WeeklyAverage(0),
RSISignalCounter( 0 ),
MP( 0 ),
ImmedStop(0),
ShortStopCrossed( False ),
MaxShortStop(0);

Value1 = RSI(close, RSI_Length);
if Value1 crosses below RSIEntryThreshold and
Close < Average( Close, 34*5) and
MarketPosition = 0
then
RSISignalCounter = 0 ;
RSISignalCounter = RSISignalCounter + 1 ;
WeeklyAverage = Average( Close, WeeklyAverageLength * 5 );
HighestHigh = Highest(High, HighestHighRange);
ShortATR = AvgTrueRange( ShortATR_Len) ;
EntryShort = HighestHigh -2*ShortATR;
ShortStop = Lowest(L, ShortTrailLen) + 2*ShortATR;
ShortProfitTarget = XAverage(Low,ShortProfitTakerLen)- 2*ShortATR ;
MP = MarketPosition ;
if MP = 0 then
begin
ShortStopCrossed = False ;
MaxShortStop = ShortStop ;
end
else if ShortStop < MaxShortStop then
MaxShortStop = ShortStop ;
if Close < WeeklyAverage and
MarketPosition = 0 and
WeeklyAverage < WeeklyAverage[5] and
RSISignalCounter < RSISignalLen
then
begin
Sell next bar at EntryShort stop ;
ExitShort next bar at Highest(High, RecentHighLen) stop ;
exitShort next bar at ShortProfitTarget limit ;
end ;
if MP[1] = 0 and MP = -1 then
begin
RSISignalCounter = RSISignalLen ;
ImmedStop = Highest(High,RecentHighLen + 1);
end ;
if MarketPosition = -1 and
Close[1] > MaxShortStop and
Close <= MaxShortStop and
ShortStopCrossed = False
then
ShortStopCrossed = True ;
if MarketPosition = -1 and
Close > MaxShortStop and
Close[1]>MaxShortStop and
ShortStopCrossed
then
ExitShort next bar market
else if MarketPosition = -1 then
ExitShort next bar at ImmedStop stop ;
if MarketPosition = -1 then
ExitShort next bar at ShortProfitTarget limit ;

Paul
Paul M
 
Berichten: 263
Geregistreerd op: vr 13 dec 2002, 23:21

Berichtdoor Joop Henzen » wo 30 maart 2005, 9:13

heel hartelijk bedankt Paul

nog even een vraag ( en dat komt door mijn rudimentaire kennis op het gebied van EL )

als ik long en short in een systeem wil hebben kan dat dan door alles aan elkaar te plakken of moet dat anders ?

hartelijke groet


Joop Henzen
Joop Henzen
 
Berichten: 215
Geregistreerd op: ma 30 dec 2002, 14:21
Woonplaats: Bussum

Berichtdoor Paul M » wo 30 maart 2005, 23:07

Hoi Joop,

Het knip- en plakwerk.

inputs:
HighestHighRange( 40 ),
LowestLowRange( 20 ),
ATR_Len(10 ),
ShortTrailLen( 9 ),
ShortProfitTakerLen(7),
LongTrailLen( 15 ),
LongProfitTakerLen(13),
WeeklyAverageLength( 34 ),
RSIEntryThresholdShort( 70 ),
RSIEntryThresholdLong( 30 ),
RSI_Length( 7 ),
RSISignalLen( 10 ),
RecentHighLen(3),
RecentLowLen(3);

variables:
HighestHigh(0),
LowestLow(0),
ATR( 0 ),
EntryShort(0),
EntryLong(0),
ShortStop(0),
LongStop(0),
ShortProfitTarget(0),
LongProfitTarget(0),
WeeklyAverage(0),
RSISignalCounterLong( 0 ),
RSISignalCounterShort( 0 ),
MP( 0 ),
ImmedStopLong(0),
ImmedStopShort(0),
ShortStopCrossed( False ),
LongStopCrossed( False ),
MaxShortStop(0),
MaxLongStop(0);

WeeklyAverage = Average( Close, WeeklyAverageLength * 5 );
HighestHigh = Highest(High, HighestHighRange);
LowestLow = Lowest(Low, LowestLowRange);
ATR = AvgTrueRange(ATR_Len) ;
EntryLong = LowestLow +2*ATR;
LongStop = Highest(H, LongTrailLen) - 2*ATR;
LongProfitTarget = XAverage(High,LongProfitTakerLen)+ 2*ATR ;
EntryShort = HighestHigh -2*ATR;
ShortStop = Lowest(L, ShortTrailLen) + 2*ATR;
ShortProfitTarget = XAverage(Low,ShortProfitTakerLen)- 2*ATR ;
MP = MarketPosition ;
Value1 = RSI(close, RSI_Length);

if Value1 crosses below RSIEntryThresholdShort and
Close < Average( Close, 34*5) and
MarketPosition = 0
then
RSISignalCounterShort = 0 ;
RSISignalCounterShort = RSISignalCounterShort + 1 ;

if Value1 crosses over RSIEntryThresholdLong and
Close > Average( Close, 34*5) and
MarketPosition = 0
then
RSISignalCounterLong = 0 ;
RSISignalCounterLong = RSISignalCounterLong + 1 ;



{Short}
if MP = 0 then
begin
ShortStopCrossed = False ;
MaxShortStop = ShortStop ;
end
else if ShortStop < MaxShortStop then
MaxShortStop = ShortStop ;
if Close < WeeklyAverage and
MarketPosition = 0 and
WeeklyAverage < WeeklyAverage[5] and
RSISignalCounterShort < RSISignalLen
then
begin
Sell next bar at EntryShort stop ;
ExitShort next bar at Highest(High, RecentHighLen) stop ;
exitShort next bar at ShortProfitTarget limit ;
end ;
if MP[1] = 0 and MP = -1 then
begin
RSISignalCounterShort = RSISignalLen ;
ImmedStopShort = Highest(High,RecentHighLen + 1);
end ;
if MarketPosition = -1 and
Close[1] > MaxShortStop and
Close <= MaxShortStop and
ShortStopCrossed = False
then
ShortStopCrossed = True ;
if MarketPosition = -1 and
Close > MaxShortStop and
Close[1]>MaxShortStop and
ShortStopCrossed
then
ExitShort next bar market
else if MarketPosition = -1 then
ExitShort next bar at ImmedStopShort stop ;
if MarketPosition = -1 then
ExitShort next bar at ShortProfitTarget limit ;


{Long}
if MP = 0 then
begin
LongStopCrossed = False ;
MaxLongStop = LongStop ;
end
else if LongStop > MaxLongStop then
MaxLongStop = LongStop ;
if Close > WeeklyAverage and
MarketPosition = 0 and
WeeklyAverage > WeeklyAverage[5] and
RSISignalCounterLong < RSISignalLen
then
begin
Buy next bar at EntryLong stop ;
Exitlong next bar at Lowest(Low, RecentLowLen) stop ;
exitlong next bar at LongProfitTarget limit ;
end ;
if MP[1] = 0 and MP = 1 then
begin
RSISignalCounterLong = RSISignalLen ;
ImmedStopLong = Lowest(Low,RecentLowLen + 1);
end ;
if MarketPosition = 1 and
Close[1] < MaxLongStop and
Close >= MaxLongStop and
LongStopCrossed = False
then
LongStopCrossed = True ;
if MarketPosition = 1 and
Close < MaxLongStop and
Close[1]<MaxLongStop and
LongStopCrossed
then
Exitlong next bar market
else if MarketPosition = 1 then
Exitlong next bar at ImmedStopLong stop ;
if MarketPosition = 1 then
Exitlong next bar at LongProfitTarget limit ;


Paul
Paul M
 
Berichten: 263
Geregistreerd op: vr 13 dec 2002, 23:21

Berichtdoor willie » do 31 maart 2005, 2:19

in de afbeeldingen bij de andere software op de site staan is dit systeem te zien in colorbars. Dit geeft denk ik een wat duidelijker beeld. bvb. bij www.amibroker.com. Je kunt die code in de demo plakken en proberen.

Vr. gr.

willie
willie
 
Berichten: 53
Geregistreerd op: vr 10 okt 2003, 20:49

Berichtdoor Gast » do 31 maart 2005, 4:07

in de afbeeldingen die bij de andere software op de site staan is dit systeem te zien in colorbars. Dit geeft denk ik een wat duidelijker beeld. bvb. bij www.amibroker.com. Je kunt die code in de demo plakken en proberen.

Vr. gr.

willie
Gast
 


Keer terug naar Vesticode

Wie is er online

Gebruikers op dit forum: Geen geregistreerde gebruikers en 4 gasten

cron