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

Re: [amibroker] Re: AFL coding



PureBytes Links

Trading Reference Links

AddToComposite - look in functions

----- Original Message ----- 
From: "Barry Scarborough" <razzbarry@xxxxxxxxxxxx>
To: <amibroker@xxxxxxxxxxxxxxx>
Sent: Wednesday, December 03, 2008 8:59 AM
Subject: [amibroker] Re: AFL coding


> Hi Ara,
>
> What is an ATC and where is it defined? I tried searching the AB
> users guide and found nothing.
>
> Thanks,
> Barry
>
> --- In amibroker@xxxxxxxxxxxxxxx, "Ara Kaloustian" <ara1@xxx> wrote:
>>
>> I am using ATCs to transport arrays from one program to another.
>>
>> Example:
>> I generate all my indicators withind my trading program, but
> display them in
>> other panes below the price chart.
>>
>> I do not recompute any indicators. Simply save them in an ATC in
> the main
>> program and read the ATC in the display frogram and display
> indicators.
>>
>> It seems pretty efficient.
>>
>> ----- Original Message ----- 
>> From: "Barry Scarborough" <razzbarry@xxx>
>> To: <amibroker@xxxxxxxxxxxxxxx>
>> Sent: Wednesday, December 03, 2008 6:53 AM
>> Subject: [amibroker] Re: AFL coding
>>
>>
>> > Sorry for the confusion.
>> >
>> > I wish static vars could contain arrays too. Ain't so.
>> >
>> > What I was saying is that if you have an indicator that
> calculates a
>> > CCI then you may be able to get the current value using a static.
> If
>> > the program that uses the staticvarget you could add this to an
>> > array. I am assuming you are using live data and pass the data
> every
>> > scan. This will not work for back test or anything like that. I
> will
>> > try this later and see if it is true. If so then I will post how I
>> > did it.
>> >
>> > If I understood the original post, where the user wanted to use
>> > multiple charts and then combine the output of each indicator
> chart
>> > into a buy signal in the auto trading program. To do this the
> signal
>> > could be generated in an indicator and the buy condition could be
>> > passed in a static. That could be ANDed in the Buy = whatever in
> the
>> > trading program. But to preserve this condition in the auto
> trading
>> > program it would have to be assigned to an array if the user
> wanted
>> > to plot the CCI results.
>> >
>> > This is no problem at all if you use includes. I explained, or I
>> > tried to explain, how to use includes to accomplish this. I
> wouldn't
>> > touch a DLL with a stick.
>> >
>> > Barry
>> >
>> > --- In amibroker@xxxxxxxxxxxxxxx, Dennis Brown <see3d@> wrote:
>> >>
>> >> Barry,
>> >>
>> >> I am having a tough time following this.
>> >> Are you saying that a single static variable can hold an array?
>> >> I only wish it were true.
>> >> You can do it with static variables, but you have to have a
>> > separate
>> >> variable for each element in the array.
>> >>
>> >> AddToComposite() or disk files are the only way I know to pass an
>> >> array between AFL charts/panes, and it can be very slow.
>> >> It is faster to recalculate.
>> >>
>> >> I guess one could write a DLL that could save them like a static
>> >> variable.
>> >> This has been discussed at length in the past.
>> >>
>> >> BR,
>> >> Dennis
>> >>
>> >> On Dec 3, 2008, at 1:54 AM, Barry Scarborough wrote:
>> >>
>> >> >
>> >> > I forgot to say how to use the static var. In the using program
>> > you
>> >> > set the static var to a local variable.
>> >> >
>> >> > Before you can do that you need to create Pfx in this module.
>> >> > Pfx = "CCI";
>> >> > Then set a local var
>> >> > fCCI = StaticVarGet(Pfx + "CCI");
>> >> > And now you have the value from the other indicator in your
> local
>> >> > program.
>> >> >
>> >> > If you are going to do much of this create an include with
>> > constants
>> >> > in it and include that before all other includes and in every
>> >> > indicator where it will be used. Hey, now you are doing object
>> >> > oriented coding in AFL, neat huh. Well kinda but not really but
>> > this
>> >> > will save you loads of time when building other systems.
>> >> >
>> >> > As I mentioned before I think includes are the way to go but
>> >> > programming is an art form and everyone has their own style.
> What
>> >> > works for you is the right way to go. But as much as you can
> look
>> > far
>> >> > ahead.
>> >> >
>> >> > Cheers,
>> >> > Barry
>> >> >
>> >> > --- In amibroker@xxxxxxxxxxxxxxx, "Barry Scarborough"
> <razzbarry@>
>> >> > wrote:
>> >> >>
>> >> >> That is a nice idea.
>> >> >>
>> >> >> Make sure the static variables are unique, don't collide. It
>> > would
>> >> > be
>> >> >> safest to use a prefix for each indicator you create. An
> example
>> >> > for
>> >> >> a CCI indicator would be
>> >> >> Pfx = "CCI";
>> >> >> fCCI = do your CCI calc here
>> >> >> StaticVarSet(Pfx + "CCI", fCCI);
>> >> >> This static var is visible to all other programs running on
> the
>> >> >> visible chart.
>> >> >>
>> >> >> Also I think that AB scans the charts from top to bottom so
> make
>> >> > sure
>> >> >> the auto trading code is at the bottom so the data delivered
> to
>> > it
>> >> > is
>> >> >> fresh and not from the last scan. You can trace this and see
> what
>> >> >> happens.
>> >> >>
>> >> >> But, I think you are going to run into problems when you try
> to
>> >> > back
>> >> >> test or optimize since AA only sees the formula you are back
>> >> > testing.
>> >> >> It will not see the other charts on a worksheet.
>> >> >>
>> >> >> Another thing you can do is create an include file for each of
>> > the
>> >> >> indicators you want to use. Include them in the auto trading
>> >> > program
>> >> >> and also in the indicators you use in the other charts but
> don't
>> >> > plot
>> >> >> them in the auto trading program. Put the parameters in the
>> >> > indicator
>> >> >> file not your auto trading file. Set the default parameter in
> the
>> >> >> include and all charts will stay in sync. If you add arrows at
>> > the
>> >> >> buy points in each indicator you will see when they are
>> >> > contributing
>> >> >> to the trade condition.
>> >> >>
>> >> >> This is an example I use in my AT program:
>> >> >>
>> >> >> // cci include
>> >> >>
>> >> >> pCCI = Param("CCI period", pCCI, 1, 20, 1);
>> >
>> >> >> pCCI = Optimize("CCI period", pCCI, 1, 20,
>> > 2);
>> >> >>
>> >> >> fCCI = CCI(pCCI);
>> >> >> CCIlo = fCCI < -100;
>> >> >> CCIhi = fCCI > 100;
>> >> >> CCIup = fCCI > Ref(fCCI, -1);
>> >> >> CCIdn = fCCI < Ref(fCCI, -1);
>> >> >>
>> >> >> if(PlotTrue)
>> >> >>   Plot(fCCI, "\nCCI(" + NumToStr(pCCI, 1.0) + ")",
>> > colorGreen,
>> >> >> styleOwnScale);
>> >> >>
>> >> >> Note that I have the default parameter set to the var name
> pCCI.
>> >> > When
>> >> >> I include it I set the value before the #include line. You
> don't
>> >> > have
>> >> >> to do this but it is one way to use the same include formula
> in
>> >> > many
>> >> >> programs but override the parameter in the using program(s).
> Then
>> >> > you
>> >> >> can set PlotTrue = True; before the #include to tell the
>> > indicator
>> >> >> whether to plot it or not. If would be false in your AT
> program
>> > and
>> >> >> true in your indicator.
>> >> >>
>> >> >> Barry
>> >> >>
>> >> >> --- In amibroker@xxxxxxxxxxxxxxx, "Mike" <sfclimbers@> wrote:
>> >> >>>
>> >> >>> You could try using StaticVarSet in your main pane. Then,
> refer
>> >> > to
>> >> >> the
>> >> >>> values using StaticVarGet in the sub panes. You might have to
>> > use
>> >> >> the
>> >> >>> View | Refresh All menu item to get the other panes to update
>> >> > after
>> >> >>> making any changes in the main pane, else activate each one
> in
>> >> > turn
>> >> >> to
>> >> >>> have them update automatically upon activation.
>> >> >>>
>> >> >>> Mike
>> >> >>>
>> >> >>> --- In amibroker@xxxxxxxxxxxxxxx, "brianw468" <wild21@>
> wrote:
>> >> >>>>
>> >> >>>> Can anyone help with the following, please:-
>> >> >>>> 1. I am developing an AFL to generate buy and sell signals
> by
>> >> >> combining
>> >> >>>> different indicators with variable parameters (to be
>> >> > optimised).
>> >> >> I
>> >> >>>> would like to generate a plot with price and one indicator
> in
>> >> > the
>> >> >> top
>> >> >>>> pane, and the other indicators in separate panes below
> this, to
>> >> >> reduce
>> >> >>>> clutter in the plots.
>> >> >>>> I know I could simply set up separate panes with the
>> >> > appropriate
>> >> >>>> indicators - BUT then the parameters would not be tied to
> those
>> >> >> used in
>> >> >>>> the main pane. Changing parameter values and ensuring
>> >> > consistency
>> >> >>>> across the panes would then become a chore.
>> >> >>>> 2. I had thought that the SECTION commands might help here,
> but
>> >> >> that
>> >> >>>> doesn't seem to be the case. In fact, on checking the
>> >> >> documentation I
>> >> >>>> can't find when it is either necessary or desirable to use
>> >> > these
>> >> >>>> commands. Does anyone know?
>> >> >>>> TIA
>> >> >>>>
>> >> >>>> Brian
>> >> >>>>
>> >> >>>
>> >> >>
>> >> >
>> >> >
>> >> >
>> >> > ------------------------------------
>> >> >
>> >> > **** IMPORTANT ****
>> >> > This group is for the discussion between users only.
>> >> > This is *NOT* technical support channel.
>> >> >
>> >> > *********************
>> >> > TO GET TECHNICAL 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
>> >> >
>> >> >
>> >> >
>> >>
>> >
>> >
>> >
>> > ------------------------------------
>> >
>> > **** IMPORTANT ****
>> > This group is for the discussion between users only.
>> > This is *NOT* technical support channel.
>> >
>> > *********************
>> > TO GET TECHNICAL 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
>> >
>> >
>> >
>>
>
>
>
> ------------------------------------
>
> **** IMPORTANT ****
> This group is for the discussion between users only.
> This is *NOT* technical support channel.
>
> *********************
> TO GET TECHNICAL 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
>
>
>


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

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

*********************
TO GET TECHNICAL 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/