[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[amibroker] Re: General questions about amibroker


  • Date: Mon, 15 Mar 2010 12:36:14 -0000
  • From: "Rob" <sidhartha70@xxxxxxxxx>
  • Subject: [amibroker] Re: General questions about amibroker

PureBytes Links

Trading Reference Links

In answer to your questions... it sounds like you haven't fully grasped the main concept of AFL yet... i.e. that it operates on arrays.

You are still thinking along the lines of a traditional programming language where you iterate through the array bar by bar.

AFL functions operate on 'arrays'. You really need to study the manual a little more and hammer this point home in your head. It is the great gift of AFL that generally very little looping is required.

For example,

Buy = 1;

Sets every element of the Buy array to be 1.
Now if you said, 

Buy = IIf (Cross (TimeNum(), 093000), True, False);

This would set every element of the Buy array (no looping required) to a new value based on the outcome of IIf (Cross (TimeNum(), 093000), True, False); (the outcome of that is an array itself - not a number). In this case it would set every element to zero (false) except those where the current time cross 09.30 am...

You just need to play around with it.

--- In amibroker@xxxxxxxxxxxxxxx, "pipadder" <pipadder@xxx> wrote:
>
> 
> 
> 
> 
> 
> Hi Mike, and thanks for taking the time to answer my questions and steer me in the right direction. I have read the links you provided. I had already read a couple of them but a more careful reading was clearly beneficial.
>  
> > I suspect that the lack of response is due to the fact that your post seems to span multiple areas of expertise. The scenarios of your questions suggest real time live trading. Yet, the questions themselves are phrased as backtesting.
> > 
> 
> Mmmm... yes, it appears I was a little clumsy in my explanations. Let me clarify: initially, I am interested in Amibroker only as a backtesting platform. I want to use it to develop/backtest/optimize my trading systems, which I use for forex trading. I trade them live using a different platform (MT4) which doesn't meet my backtesting needs anymore. For the time being I'll keep on using it for live trading, but I clearly need something more capable for system development.
> 
> Anyway, regarding some of my questions, I'll follow your advice and try to be more clear and break them into smaller chunks.
> 
> > AmiBroker backtesting operates on a predefined range of fixed bars, first generating signals simultaneously for all bars (array manipulations dictated by your script), then linearly iterating over the bars to sort and process the signals, applying portfolio management along the way. Details of the second phase (sorting/applying of signals) are largely hidden from user, treated as a black box (though user is free to override all behavior).
> > 
> 
>  Ok... If I understand it correctly it will work like this: I have my whole price history stored in a number of linear arrays, each one containing a feature of the bars (open, close, high, low...). The first element of the "close" array (index 0) is the closing price of my oldest bar. The last element of the "close" array (index N-1 if I have N bars) is the closing price of my last (most recent) bar. This is clear enough.
> 
> Now I start the backtest, and my first questions.
> 
> 1) We get to the first bar. All the code of my script is executed for the prices corresponding to this bar to check whether any buy/sell conditions are verified, etc. When we go to the next bar, my code will be executed again for that bar. And so on and so forth. My script is executed for each new bar the backtester runs through. Is that correct? 
> 
> 2) The amibroker functions in my script that don't need a specific bar index as an input always refer to the current bar in the iteration. Correct? (I realize there are also functions like moving averages that require to look back a number of bars, and other like "ref" that let you access other bars, I am just asking whether stuff like "Buy=..." always refers to the current bar).   
> 
> 
> I think that is enough for now, once I am sure I am getting this right I can hopefully follow up with more questions ;)
> 
> Thanks again!
>




------------------------------------

**** IMPORTANT PLEASE READ ****
This group is for the discussion between users only.
This is *NOT* technical support channel.

TO GET TECHNICAL SUPPORT send an e-mail directly to 
SUPPORT {at} amibroker.com

TO SUBMIT SUGGESTIONS please use FEEDBACK CENTER at
http://www.amibroker.com/feedback/
(submissions sent via other channels won't be considered)

For NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG:
http://www.amibroker.com/devlog/

Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/amibroker/

<*> Your email settings:
    Individual Email | Traditional

<*> To change settings online go to:
    http://groups.yahoo.com/group/amibroker/join
    (Yahoo! ID required)

<*> To change settings via email:
    amibroker-digest@xxxxxxxxxxxxxxx 
    amibroker-fullfeatured@xxxxxxxxxxxxxxx

<*> To unsubscribe from this group, send an email to:
    amibroker-unsubscribe@xxxxxxxxxxxxxxx

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/