PureBytes Links
Trading Reference Links
|
Hi Eric,
Let's start with 1 in stead of 1,000 as a first try, so initialise the
weights
W1:=1;
W2:=1;
etc. Then try the following update function
W1:=If(P1=0,If(PREV=0,1,PREV),SM*PREV+(1-SM)*PREV*(1+PC*P1));
Note the shift in the bracket, I made a mistake in the first and there
may still be problems in this one. Could you mail me a plot of P1
please? I need to inspect them, but I think the problem with this
version is that it will be a bit slow. This depends on the size of P1
and PC. Maybe try with a large PC, say 90 or 100. I think if you
enter 100 for PC then you are using the equity line of the indicator
as weight, which actually makes a lot of sense. So you can then think
of W1 as 1 (previously 1,000) that you start to trade with using only
indicator 1. As profits and losses accumulate in the account, so the
weight changes. The final, combined system thus is diversified
accross n trading indicators.
Regards
MG Ferreira
TsaTsa EOD Programmer and trading model builder
http://www.ferra4models.com
http://fun.ferra4models.com
--- In equismetastock@xxxxxxxxxxxxxxx, chichungchoi <no_reply@xxxx> wrote:
> Hi MG Ferreira:
> I am facing with the problem of "Overflow in Mul() Function".
>
> If overflow occurs in W1 as shown below,
> P1:=DR*((T1>0)-(T1<0));
> W1:=If(P1=0,If(PREV=0,1000,PREV),SM*PREV+(1-SM)*PREV*(1+PC)*P1);
>
> but the problem disappears in W1 as shown below,
> W1:=If(P1=0,If(PREV=0,1000,PREV),SM*PREV+(1-SM)*PREV);
>
> Do you have any suggestion on how to handle this limitation?
> Thank you
> Eric
>
> --- In equismetastock@xxxxxxxxxxxxxxx, mgf_za_1999 <no_reply@xxxx>
> wrote:
> > Hi Eric,
> >
> > At the moment, we are adjusting the weights linearly, by adding or
> > subtracting an amount each time they work or don't work. So we
> could
> > go negative. If we adjust them by adding a percentage, then this
> > should not be a problem. Initially we looked at both methods and I
> > think I mentioned that the weights may go negative, so we start with
> > big ones initially. Try the following
> >
> > W1 := PREV*(1+PC*P1);
> > W2 := PREV*(1+PC*P2);
> > W3 := PREV*(1+PC*P2);
> >
> > Also, maybe add this input, together with the other, at the top:
> >
> > PC:=Input("Penalise % : ",0,100,10)/100;
> > SM:=Input("Smooth % : ",0,100,75)/100;
> >
> > and change the weights to
> >
> > W1 := SM*PREV + (1-SM)*PREV*(1+PC*P1);
> > W2 := SM*PREV + (1-SM)*PREV*(1+PC*P2);
> > W3 := SM*PREV + (1-SM)*PREV*(1+PC*P2);
> >
> > Then enter a highish value (even 99 or 99.9 is fine) for SM. The
> > higher this value, the more smooth the weights will be.
> >
> > As long as the weights increase, it means they are working! So it
> is
> > good if they keep on increasing. You can 'reset' them after each
> > round, since we only use the relative ones. I am not sure how to do
> > this in one variable in MSFL, but it is easy to do by introducing
> yet
> > another bunch of variables.
> >
> > Right at the end, change to the following
> >
> > WA:=W1+W2+W3;
> > {Standard weights}
> > SW1:=W1/WA;
> > SW2:=W2/WA;
> > SW3:=W3/WA;
> > TA:=SW1*T1+SW2*T2+SW3*T3;
> > TA;
> >
> > Now, SW1 ... SW3 will always be between 0 and 1 and will be the
> > percentage of the total signal that comes from the relevant
> indicator.
> > Thus it does not matter how big W1 becomes, SW1 will be between 0
> and
> > 1. To make it easier on the plotting, you could change the above to
> >
> > WA:=W1+W2+W3;
> > {Standard weights}
> > SW1:=W1/WA*100;
> > SW2:=W2/WA*100;
> > SW3:=W3/WA*100;
> > TA:=(SW1*T1+SW2*T2+SW3*T3)/100;
> > TA;
> >
> > to get SW1 ... SW3 to be between 0 and 100.
> >
> > Finally, even though SW1 is contained, W1 is not and may run away.
> > Again, using something else you would at the end of each loop assign
> > SW1 to W1 but I'm not sure this will work in MSFL. If you get
> numbers
> > that run away, you will pick it up in WA, and we can fix it if it
> happens.
> >
> > Regards
> > MG Ferreira
> > TsaTsa EOD Programmer and trading model builder
> > http://www.ferra4models.com
> > http://fun.ferra4models.com
> >
> >
> >
> >
> >
> >
> > --- In equismetastock@xxxxxxxxxxxxxxx, chichungchoi <no_reply@xxxx>
> wrote:
> > > Hi MG Ferreira:
> > > Do you receive my email for the results?
> > > I found the error of the negative value for the weighting factor,
> As
> > > I observe each value under the following
> > > formula
> > >
> > > PC = 0.1
> > > DR:=(C/Ref(C,-1)-1)*C;
> > > P3:=DR*((T3>0)-(T3<0));
> > > W3:=If(P3=0,PREV,W3+(P3*(1+PC)));
> > >
> > > [29 Oct 1997]
> > > W3 = 1669.51
> > >
> > > [30 Oct 1997]
> > > C = 9059.9; REF(C,-1) = 10498.2
> > > DR = -1241.25 [OK]
> > > T3 = -1 [OK]
> > > P3 = 1241.25 [OK]
> > > W3 = 2365.37 [ERROR]
> > >
> > > [31 Oct 1997]
> > > C = 10765.3; REF(C,-1) = 9059.9
> > > DR = 2026.42 [OK]
> > > T3 = -0.54499 [OK]
> > > P3 = -2026.42 [OK]
> > > W3 = -1229.06 [ERROR]
> > >
> > > ------------------------------------------------------------------
> ----
> > >
> > > On the other hands, if changing W3 to PREV, then
> > > PC = 0.1
> > > DR:=(C/Ref(C,-1)-1)*C;
> > > P3:=DR*((T3>0)-(T3<0));
> > > W3:=If(P3=0,PREV,PREV+(P3*(1+PC)));
> > >
> > > [29 Oct 1997]
> > > W3 = 28072.17
> > >
> > > [30 Oct 1997]
> > > C = 9059.9; REF(C,-1) = 10498.2
> > > DR = -1241.25 [OK]
> > > T3 = -1 [OK]
> > > P3 = 1241.25 [OK]
> > > W3 = 29437.54 [OK]
> > >
> > > [31 Oct 1997]
> > > C = 10765.3; REF(C,-1) = 9059.9
> > > DR = 2026.42 [OK]
> > > T3 = -0.54499 [OK]
> > > P3 = -2026.42 [OK]
> > > W3 = 27208.48 [OK]
> > >
> > > The result looks completely different, and it seems to me, the
> > > weighting factors are growing bigger and bigger. Do you have any
> idea
> > > on how to handle the weight in a huge amount? since the pently
> > > function will be less effective to affect the weight as it grows
> > > bigger and bigger. How do I know what the maximum level of
> weighting
> > > factors will be effective in assigning value for learning? such as
> > > I don't think the pently function [-2026] will be effective, if
> the
> > > level of weight is 1,000,000,000.
> > > Do you have any suggestion?
> > > Thank you
> > > Eric :>
------------------------ Yahoo! Groups Sponsor --------------------~-->
Has someone you know been affected by illness or disease?
Network for Good is THE place to support health awareness efforts!
http://us.click.yahoo.com/Rcy2bD/UOnJAA/cosFAA/BefplB/TM
--------------------------------------------------------------------~->
Yahoo! Groups Links
<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/equismetastock/
<*> To unsubscribe from this group, send an email to:
equismetastock-unsubscribe@xxxxxxxxxxxxxxx
<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
|