How to self test AFL skill/system/execution?

Hello everybody,

The forum holds quite a lot of value and information. The documentation is precise an through. But the human that learns AFL is frail, biased and overwhelmed.

I am currently working on my first AFL system which is intraday for GER40 CFD. It's very simple, but given that I have spread, random slippage and most of all lack of AFL skill I am unsure I enter where I suppose to enter hence unsure I get the RIGHT results. Plus I have 1m candles and some hit both entry and TP/SL the same time, etc.

I'll probably post more questions after I try to solve all the issues I encounter but for now most of the challenge is learning how Amibroker works and deals with certain situations! Once I get down the code for certain scenarios things will get easy for sure.

While I do my best to plot on the chart ranges, prices, TPs, SLs and use the tools to debug, and do have a general idea I'm on the right track how can I know I am doing ok, without finding out when I test with real money?

I can think of 3 ways:

1. Challenges/Exercises. Get a problem and solve it in AFL.

I've seen out there books, services, courses about AFL, but do any challenges/exercises exist?
Something like, here's the data, create a system that buys on a cross of whatever and whatever. You have this slippage, spread, that issue and this issue to take into account and you should have a result between this and that number if you start with an initial equity of X and these parameters. And also provide the answer after you bang you head and maybe are off with the results or don't know how to do stuff.

2. Write the system in another language/engine and test the results

Luckily I've written a primitive broker simulator that takes in tick data and executes orders. This is one way of testing but I also have to write the system in typescript and testing takes a lot of time. Non the less I can rely on it for being precise/very close to what actual execution will be at the broker. I can see the orders produced and I can compare to the orders produced by Amibroker. If things are off, I'll tweak the AFL code.

3. Force feed Amibroker some live/tick data and have it behave like working live?

This is kind of funky but if say I test the system with 1m data and expect it to work, can I then test with tick data but in such a way that Amibroker thinks it's live? This way I can get the exact orders Amibroker would place and I'll know for sure what Amibroker knows and so I can self test.

Bottom line is I'm unsure of the code I write at this stage of learning!

What other way to self test is there and what thoughts do you have about the above?

Thanks in advance