PureBytes Links
Trading Reference Links
|
Stephane,
many thanks for your efforts and the links.
I have no idea of C++ and it is not the proper time to step in.
Dimitris Tsokakis
--- In amibroker@xxxxxxxxxxxxxxx, "Stephane Carrasset"
<s.carrasset@xxxx> wrote:
> Oh if a c++ guru may have a look I am a poor c++ users
>
> stephane
> ----- Original Message -----
> From: Stephane Carrasset
> To: amibroker@xxxxxxxxxxxxxxx
> Sent: Friday, May 14, 2004 6:05 PM
> Subject: Re: [amibroker] Re: DTFFT
>
>
> Hello, dimitri,
>
> my first try to translate your SFT code in c++ is a "half
success", I have just written the first part, and the code runs
faster, BUT...
> the results is different because I am stopped with Lastvalue in
> error=LastValue(Cum(abs(y-new1)));
>
> The c++ code returns a different error for each bar of a ticker,
and the Afl code returns the same value --> the lastvalue -->the
value at (nSize-1) or (BarCount-1)
>
>
>
>
> attached, the workspace, the dll ( in release) ,the afl code
>
> ////////////////////////////////
> //
> // FFT DT
> //
> ///////////////////////////////
>
> // Elementary Fourier analysis, by D. Tsokakis, May 2004
> // t=Cum(1)-1;
> // C1=MA(RSI(50),100);
> // start=Cum(IsTrue(C1))==1;
> // t1=ValueWhen(start,t);
> // C10=ValueWhen(start,C1);Plot(C1,"C1",colorBlack,8);
> // GraphXSpace=2;
> // x = Cum(1);
> // lastx = LastValue( x );
> // Daysback = LastValue(Cum(IsTrue(C1)));
> // aa = LastValue( LinRegIntercept( C1, Daysback) );
> // bb = LastValue( LinRegSlope( C1, Daysback ) );
> // yy = Aa + bb * ( x - (Lastx - DaysBack) );
> // yy=IIf( x >= (lastx - Daysback), yy, -1e10 );
> //
> // detrend=C1-yy;
> // new1=detrend;
> // Hor=LastValue(Cum(new1)/Cum(IsTrue(C1)));
> // pi=4*atan(1);n=12;
>
>
> AmiVar FFTDT( int NumArgs, AmiVar *ArgsTable )
> {
>
> int i;
> int nSize = gSite.GetArraySize();
> AmiVar IstruepPrice = gSite.AllocArrayResult();
> AmiVar Hor = gSite.AllocArrayResult();
> AmiVar y01 = gSite.AllocArrayResult();
> AmiVar y = gSite.AllocArrayResult();
> AmiVar error = gSite.AllocArrayResult();
> AmiVar Lv_error = gSite.AllocArrayResult();
>
> float*pPrice=ArgsTable[ 0 ].array;
> float*Detrend=ArgsTable[ 1 ].array;
> float*t1=ArgsTable[ 2 ].array;
>
>
> ISTRUE (pPrice,IstruepPrice);
>
> AmiVar arg[ 1 ];
> arg[ 0 ].type = VAR_ARRAY;
> arg[ 0 ].array = IstruepPrice.array;
> AmiVar CumC1 = gSite.CallFunction( "CUM", 1, arg );
>
> AmiVar arg1[ 1 ];
> arg1[ 0 ].type = VAR_ARRAY;
> arg1[ 0 ].array = Detrend;
> AmiVar CumDetrend = gSite.CallFunction( "CUM", 1, arg1 );
>
> for( i=0;i<nSize;i++)
> {
> // Hor=LastValue(Cum(Detrend)/Cum(IsTrue(C1)));
> Hor.array[i]= CumDetrend.array[i] / CumC1.array[i];
> }
>
> float cumHor = Hor.array[nSize-1];
>
> // // Fundamental period, crude approximation
> // error00=10000;per01=0;g01=0;phi01=0;stg0=0.5;stp0=100;
> // for(phi=0;phi<2*pi;phi=phi+pi/n)
> // {
> // for(g=0.5;g<=8;g=g+stg0)
> // {
> // for(per=300;per<=1000;per=per+stp0)
> // {f=1/per;
> // y=Hor+g*sin(2*pi*f*(t-t1)+phi);
> // error=LastValue(Cum(abs(y-new1)));
> // if(error<error00)
> // {error00=error;per01=per;g01=g;phi01=phi;}
> // }}}
> // f01=1/per01;
> // y01=Hor+g01*sin(2*pi*f01*(t-t1)+phi01);
>
> double error00=10000;
> float per01=0.0;
> float g01=0.0;
> double phi01=0.0;
> float stg0=0.5;
> float stp0=100;
> int n=12;
>
>
> // double* y = new double[nSize];
> // double* Error = new double[nSize];
>
> for(i=0;i<nSize;i++)
> {
> if( t1[i]==EMPTY_VAL)
> {
> y.array[i]=EMPTY_VAL;
> y01.array[i]=EMPTY_VAL;
> continue;
> }
>
> for(double phi=0;phi<2*PI;phi=phi+PI/n)
> {
> for(float g=0.5;g<=8;g=g+stg0)
> {
> for(float per=300;per<=1000;per=per+stp0)
> {
> float f=1/per;
> y.array[i]=(float)(cumHor + g*sin(2*PI*f*(i-t1[i])+phi));
>
> error.array[i]=(float) (error.array[i-1] + fabs(y.array[i]-
Detrend[i]));
>
> if(error.array[i]<error00)
> {
> error00=error.array[i];per01=per;g01=g;phi01=phi;
> }
> }
> }
> }
> float f01=1/per01;
> y01.array[i]= (float) (Hor.array[i] + g01*sin(2*PI*f01*(i-t1[i])
+phi01));
> }
>
> // delete[] y;
> // delete[] error;
>
> float Error= error.array[nSize-1];
> for(i=0;i<nSize;i++)
> {
> Lv_error.array[i]=Error;
> }
>
> gSite.SetVariable( "dty", y );
> gSite.SetVariable( "dterror", error );
> gSite.SetVariable( "dtLverror", Lv_error );
> gSite.SetVariable( "dtHor", Hor);
> return y01;
>
> }
> ----- Original Message -----
> From: DIMITRIS TSOKAKIS
> To: amibroker@xxxxxxxxxxxxxxx
> Sent: Friday, May 14, 2004 6:43 AM
> Subject: [amibroker] Re: DTFFT
>
>
> Stephane,
> It is the total [cumulative] error that should be minimum.
> The idea of this Elementary Fourier Analysis [let us use EFA
instead
> of FFT, because FFT concept is a bit different...] refers to
the
> whole history of the oscillator.
> Another procedure would be the Sum(error,per) to reflect the
last per
> days, but not for this moment.
> If we have a faster code, we could add more sinusoidal summands
and
> drop the error below 1%.[!!]
> Dimitris Tsokakis
> --- In amibroker@xxxxxxxxxxxxxxx, "Stephane Carrasset"
> <s.carrasset@xxxx> wrote:
> > Dimitri,
> >
> > is it really important to keep lastvalue in
> > error=LastValue(Cum(abs(y-detrend)));
> >
> > because in c++ I can write the code without lastvalue, but
of
> course the result s different
> >
> > stephane
> >
> > ----- Original Message -----
> > From: DIMITRIS TSOKAKIS
> > To: amibroker@xxxxxxxxxxxxxxx
> > Sent: Thursday, May 13, 2004 9:42 AM
> > Subject: [amibroker] Re: New file uploaded to amibroker
> >
> >
> > Stephane,
> > you may see now the comparison of my AFL Elementary Fourier
> analysis
> > and the usual FFT. There is a significant error decreament
but,
> the
> > most important, a much better fundamental period
approximation.
> > The sample was 921 bars of the Nikkei C1=MA(RSI(50),100);
and the
> FFT
> > analysis was executed in DaDisp_SE2000.
> > Any suggestion to make my analysis faster would improve the
> > sinusoidal approximation and would give an interesting T/A
tool
> > Dimitris Tsokakis
> > --- In amibroker@xxxxxxxxxxxxxxx, "Stephane Carrasset"
> > <s.carrasset@xxxx> wrote:
> > > Dimitri, Perhaps I'll try to translate it in c++ (this
WE) to
> get
> > it faster...
> > > But as I see you turn to be a master in looping
> > > I think you must have a look to c++ programming with ADK
> because
> > there is a math world that I would like to explore (
Adaptive
> > simulated annealing) http://www.ingber.com
> > >
> > >
> > > stephane
> > > ----- Original Message -----
> > > From: DIMITRIS TSOKAKIS
> > > To: amibroker@xxxxxxxxxxxxxxx
> > > Sent: Thursday, May 06, 2004 9:47 PM
> > > Subject: [amibroker] Re: New file uploaded to amibroker
> > >
> > >
> > > Note also, to avoid any confusion, that it is pure
sinusoidal
> > > analysis and has nothing to do with FFT, the 512 or
1024 or
> 2^n
> > > points, the well known end point problems etc.
> > > I believe the sinusoidal trend gives interesting info
in
> > combination
> > > with the [available in AFL syntax] linear trend.
> > > Dimitris Tsokakis
> > > --- In amibroker@xxxxxxxxxxxxxxx, "DIMITRIS TSOKAKIS"
> > <TSOKAKIS@xxxx>
> > > wrote:
> > > > Stephane,
> > > > Any ideas to make it shorter will be much
appreciated !!
> > > > We should *do* something instead of waiting and
waiting
> [and I
> > hope
> > > > you agree...]
> > > > Dimitris Tsokakis
> > > > --- In amibroker@xxxxxxxxxxxxxxx, "Stephane
Carrasset"
> > > > <s.carrasset@xxxx> wrote:
> > > > > Ouah!!
> > > > > Dimitri, don't know how many loops you have
written, it
> takes
> > at
> > > > least 2 minutes to be plotted on my "old" computer...
> > > > > it seems here we find an usage of c++
> > > > >
> > > > > stephane
> > > > > ----- Original Message -----
> > > > > From: amibroker@xxxxxxxxxxxxxxx
> > > > > To: amibroker@xxxxxxxxxxxxxxx
> > > > > Sent: Thursday, May 06, 2004 9:48 AM
> > > > > Subject: [amibroker] New file uploaded to
amibroker
> > > > >
> > > > >
> > > > >
> > > > > Hello,
> > > > >
> > > > > This email message is a notification to let you
know
> that
> > > > > a file has been uploaded to the Files area of the
> amibroker
> > > > > group.
> > > > >
> > > > > File : /Elementary Fourier
> Analysis/fourier1.txt
> > > > > Uploaded by : dtsokakis <TSOKAKIS@xxxx>
> > > > > Description :
> > > > >
> > > > > You can access this file at the URL
> > > > >
> > > > >
> http://groups.yahoo.com/group/amibroker/files/Elementary%
> > > > 20Fourier%20Analysis/fourier1.txt
> > > > >
> > > > > To learn more about file sharing for your group,
please
> > visit
> > > > >
> > > > > http://help.yahoo.com/help/us/groups/files
> > > > >
> > > > > Regards,
> > > > >
> > > > > dtsokakis <TSOKAKIS@xxxx>
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > Send BUG REPORTS to bugs@xxxx
> > > > > Send SUGGESTIONS to suggest@xxxx
> > > > > -----------------------------------------
> > > > > Post AmiQuote-related messages ONLY to:
> > > amiquote@xxxxxxxxxxxxxxx
> > > > > (Web page:
> http://groups.yahoo.com/group/amiquote/messages/)
> > > > > --------------------------------------------
> > > > > Check group FAQ at:
> > > >
http://groups.yahoo.com/group/amibroker/files/groupfaq.html
> > > > >
> > > > >
> > > > > Yahoo! Groups Sponsor
> > > > > ADVERTISEMENT
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > ----------------------------------------------------
------
> ----
> > ----
> > > --
> > > > ----------
> > > > > Yahoo! Groups Links
> > > > >
> > > > > a.. To visit your group on the web, go to:
> > > > > http://groups.yahoo.com/group/amibroker/
> > > > >
> > > > > b.. To unsubscribe from this group, send an
email to:
> > > > > amibroker-unsubscribe@xxxxxxxxxxxxxxx
> > > > >
> > > > > c.. Your use of Yahoo! Groups is subject to the
> Yahoo!
> > Terms
> > > of
> > > > Service.
> > > > >
> > > > >
> > > > >
> > > > > __________ NOD32 1.751 (20040505) Information
__________
> > > > >
> > > > > This message was checked by NOD32 antivirus
system.
> > > > > http://www.nod32.com
> > >
> > >
> > >
> > > Send BUG REPORTS to bugs@xxxx
> > > Send SUGGESTIONS to suggest@xxxx
> > > -----------------------------------------
> > > Post AmiQuote-related messages ONLY to:
> amiquote@xxxxxxxxxxxxxxx
> > > (Web page:
http://groups.yahoo.com/group/amiquote/messages/)
> > > --------------------------------------------
> > > Check group FAQ at:
> > http://groups.yahoo.com/group/amibroker/files/groupfaq.html
> > >
> > >
> > > Yahoo! Groups Sponsor
> > > ADVERTISEMENT
> > >
> > >
> > >
> > >
> > >
> > > ----------------------------------------------------------
------
> ----
> > ----------
> > > Yahoo! Groups Links
> > >
> > > a.. To visit your group on the web, go to:
> > > http://groups.yahoo.com/group/amibroker/
> > >
> > > b.. To unsubscribe from this group, send an email to:
> > > amibroker-unsubscribe@xxxxxxxxxxxxxxx
> > >
> > > c.. Your use of Yahoo! Groups is subject to the
Yahoo!
> Terms of
> > Service.
> > >
> > >
> > >
> > > __________ NOD32 1.751 (20040505) Information __________
> > >
> > > This message was checked by NOD32 antivirus system.
> > > http://www.nod32.com
> >
> >
> >
> > Send BUG REPORTS to bugs@xxxx
> > Send SUGGESTIONS to suggest@xxxx
> > -----------------------------------------
> > Post AmiQuote-related messages ONLY to:
amiquote@xxxxxxxxxxxxxxx
> > (Web page: http://groups.yahoo.com/group/amiquote/messages/)
> > --------------------------------------------
> > Check group FAQ at:
> http://groups.yahoo.com/group/amibroker/files/groupfaq.html
> >
> >
> >
> > --------------------------------------------------------------
------
> ----------
> > Yahoo! Groups Links
> >
> > a.. To visit your group on the web, go to:
> > http://groups.yahoo.com/group/amibroker/
> >
> > b.. To unsubscribe from this group, send an email to:
> > amibroker-unsubscribe@xxxxxxxxxxxxxxx
> >
> > c.. Your use of Yahoo! Groups is subject to the Yahoo!
Terms of
> Service.
> >
> >
> >
> > __________ NOD32 1.756 (20040511) Information __________
> >
> > This message was checked by NOD32 antivirus system.
> > http://www.nod32.com
>
>
>
> Send BUG REPORTS to bugs@xxxx
> Send SUGGESTIONS to suggest@xxxx
> -----------------------------------------
> Post AmiQuote-related messages ONLY to:
amiquote@xxxxxxxxxxxxxxx
> (Web page: http://groups.yahoo.com/group/amiquote/messages/)
> --------------------------------------------
> Check group FAQ at:
http://groups.yahoo.com/group/amibroker/files/groupfaq.html
>
>
>
>
> __________ NOD32 1.756 (20040511) Information __________
>
> This message was checked by NOD32 antivirus system.
> http://www.nod32.com
>
>
>
> Send BUG REPORTS to bugs@xxxx
> Send SUGGESTIONS to suggest@xxxx
> -----------------------------------------
> Post AmiQuote-related messages ONLY to: amiquote@xxxxxxxxxxxxxxx
> (Web page: http://groups.yahoo.com/group/amiquote/messages/)
> --------------------------------------------
> Check group FAQ at:
http://groups.yahoo.com/group/amibroker/files/groupfaq.html
>
>
> Yahoo! Groups Sponsor
> ADVERTISEMENT
>
>
>
>
>
> --------------------------------------------------------------------
----------
> Yahoo! Groups Links
>
> a.. To visit your group on the web, go to:
> http://groups.yahoo.com/group/amibroker/
>
> b.. To unsubscribe from this group, send an email to:
> amibroker-unsubscribe@xxxxxxxxxxxxxxx
>
> c.. Your use of Yahoo! Groups is subject to the Yahoo! Terms of
Service.
>
>
>
> __________ NOD32 1.756 (20040511) Information __________
>
> This message was checked by NOD32 antivirus system.
> http://www.nod32.com
------------------------ Yahoo! Groups Sponsor ---------------------~-->
Make a clean sweep of pop-up ads. Yahoo! Companion Toolbar.
Now with Pop-Up Blocker. Get it for free!
http://us.click.yahoo.com/L5YrjA/eSIIAA/yQLSAA/GHeqlB/TM
---------------------------------------------------------------------~->
Send BUG REPORTS to bugs@xxxxxxxxxxxxx
Send SUGGESTIONS to suggest@xxxxxxxxxxxxx
-----------------------------------------
Post AmiQuote-related messages ONLY to: amiquote@xxxxxxxxxxxxxxx
(Web page: http://groups.yahoo.com/group/amiquote/messages/)
--------------------------------------------
Check group FAQ at: http://groups.yahoo.com/group/amibroker/files/groupfaq.html
Yahoo! Groups Links
<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/amibroker/
<*> 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/
|