A little bit of psychology, a little bit of commonsense and a huge pat on the back. A trading system will only earn what it's designed to earn. Our role is to apply the system as perfectly as possible in order to earn the maximum that's available. If the system is not fully automated then we're going to make some mistakes. Overall, mistakes cost us and reduce system profit. Hopefully the system has enough of an edge that a few mistakes won't cost us too dearly. I don't like that you're only earning 1/2 of what your system should earn. That's a huge problem that you'll have to fix. The system could be at fault if the buys and sells are frequently impossible to get in the real market . Or you're the weak link in the system. You've got to minimise the number of mistakes.
I think you're correct in comparing your results against a system back test (or a forward test). Don't fall into the trap of comparing the results of your system against results of other systems. If you see that other systems return better results then work on developing better systems. @Skate is a master at this.
Don't overlook the significance of your trading achievements. Your MAP system started at exactly the worst possible time. Did you quit? No. You traded your system through a very difficult period and now you're starting to see the rewards as your equity curve leaves the XAO in it's dust. Very few new traders experience the immense personal satisfaction that you should be feeling now. Most of them quit or change systems. You have dug yourself out of a significant drawdown. Having done it once, you must know that you can do it again.
About the lag against backtest: i believe check against backtest is indeed the criteria to track.i stopped one of my system due to unexplained delta.
One way i have explained deltas which can seriously affect performance is when i have both buy/sell at open but no cash reserve left.
my broker does not accept buy order if i do not have cash or pending cash available, so i need to wait for some packets being sold before entering an extra buy order.
Based on sell execution orders at open, it sometimes mean my buy orders are late and miss the open price.
But 50pc underperformance is huge.worth investigating, doing a bit of forensics on trade history..
Overall :great job Mate
@Warr87 how about modifying your code a bit so the backtest simulates your exploration - 3% limit as suggested by @captain black in the Dump it here thread then you might be able to understand your differences between the backtest and trading rulesShould I just buy/sell at the open with a market order, or should I continue doing the +/-3% that I currently do? If the backtest just does the open for buys/sells perhaps to be true to the backtest I don't micromanage the orders and just let it enter at whatever the market is doing?
/// based on limit order example of
/// @link http://www.amibroker.com/kb/2014/11/26/handling-limit-orders-in-the-backtester/
/// responded to in this thread
/// @link https://forum.amibroker.com/t/overriding-amibroker-backtester-settings-generating-unrealistic-results/7374/4
BuySignal = Ref(C, -1) >= 2.0; // Replace code ****Ref(C, -1) >= 2.0**** with your buy conditions
// buy on the next bar
Buy = Ref( BuySignal, -1);
BuyStopPrice = Ref( Close, -1) * 1.03; // 1.03 is 3 %
// now we check if buystop was hit
Buy = Buy AND Open> BuyStopPrice; // Was H is code and changed to Open
// if Open price is above the buystop, then we use Open for entry
BuyPrice = Max( Open, BuyStopPrice );
This brings me to a question for the followers. Should I just buy/sell at the open with a market order, or should I continue doing the +/-3% that I currently do? If the backtest just does the open for buys/sells perhaps to be true to the backtest I don't micromanage the orders and just let it enter at whatever the market is doing?
I found this code on the AB forum which works fine, you just have to remember to change your setting - SetTradeDelays(0, 0, 0, 0);
@Warr87 how about modifying your code a bit so the backtest simulates your exploration - 3% limit as suggested by @captain black in the Dump it here thread then you might be able to understand your differences between the backtest and trading rules
Dump it Here
It's worth noting that Amibroker Backtest can't be overridden to compensate for missed (not purchased) positions. That's not correct. Use a buystop as part of your entry condition, adjust your trade delays and set the buystop entry condition to false if the low of the entry day gaps up...www.aussiestockforums.com
I found this code on the AB forum which works fine, you just have to remember to change your setting - SetTradeDelays(0, 0, 0, 0);
// I have added some comments to help
Code:/// based on limit order example of /// @link http://www.amibroker.com/kb/2014/11/26/handling-limit-orders-in-the-backtester/ /// responded to in this thread /// @link https://forum.amibroker.com/t/overriding-amibroker-backtester-settings-generating-unrealistic-results/7374/4 BuySignal = Ref(C, -1) >= 2.0; // Replace code ****Ref(C, -1) >= 2.0**** with your buy conditions // buy on the next bar Buy = Ref( BuySignal, -1); BuyStopPrice = Ref( Close, -1) * 1.03; // 1.03 is 3 % // now we check if buystop was hit Buy = Buy AND Open> BuyStopPrice; // Was H is code and changed to Open // if Open price is above the buystop, then we use Open for entry BuyPrice = Max( Open, BuyStopPrice );
Don't we only want to buy if the open is less than the BuyStopPrice?
Yes just do aDon't we only want to buy if the open is less than the BuyStopPrice?
Hello and welcome to Aussie Stock Forums!
To gain full access you must register. Registration is free and takes only a few seconds to complete.
Already a member? Log in here.