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

RE: [amibroker] Array processing in Loops (Tomasz) [was] Re: The use of the Powsmooth



PureBytes Links

Trading Reference Links

Tomasz,

Yes I did read your reply in its entirety ... my response was just on
your portion that addressed iterating through tickers vs UM's ABTool
method (sorry if there was confusion and maybe still is)

It seems I had a bad ticker in my watchlist that was causing the problem
- it had NULL values and so I was not getting any results for my
calculations.

Thanks again,
Peter

-----Original Message-----
From: Tomasz Janeczko [mailto:amibroker@xxxxxx] 
Sent: Tuesday, May 13, 2003 3:05 PM
To: amibroker@xxxxxxxxxxxxxxx
Subject: Re: [amibroker] Array processing in Loops (Tomasz) [was] Re:
The use of the Powsmooth

Peter,
 
Did you read my answer to the end ?
 
I wrote 
So in your code you should simply replace:
 
	currADX = ForeignADX( ticker, 14 );
//	^ should hold ForeignADX Array
	for (i=1;i<BarCount;i++)
	{	
		MeanADX[i] = MeanADX[i] + currADX[i];
	}
 
by
 
	currADX = ForeignADX( ticker, 14 );
//	^ should hold ForeignADX Array
        MeanADX = MeanADX + currADX;
 
 
 
Then it should work with UM's plugin too and there would be no need to
list the tickers explicitely.
 
Best regards,
Tomasz Janeczko
amibroker.com
----- Original Message ----- 
From: bluesinvestor 
To: amibroker@xxxxxxxxxxxxxxx 
Sent: Tuesday, May 13, 2003 8:43 PM
Subject: RE: [amibroker] Array processing in Loops (Tomasz) [was] Re:
The use of the Powsmooth

Tomasz,

Thank you, but the NDX is made up of more than 3 tickers.  We would have
to code GetTicker( index ) for all of those symbols (S&P 500 would be a
treat $B!D(B hmm what about the Russel 2000).  Plus if the symbols
that compose the NDX change (as they do at least once a year) not only
would we have to change the watchlist but also the code.

The thread was started to see if there was a way to create a this
indicator without AddtoComposit.

But maybe it is UM$B!G(Bs tool that I am having a problem with.

Thank you,
Peter

-----Original Message-----
From: Tomasz Janeczko [mailto:amibroker@xxxxxx] 
Sent: Tuesday, May 13, 2003 2:27 PM
To: amibroker@xxxxxxxxxxxxxxx
Subject: Re: [amibroker] Array processing in Loops (Tomasz) [was] Re:
The use of the Powsmooth

Hello,
 
... and of course use AddToComposite.
 
As to your question: arrays in loops are processed in the same way as
usual:
 
function GetTicker( index )
{
  if( index == 0 ) result = "MSFT";
  else
  if( index == 1 ) result = "INTC";
  else
  if( index == 2 ) result = "AAPL"; 

 return result;
}
Composite = 0;
for( index = 0; index < 3; index++ )
{
   ticker = GetTicker( index );
   Composite = Composite + Foreign( ticker, "C" );
}
AddColumn( Composite/3, "Close of MSFT+INTC+AAPL" );
Filter = 1;
 
=============
So in your code you should simply replace:
 
	currADX = ForeignADX( ticker, 14 );
//	^ should hold ForeignADX Array
	for (i=1;i<BarCount;i++)
	{	
		MeanADX[i] = MeanADX[i] + currADX[i];
	}
 
by
 
	currADX = ForeignADX( ticker, 14 );
//	^ should hold ForeignADX Array
        MeanADX = MeanADX + currADX;
 
 
 
(you can add arrays directly without loop thanks to AFL powerfull array
processing)
 
Best regards,
Tomasz Janeczko
amibroker.com
----- Original Message ----- 
From: Tomasz Janeczko 
To: amibroker@xxxxxxxxxxxxxxx 
Sent: Tuesday, May 13, 2003 8:03 PM
Subject: Re: [amibroker] Array processing in Loops (Tomasz) [was] Re:
The use of the Powsmooth

Hello,
 
Why do things so much complicated when they are easy.
 
You CAN iterate through watch list.
Simply click on  FILTER button and set it to watch list of your choice.
Then AA will automatically go through your watch list.
 
Best regards,
Tomasz Janeczko
amibroker.com
----- Original Message ----- 
From: bluesinvestor 
To: amibroker@xxxxxxxxxxxxxxx 
Sent: Tuesday, May 13, 2003 5:11 PM
Subject: [amibroker] Array processing in Loops (Tomasz) [was] Re: The
use of the Powsmooth

Tomasz,

I am trying to find an easy way to code Dimitris$B!G(B Powsmooth using
UM$B!G(Bs ABTool DLL (I would like to use a pure AFL method but cannot
seem to find a way to iterate through tickers in a watchlist via AFL).

How does AB handle arrays when enclosed in a loop?  This does not seem
to work:

/* WRITE ONCE */
function ForeignADX( symbol, period )
{
	/* save original price arrays */
	SC = C;
	SO = O;
	SH = H;
	SL = L;

	C = Foreign( symbol, "C" );
	H = Foreign( symbol, "H" );
	L = Foreign( symbol, "L" );
	O = Foreign( symbol, "O" );

	Result = ADX( period ); // REPLACE THIS BY ANY AFL FUNCTION

	/* restore original arrays */
	C = SC;
	O = SO;
	H = SH;
	L = SL;

return Result;
}

wl = 0;  // put your watchlist number (0..63) here; it should contain
some tickers
         // (my WL 1 contains the 100 Nasdaq100 tickers)

xxABtoolInit();
Filter = 1;
xtickercount = xxTickerCount(wl);

ticker = xxTickerFirst(wl);
MeanADX = 0;
while(ticker != "")
{
	currADX = ForeignADX( ticker, 14 );
//	^ should hold ForeignADX Array
	for (i=1;i<BarCount;i++)
	{	
		MeanADX[i] = MeanADX[i] + currADX[i];
	}

	ticker = xxTickerNext(wl);
}

xxABtoolInit();  //cleanup

AddColumn(MeanADX,"MeanADX");


Thanks in advance,
Peter

-----Original Message-----
From: DIMITRIS TSOKAKIS [mailto:TSOKAKIS@xxxxxxxxx] 
Sent: Monday, May 12, 2003 2:39 AM
To: amibroker@xxxxxxxxxxxxxxx
Subject: [amibroker] Re: The use of the Powsmooth

Peter,
thank you for the unexpected [because of time] reply.
Sleep with the idea and talk again "tomorrow".
It is 09.30 in Athens now, 32 Celsius and the summer is already at 
the corner.
Dimitris Tsokakis
--- In amibroker@xxxxxxxxxxxxxxx, "bluesinvestor" <investor@xxxx> 
wrote:
> Dimitris,
> 
> Unfortunately it is late here and I cannot come with a simple 
solution
> to 'step' through foreign tickers to get the ADX variable.  We would
> have to list all the tickers involved.
> 
> If there is a way (which I do not know or cannot think of at the 
moment)
> then the situation would be easy to solve.
> 
> Maybe someone will have a suggestion or solution by morning.
> 
> Regards,
> Peter
> 
> -----Original Message-----
> From: DIMITRIS TSOKAKIS [mailto:TSOKAKIS@x...] 
> Sent: Monday, May 12, 2003 1:59 AM
> To: amibroker@xxxxxxxxxxxxxxx
> Subject: [amibroker] Re: The use of the Powsmooth
> 
> Peter,
> to materialize this idea 
> http://groups.yahoo.com/group/amibroker/message/40198
> in N100 database we need to write 100 lines with
> ADX0=
> ADX1=
> ADX2=
> ...
> ADX99=
> MeanADX=(ADX0+ADX1+ADX2+...+ADX99)/100;
> Since you swim better in the iterations world, is there a more 
> elegant way to do it [through stocknum perhaps...]
> Of course, even if we take it as is, the advantage is great, 
> especially for intraday use.
> I suppose we make a STEP here.
> Dimitris Tsokakis
> --- In amibroker@xxxxxxxxxxxxxxx, "bluesinvestor" <investor@xxxx> 
> wrote:
> > Dimitris,
> >  
> > Without the JavaScript:
> >  
> > /*PowSmooth and an application to Dratio*/
> > dratio=DEMA(1000*(H-L)/(H+L),20);
> >  
> > for(i=2;i<BarCount;i++)
> > {
> >        t0[i]=(dratio[i]*dratio[i-1]*dratio[i-2])^(1/3);
> >        s0[i]=(dratio[i]*dratio[i-1])^(1/2);
> > }
> > PowSmooth=(s0+t0)/2;
> >  
> > Filter=1;
> > AddColumn(dratio,"DRATIO");
> > AddColumn(s0,"SQRT");
> > AddColumn(t0,"THIRD");
> > AddColumn(Powsmooth,"PowSmooth");
> > Plot(dratio,"dratio",1,8);
> > Plot(PowSmooth,"PowSmooth",7,1);
> >  
> > RRR=Powsmooth;// Replace this line with RRR=dratio; to see the 
usual
> > Dratioresults
> > D1=35;
> > F1=RRR>=D1;F2=RRR<=D1;
> > Sell=F2;Buy=F1;Buy=ExRem(Buy,Sell);Sell=ExRem(Sell,Buy);
> > Short=Sell;Cover=Buy;Short=ExRem(Short,Cover);Cover=ExRem
> (Cover,Short);
> >  
> > Regards,
> > Peter
> >  
> > -----Original Message-----
> > From: Dimitris Tsokakis [mailto:TSOKAKIS@x...] 
> > Sent: Saturday, May 10, 2003 7:19 AM
> > To: amibroker@xxxxxxxxxxxxxxx
> > Subject: [amibroker] The use of the Powsmooth
> >  
> > The basic property of the Powsmooth 
> > http://groups.yahoo.com/group/amibroker/message/40077
> > is to filter out fast zigzags, passing through them, without 
> introducing
> > important lags.
> > When we use a cross level trading system, many times we loose 
money
> > because of oscillation of our indicator around the
> > critical cross level. 
> > If our cross level is "good", then we should expect [and we shall
> > see...] strong ask and bid when we are close to this level. 
> > The result is the well known repeated whipsaws, which usually 
> annihilate
> > our profits.
> > Unfortunately, the solution is not to smooth our nervous 
indicator, 
> it
> > will usually loose its charm to catch quickly the market changes.
> > In this case [traders who use fast indicators will understand 
very 
> well
> > this syndrom...] the PowSmooth may offer great assistance.
> > Its smart curve will gently pass between the accumulated ziggy 
> points,
> > avoid cascade entries/exits and substantially increase our 
profits.
> > See a characteristic example in the att. gif.
> > In the first case, the dratio gives 8 trades in two months, with 
a 
> final
> > +13%, oscillating around the critical level D=35.
> > The PowSmooth, for the same ^NDX period, gives two clear trades 
and
> > maximizes the profits to +20%.
> > [settings buy/sell/short/cover at +1open, commission 0.5%, stops
> > disabled]
> > The level D=35 is critical for the market, the D_ratio frequntly
> > oscillates up and down, until the market takes the decision to go 
> higher
> > or lower. 
> > The usual D_ratio system gives for the whole market nice profits, 
> +340%
> > since Jan2000.
> > The PowSmooth D_datio makes the difference : +940% for the same 
> period
> > and settings.
> > For ^NDX we could nearly double the profits:
> > Usual D_ratio : +550%, 37trades/28winners/9losers
> > PowSmooth : +1165%, 27trades/23winners/4losers.
> > A +550% is not that bad, a +1165% is much better.
> > For CSCO, the signal generator of this transcendental system 
[since 
> we
> > "borrow" CSCO data for the basic curve] the situation needs
> > no further comments : the comparison is +370% vs +2000%.
> > If you use fast and ziggy indicators and Cross level systems, 
take a
> > look at the PowSmooth, it may make you smile.
> > Dimitris Tsokakis
> > I use the trancendental CSCO D_ratio code
> > /*Powsmooth CSCO D_ratio, written and used by D.Tsokakis, Sept 
> 2002*/
> > H=Foreign("CSCO","H");L=Foreign("CSCO","L");
> > dratio=DEMA(1000*(H-L)/(H+L),20);
> > EnableScript("jscript");
> > <%
> > dratio = VBArray( AFL( "dratio" ) ).toArray();
> > s=new Array();t=new Array();
> > s[0]=0;t[0]=0;
> > for(i=1;i<dratio.length;i++)
> > {
> > {t[i]=Math.pow((dratio[i]*dratio[i-1]*dratio[i-2]),1/3);}
> > {s[i]=Math.pow((dratio[i]*dratio[i-1]),1/2);}
> > }
> > AFL.Var("s0") =s ;
> > AFL.Var("t0")=t;
> > %>
> > Powsmooth=(s0+t0)/2;
> > RRR=Powsmooth;// Replace this line with RRR=dratio; to see the 
usual
> > Dratioresults
> > D1=35;
> > F1=RRR>=D1;F2=RRR<=D1;
> > Sell=F2;Buy=F1;Buy=ExRem(Buy,Sell);Sell=ExRem(Sell,Buy);
> > Short=Sell;Cover=Buy;Short=ExRem(Short,Cover);Cover=ExRem
> (Cover,Short);
> > 
> > 
> > 
> > 
> > Yahoo! Groups Sponsor
> > 
> >  
> > 
> 
<http://rd.yahoo.com/M=251812.3170658.4537139.1261774/D=egroupweb/S=17
> 05
> > 632198:HM/A=1564415/R=0/*http:/www.netflix.com/Default?
> mqso=60164784&par
> > tid=3170658> 
> > 
> >  
> > <http://us.adserver.yahoo.com/l?
> M=251812.3170658.4537139.1261774/D=egrou
> > pmail/S=:HM/A=1564415/rand=998789952> 
> > 
> > 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 
> > 
> > Your use of Yahoo! Groups is subject to the Yahoo!
> > <http://docs.yahoo.com/info/terms/>  Terms of Service.
> 
> 
> 
> 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 
> 
> Your use of Yahoo! Groups is subject to
> http://docs.yahoo.com/info/terms/



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 

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



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 

Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service. 


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 

Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service. 


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 

Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service. 



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 

Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service. 


Yahoo! Groups Sponsor
ADVERTISEMENT




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 

Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service. 


------------------------ Yahoo! Groups Sponsor ---------------------~-->
Rent DVDs from home.
Over 14,500 titles. Free Shipping
& No Late Fees. Try Netflix for FREE!
http://us.click.yahoo.com/BVVfoB/hP.FAA/uetFAA/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 

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