Australian (ASX) Stock Market Forum

TradeSim

Nizar.

Good software can be percieved as expensive.

Like hiring good Employees or outside Experts.

Pay Peanuts and you'll get Monkeys!
 
Finally bought Tradesim enterprise today.
User manual has been printed and will be bound 2mrw.

Should be busy over the next few weeks (and beyond) reading and studying both metastock and tradesim.

Very excited to finally get started! :D This should set me well on my way to reaching the professional level.

Thanks to all who have contributed to make me see how and why mechanical trading is the ideal way to trade. You know who you are ;)
 
Finally bought Tradesim enterprise today.
User manual has been printed and will be bound 2mrw.

Should be busy over the next few weeks (and beyond) reading and studying both metastock and tradesim.

Very excited to finally get started! :D This should set me well on my way to reaching the professional level.

Thanks to all who have contributed to make me see how and why mechanical trading is the ideal way to trade. You know who you are ;)

Hello All,

After taking the advice of some of the posters on here (you know who you are ;)) I decided that I definately needed the right tools if I was to develop a strategy and trade it successfully.

As a result, I've now purchased the Enterprise Edition and looking at the User Manual, I also think I'm going to be extremely busy over the next few weeks trying to understand how to use this software :eek:

At least I feel that I have taken a step in the right direction....

Thanks to all that offered advice,

Chorlton

PS. For those interested in purchasing Tradesim but are turned off by the relatively high price tag, I would just like to add that Paritech currently have a deal on...........
 
Just have a few questions for anybody that can help.

I wasnt quite sure whether to put this on the tradesim thread or the Metastock one.

Im trading the turtle breakout system (which comes with metastock v9) but when i run the simulation these errors seem to come up.

This is the code written in column A of the metastock exploration window:

EntryTrigger:=H>Ref(HHV(H,40),-1);
EntryPrice:=OPEN;
ExitTrigger:=L<Ref(LLV(L,20),-1);
ExitPrice:=OPEN;
InitialStop:=OPEN-Ref(3*ATR(10),-1);

ActualEntryTrigger:=Ref(EntryTrigger,-1);
ActualEntryPrice:=OPEN;
ActualExitTrigger:=Ref(ExitTrigger,-1);
ActualExitPrice:=OPEN;
ActualInitialStop:=Ref(InitialStop,-1);
ExtFml( "TradeSim.Initialize ");
ExtFml( "TradeSim.EnableProtectiveStop",1);
ExtFml( "Tradesim.SetStartRecordDate",1,7,1992);
ExtFml( "TradeSim.SetStopRecordDate",30,6,2002);
ExtFml( "TradeSim.RecordTrades ",
"Turtle Breakout System",
LONG,
ActualEntryTrigger,
ActualEntryPrice,
ActualInitialStop,
ActualExitTrigger,
ActualExitPrice,
START);


But then after i run the simulation I get several error messages on the Tradesim (DLL) Plugin, of two types.

1. (for example) 36, AGZO, Long, Error! - Stop Record Date [30-Jun-2002]<First date scanned from security data [12-May-2006] - No trade data will be generated!

This is actually not an error, its simply because i wanted to test my system over this timeframe (??)

2. (for example) 39, AHA, Long, Error! - Trade rejected because error found in trade for [AHA] on 23-Oct-1998 caused by Invalid Initial Stop Data.

Cause: [Initial stop price(13.629787)] is greater than or equal to [Entry Price(11.800000)]

Its this second error which is of great concern to me, and it seems to be caused by a flaw in the coding or maybe the timing of the trades??

What Im trying to do is when a stock meets my criteria on todays close, i enter on tomorrows open.

Same with stops. If a stop is hit on todays data, i exit the position on tomorrows open.

Also, im getting several "Rejects" on metastock exploration. Reason for rejection is: "Error in column A: Invalid time period (zero or negative) passed to HHV() function".

Any thoughts/ideas??
 
Im at the office at the mo so dont have Tradesim here.

Here is the way I have it setup just remove my code and replace it with yours.See how that goes.
You dont have to code in the delays.Its in this.



Ent:= Cross(H,Ref(HHV(H,10),-1)) AND H>Mov(C,40,E) AND HHVBars(H,70)=0
AND Fml("Liquidity")>500000 AND C>O AND C<10.00;
Ent;

EntryTrigger:=Ent;

EntryPrice:=OPEN;
ExitTrigger:= Cross(Ref(Mov(L,180,E),-1),C);

ExitPrice:=OPEN;

InitialStop:=If(Ref(C,-1)>0.90*EntryPrice,0.90*EntryPrice,Ref(C,-1));
ExtFml( "Tradesim.Initialize") ;

ExtFml( "Tradesim.EnableDelayOfEntryByOneBar") ;
ExtFml( "TradeSim.EnableTradePyramiding", percentprofit,10,3);

ExtFml( "TradeSim.SetReturnInfoType", AllTriggers);

ExtFml("Tradesim.EnableDelayOfAllExitsByOneBar");
ExtFml( "Tradesim.EnableProtectiveStop",1) ;

ExtFml("Tradesim.SetStartRecordDate",1,09,1998);
ExtFml("Tradesim.SetStopRecordDate",19,05,2006);


ExtFml( "TradeSim.RecordTrades",
"TT Master",
LONG,
EntryTrigger,
EntryPrice,
InitialStop,
ExitTrigger,
ExitPrice,
START);
 
Im at the office at the mo so dont have Tradesim here.

Here is the way I have it setup just remove my code and replace it with yours.See how that goes.
You dont have to code in the delays.Its in this.



Ent:= Cross(H,Ref(HHV(H,10),-1)) AND H>Mov(C,40,E) AND HHVBars(H,70)=0
AND Fml("Liquidity")>500000 AND C>O AND C<10.00;
Ent;

EntryTrigger:=Ent;

EntryPrice:=OPEN;
ExitTrigger:= Cross(Ref(Mov(L,180,E),-1),C);

ExitPrice:=OPEN;

InitialStop:=If(Ref(C,-1)>0.90*EntryPrice,0.90*EntryPrice,Ref(C,-1));
ExtFml( "Tradesim.Initialize") ;

ExtFml( "Tradesim.EnableDelayOfEntryByOneBar") ;
ExtFml( "TradeSim.EnableTradePyramiding", percentprofit,10,3);

ExtFml( "TradeSim.SetReturnInfoType", AllTriggers);

ExtFml("Tradesim.EnableDelayOfAllExitsByOneBar");
ExtFml( "Tradesim.EnableProtectiveStop",1) ;

ExtFml("Tradesim.SetStartRecordDate",1,09,1998);
ExtFml("Tradesim.SetStopRecordDate",19,05,2006);


ExtFml( "TradeSim.RecordTrades",
"TT Master",
LONG,
EntryTrigger,
EntryPrice,
InitialStop,
ExitTrigger,
ExitPrice,
START);

Thanks tech.
That's a great help to me.
 
Tech, what does the above mean?

This allws the user to build a trade pyramid on a minimum of 10% profit (This is a condition,unless the trade has made AT LEAST a 10% profit then a new triggered trade will NOT be taken)---thats the 10,

The 3 allows a maximum of 3 pyramid trades that can be taken as a maximum.

There are many many stratagies just in trade pyramiding,many I havent investigated.David Samboursky (The Designer of Tradesim) has compiled a PDF guide on its use (Pyramiding),print out the User manual on hard copy and all PDF's.

Just brilliant!
 
I found that by un-checking the box to "favour pyramid trade", profits trebled on the system im testing.

Which makes sense in terms of application as well. You have 2 stocks, you never know which one (if any) will be a big winner. So instead of loading one, you hedge your bets and buy both.
 
Nizar,

Which version of Metastock are you using?

I think it is V9 but confirmation is better.
 
Got another problem now.

At the top of the TradeSim(DLL) Plugin screen iv got 2 warnings.

WARNING! Price Filter Enabled.
WARNING! Prices will automatically be modified if they fall outside the daily range.

What does this mean?

My code says that its meant to be buy 2mrw open if an entry is triggered by todays close.

And because the price filter is enabled, iv got warnings all over the report log, for example.

WARNING! - Trade price modified for trade [AAR] on 05-Dec-1995 caused by Invalid Entry Price Data.
Cause: [EntryPrice(0.095000) is greater than or [Entry Bar High Price(0.09000)].
Action: [EntryPrice(0.095000) constrained to [Entry Bar High Price(0.09000)].

Isnt Tradesim supposed to simulate real trading??
Wats with these price adjustments??

Tradesim help gave a diagram (same one in the manual) but i still dont get it :confused: :confused:

Any help would be appreciated.
 
WARNING! - Trade price modified for trade [AAR] on 05-Dec-1995 caused by Invalid Entry Price Data.
Cause: [EntryPrice(0.095000) is greater than or [Entry Bar High Price(0.09000)].
Action: [EntryPrice(0.095000) constrained to [Entry Bar High Price(0.09000)].

Isnt Tradesim supposed to simulate real trading??

I will take a guess and say that you have tried to enter the trade at the close? The way I think, this is an impossibility as the bar is closed, all trades are finished, no more full stop!! So, how can you enter a trade on the close?

Have a look at your AAR trade. If you have tried to enter at the close on the bar before 05 Dec at a price of 9.5c, but TradeSim wont let you enter as the bar is closed, so you try to enter the trade for the same price on the next bar (05 Dec) BUT this bar has HIGH price of 9.0c TradeSim wont let you enter the trade at 9.5c when the high of the entry bar is 9.0c

TradeSim is not the problem here... you have to think more clearly about your logic. I recommend that instead of trying to enter on close, look for the entry condition and then buy on the open of the next bar; this is more realistic.

wabbit :D
 
Nizar,

I think this should work OK now.

You will still get error messages re timing for ending simulation on 30-6-2002.

All you need to do is copy & then paste into colA of Turtle Breakout system explorer in MetaStock.

This will IMO get rid of the problem you were having recently.

EntryTrigger:=H>Ref(HHV(H,40),-1);
EntryPrice:=OPEN;
ExitTrigger:=L<Ref(LLV(L,20),-1);
ExitPrice:=OPEN;
InitialStop:=OPEN-Ref(3*ATR(10),-1);

ActualEntryTrigger:=Ref(EntryTrigger,-1);
ActualEntryPrice:=OPEN;
ActualExitTrigger:=Ref(ExitTrigger,-1);
ActualExitPrice:=OPEN;
ActualInitialStop:=InitialStop;
ExtFml("TradeSim.Initialize");
ExtFml("Tradesim.SetStartRecordDate",1,7,1992);
ExtFml("TradeSim.SetStopRecordDate",30,6,2002);
ExtFml("TradeSim.EnableDelayOfAllExitsByOneBar");
ExtFml("TradeSim.EnableProtectiveStop",1);
ExtFml("TradeSim.RecordTrades",
"Turtle Breakout System",
LONG,
ActualEntryTrigger,
ActualEntryPrice,
ActualInitialStop,
ActualExitTrigger,
ActualExitPrice,
START);
 
ActualEntryTrigger:=Ref(EntryTrigger,-1);


Not required I dont think,cant test it dont have Tradesim here.

Put {ActualEntryTrigger:=Ref(EntryTrigger,-1);}

around it to cut it out through a test.
Your making the entry a day before the trigger actually occures
Which of course would be nice but impractical.
logic?
 
Thanks for your responses everyone.
You are really are a helpful bunch and your help is very much appreciated.
 
ActualEntryTrigger:=Ref(EntryTrigger,-1);


Not required I dont think,cant test it dont have Tradesim here.

Put {ActualEntryTrigger:=Ref(EntryTrigger,-1);}

around it to cut it out through a test.
Your making the entry a day before the trigger actually occures
Which of course would be nice but impractical.
logic?

tech,

The coding is based on what Nizar posted earlier with a couple of alterations.

The code is written as if today is the OPEN at which you will buy and hence the trigger must be yesterday.

However, I did miss one adjustment (but assume the post can no longer be edited),

ActualExitTrigger:=Ref(ExitTrigger,-1);

should read

ActualExitTrigger:=ExitTrigger;
 
Hi guys.

A bit of a dilemma again.

I typed in tech/a's code in my metastock exploration column A EXACTLY as it it on post #26 of this thread, except the liquidity filter was rejected for some reason so i got rid of it.

But when i ran the exploration, my tradesim(DLL) plugin is full of warnings such as:
WARNING! Trade price modified for trade XYZ on date 89-89-89 caused by Invalid Entry Price Data.

And also errors such as:
ERROR! Trade rejected because error found in trade for XYZ on 89-89-89 caused by Invalid Initial Stop Data.

Does anyone know what the problem is?

Code is posted below:

Ent:= Cross(H,Ref(HHV(H,10),-1)) AND H>Mov(C,40,E) AND HHVBars(H,70)=0 AND C>O AND C<10.00;
Ent;

EntryTrigger:=Ent;

EntryPrice:=OPEN;
ExitTrigger:= Cross(Ref(Mov(L,180,E),-1),C);

ExitPrice:=OPEN;

InitialStop:=If(Ref(C,-1)>0.90*EntryPrice,0.90*EntryPrice,Ref(C,-1));
ExtFml( "Tradesim.Initialize") ;

ExtFml( "Tradesim.EnableDelayOfEntryByOneBar") ;
ExtFml( "TradeSim.EnableTradePyramiding", percentprofit,10,3);

ExtFml( "TradeSim.SetReturnInfoType", AllTriggers);

ExtFml("Tradesim.EnableDelayOfAllExitsByOneBar");
ExtFml( "Tradesim.EnableProtectiveStop",1) ;

ExtFml("Tradesim.SetStartRecordDate",1,09,1998);
ExtFml("Tradesim.SetStopRecordDate",19,05,2006);


ExtFml( "TradeSim.RecordTrades",
"TT Master",
LONG,
EntryTrigger,
EntryPrice,
InitialStop,
ExitTrigger,
ExitPrice,
START);



Thanks.
 
Top