----- Original Message -----
Sent: Saturday, August 02, 2008 2:58
AM
Subject: Re: [amibroker] AFL programming
style questions
I have tried many styles but was never able to stick to anyone. Here are
some of my preferences however i am afraid I don't have a specific
style.
I like compact listings to see the maximum number of lines at
once.
I rarely use multiple statements in one line.
I use empty lines to space functional blocks, not to space code for visual
effect.
I like to indent the curly brackets, to make function and other blocks of
code stand out better
I use include files when I can to shorten listings. i frequently paste the
code temporarily back in for debugging.
If I need to store a lot of calculated variables I may write them to an
include file instead of using StaticVariables or persistentvariables. I use
#Pragma NoCache to get it read each time.
I use long descriptive variable names; its usually less typing and easier
to read than adding long comments.
I break up lengthy calculations to give me debugging points.
I use DebugView a lot, every day.
I use three //////// rows to separate major functional sections to allow
spotting them when scrolling through thousands of lines of code.
I key most static variables to prevent them from being common to multiple
applications
I use persistent variables to facilitate easy start up sequences and to
keep trading (IB/TWS) records
I like to see initialization blocks because conditions often change
I have folders in my Charts workspace that contain frequent used code
snippets, segments, templates, etc. I edit-copy-paste from these
I often work with two editor windows, one to copy from, one current
work
I Apply my include files to a separate pane/tab so I can easily open/modify
include files. i use 20 tabs.
I use Chart tabs to organize work in progress and create Layouts for major
code changes, or new systems.
I use revision numbers for all programs, like ProgramName-001. This creates
lots of files and requires me to run Program maintenance once a week.
Once a week I search my computer for all afl files and import them into
dated-folders in InfoSelect.
When assigning many variables I like to tab all the "=" signs to the same
level for easier reading.
...
best regards,
herman
Friday, August 1, 2008, 9:07:31 PM, you wrote:
> Hello veteran AFL programmers,
> I am still working on developing a consistent AFL
style.
> I am writing a lot of AFL functions. I try to
make as many things
> functions as I can so that I can reuse a lot of
code. It also makes
> it easier for the editor to find syntax errors since
my main code is
> indicator only and the syntax check pass does not
see that code since
> it runs without the Chart ID.
> My trading platform is over 5000 lines of AFL (I
keep adding more, and
> it keeps getting smaller...LOL). About half of
that is functions. I
> pass a lot of data through global variables and
arrays between
> functions for the state of the system. It was
the only efficient way
> that I knew how to make code modular was to have the
data common. AFL
> is largely based on that premise already with
special state variables
> and price/trade arrays.
> Right now, I have a mix of variable initializations
and just global
> declarations at the top of the formula so that I
don't have to declare
> the globals in each function. I still have a
lot of global
> declarations in some functions, but I want to finish
getting rid of
> them and just have them declared at the top with a
good description of
> how they are used.
> I had it in my head that a bunch of global
declarations in a
> frequently called function would slow down the
execution of the
> function. Am I right about that?
> I thought I could just mention the names of the
input and output
> variables in the header comments if needed for
documentation.
> I am also slowly changing my comments from //
to /* */ so that they
> are not in the execution path.
> I am starting to make my variable names longer so
that they are more
> descriptive of the data they hold.
> I have some naming conventions like FP_Name for
variables that are
> part of my Flexible Parameters system and exist
outside of that module.
> I am now planning on adding GP_Name for global
parameter names and
> SP_Name for symbol specific parameter names.
In Flexible Parameters,
> I give my parameters distinct names independent of
their displayed
> labels. Those will be more than mere
convention in that they will
> cause the parameters to be saved in a different file
folder.
> What kind of naming conventions do you use that you
are proud of?
> Any other unique features of your program style that
you think are
> worth copying?
> Thanks for sharing your style ideas.
> Best regards,
> Dennis
> ------------------------------------
> Please note that this group is for discussion
between users only.
> To get support from AmiBroker please send an e-mail
directly to
> SUPPORT {at} amibroker.com
> For NEW RELEASE ANNOUNCEMENTS and other news always
check DEVLOG:
>
http://www.amibroker.com/devlog/
> For other support material please check
also:
>
http://www.amibroker.com/support.html
> 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:
> mailto:amibroker-digest@xxxxxxxxxxxxxxx
> mailto: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/