PureBytes Links
Trading Reference Links
|
Jeff,
Added some code that might help.
Art F
/////// start code ///////
_SECTION_BEGIN("Cycles");
// Cycles
// set chart options
SetBarsRequired( 10000, 10000 );
SetChartOptions( 0, chartShowDates );
Periods = Param( "Cycle Pds", 13, 1, 252, 1 );
XShift = Param( "Shift L/R", 0, -252, 252, 1 ) / 3.14159^2;
XFactor = Param( "FT Freq", 1, 0, 2, 0.001 );
YFactor = Param( "FT Amp", 1, 0, 1, 0.01 );
Color = ParamColor( "Color", colorBlue );
// calc and plot wave
X = 2 * 3.14159 / Periods / XFactor;
Y = sin( Cum( X ) - XShift ) * YFactor;
FineTunedPds = Periods * XFactor;
GraphXSpace=10;
Plot( Y, NumToStr( FineTunedPds, 0.2 ) + " Bar Cycle", Color,
styleLine|styleLeftAxisScale|styleNoLabel );
Plot ( Y, " This cycle is", Color,
styleLine|styleLeftAxisScale|styleNoLabel );
Title = Name()+" "+Date()+" "+"O= "+WriteVal(Open,1.2)+",
H= "+WriteVal(High,1.2)+", L= "
+WriteVal(Low,1.2)+", C= "+WriteVal(Close,1.2)+", V= "+WriteVal
(V,1.0)+EncodeColor(Color)+ "\nBar Cycle = "+ NumToStr(
FineTunedPds, 0.2 )
+" This cycle is = "+NumToStr(y,1.2)
+"\nThis Cycle is"+
WriteIf(Y >-0.80*YFactor AND y<0.20*YFactor AND Ref(y,-1)<y AND y!
=YFactor," Hard Up",WriteIf(Y > 0.20*YFactor AND y<0.80*YFactor AND
Ref(y,-1)<y AND y!=YFactor," Hard Up-Slowing",
WriteIf(Y > 0.80*YFactor AND y<=YFactor AND Ref(y,-1)<y,"
Topping",WriteIf(y<=YFactor AND y>0.80*YFactor AND Ref(y,-1)>y,"
Topped-Turning",
WriteIf(y < 0.80*YFactor AND y>-0.20*YFactor AND Ref(y,-1)>y AND y!
=YFactor," Hard Down",
WriteIf( y < -0.20*YFactor AND y>-0.80*YFactor AND Ref(y,-1)>y AND y!
=YFactor," Hard Down-Slowing",
WriteIf(y < -0.80*YFactor AND y>=-YFactor AND Ref(y,-1)>y,"
Bottoming",
WriteIf( y >= -YFactor AND y<-0.80*YFactor AND Ref(y,-1)<y,"
Bottomed-Turning", ""))))))));
Plot( 0, "", Color,
styleLine|styleDashed|styleLeftAxisScale|styleNoLabel );
Plot( 1, "", Color, styleNoLine|styleLeftAxisScale|styleNoLabel );
Plot( -1, "", Color, styleNoLine|styleLeftAxisScale|styleNoLabel );
// calc and plot vertical lines for pivots
Ym1 = Ref( Y, -1 );
Yp1 = Ref( Y, 1 );
Peaks = Y > Ym1 AND Y > Yp1;
Troughs = Y < Ym1 AND Y < Yp1;
Pivots = IIf( Peaks, YFactor, IIf( Troughs, -YFactor, Null ) );
Plot( Pivots, "", Color,
styleHistogram|styleDashed|styleLeftAxisScale|styleNoLabel );
Plot( -Pivots, "", Color,
styleHistogram|styleDashed|styleLeftAxisScale|styleNoLabel );
////// end code /////////
--- In amibroker@xxxxxxxxxxxxxxx, "jeff.feder" <jeff@xxx> wrote:
>
>
> Thank you Steve for this coding, it was just what i was looking
for!
>
> I have added some code to add commentary to the chart, to describe
the
> cycle, (ie Hard up, Topping, Down ) but have seem to hit a snag
> somewhere.
> As im relativly new to ami code, I used the MACD Commentary
example in
> the ami guide (
http://www.amibroker.com/guide/h_commentary.html ) as
> a basis, made changes and learnt along the way. Unfortunatly, its
not
> producing the commentary on the chart like i hoped.
>
>
> Here is the changed formula.
>
> /////// start code ///////
>
> _SECTION_BEGIN("Cycles");
> // Cycles
>
> // set chart options
>
> SetBarsRequired( 10000, 10000 );
>
> SetChartOptions( 0, chartShowDates );
>
> Periods = Param( "Cycle Pds", 13, 1, 252, 1 );
>
> XShift = Param( "Shift L/R", 0, -252, 252, 1 ) / 3.14159^2;
>
> XFactor = Param( "FT Freq", 1, 0, 2, 0.001 );
>
> YFactor = Param( "FT Amp", 1, 0, 1, 0.01 );
>
> Color = ParamColor( "Color", colorBlue );
>
> // calc and plot wave
>
> X = 2 * 3.14159 / Periods / XFactor;
>
> Y = sin( Cum( X ) - XShift ) * YFactor;
>
> FineTunedPds = Periods * XFactor;
>
> Plot( Y, NumToStr( FineTunedPds, 0.2 ) + " Bar Cycle", Color,
> styleLine|styleLeftAxisScale|styleNoLabel );
>
>
>
>
> Plot ( Y, " This cycle is", Color,
> styleLine|styleLeftAxisScale|styleNoLabel );
>
> "This Cycle is" ;
>
> avgcond1 = ( Y > -.80) == 1.1 ;
> avgcond2 = ( Y > .20) == 1.2 ;
> avgcond3 = ( Y > .80) == 1.3 ;
> avgcond4 = ( Y < .99) == 1.4 ;
>
>
> avgcond5 = ( y < .80) == 1.5 ;
> avgcond6 = ( y < -.20) == 1.6 ;
> avgcond7 = ( y < -.80) == 1.7 ;
> avgcond8 = ( y > -.99) == 1.8 ;
>
>
> WriteIf( avgcond1 == 1.1,
> "Hard Up",
> WriteIf( avgcond2 == 1.2,
> "Hard Up-Slowing",
> WriteIf( avgcond3 == 1.3,
> "Topping",
> WriteIf( avgcond4 == 1.4,
> "Topped-Turning", "") ) ) ) +
>
>
> WriteIf( avgcond5 == -1.5,
> "Hard Down",
> WriteIf( avgcond6 == -1.6,
> "Hard Down-Slowing",
> WriteIf( avgcond7 == -1.7,
> "Bottoming",
> WriteIf( avgcond8 == -1.8,
> "Bottomed-Turning", "") ) ) ) ;
>
>
>
> Plot( 0, "", Color,
> styleLine|styleDashed|styleLeftAxisScale|styleNoLabel );
>
> Plot( 1, "", Color, styleNoLine|styleLeftAxisScale|styleNoLabel );
>
> Plot( -1, "", Color, styleNoLine|styleLeftAxisScale|styleNoLabel );
>
> // calc and plot vertical lines for pivots
>
> Ym1 = Ref( Y, -1 );
>
> Yp1 = Ref( Y, 1 );
>
> Peaks = Y > Ym1 AND Y > Yp1;
>
> Troughs = Y < Ym1 AND Y < Yp1;
>
> Pivots = IIf( Peaks, YFactor, IIf( Troughs, -YFactor, Null ) );
>
> Plot( Pivots, "", Color,
> styleHistogram|styleDashed|styleLeftAxisScale|styleNoLabel );
>
> Plot( -Pivots, "", Color,
> styleHistogram|styleDashed|styleLeftAxisScale|styleNoLabel );
>
> ////// end code /////////
>
>
>
> One idea i had in mind was to have this formula over multiple
cycles,
> and then allocate more weighting to the longer cycles before
coming up
> with an overal cycle commentary/result of either Hard Up, Topping
or
> Hard Down or Bottoming. So i guess a 'ranking system' type code
would
> work for that? ...
>
> Im finding the more i discover ami code, the more powerful it
becomes!
>
> Anyways, thanks for your help,
>
> Jeff
>
>
>
> --- In amibroker@xxxxxxxxxxxxxxx, "Steve Dugas" <sjdugas@> wrote:
> >
> > Hi - Here is a pretty flexible tool for plotting cycles / sine
> waves, hope
> > it helps
> >
> > Steve
> >
> > ***************************************8
> >
> > // Cycles
> >
> > // set chart options
> >
> > SetBarsRequired( 10000, 10000 );
> >
> > SetChartOptions( 0, chartShowDates );
> >
> > Periods = Param( "Cycle Pds", 13, 1, 252, 1 );
> >
> > XShift = Param( "Shift L/R", 0, -252, 252, 1 ) / 3.14159^2;
> >
> > XFactor = Param( "FT Freq", 1, 0, 2, 0.001 );
> >
> > YFactor = Param( "FT Amp", 1, 0, 1, 0.01 );
> >
> > Color = ParamColor( "Color", colorYellow );
> >
> > // calc and plot wave
> >
> > X = 2 * 3.14159 / Periods / XFactor;
> >
> > Y = sin( Cum( X ) - XShift ) * YFactor;
> >
> > FineTunedPds = Periods * XFactor;
> >
> > Plot( Y, NumToStr( FineTunedPds, 0.2 ) + " Bar Cycle", Color,
> > styleLine|styleLeftAxisScale|styleNoLabel );
> >
> > Plot( 0, "", Color,
> styleLine|styleDashed|styleLeftAxisScale|styleNoLabel );
> >
> > Plot( 1, "", Color,
styleNoLine|styleLeftAxisScale|styleNoLabel );
> >
> > Plot( -1, "", Color,
styleNoLine|styleLeftAxisScale|styleNoLabel );
> >
> > // calc and plot vertical lines for pivots
> >
> > Ym1 = Ref( Y, -1 );
> >
> > Yp1 = Ref( Y, 1 );
> >
> > Peaks = Y > Ym1 AND Y > Yp1;
> >
> > Troughs = Y < Ym1 AND Y < Yp1;
> >
> > Pivots = IIf( Peaks, YFactor, IIf( Troughs, -YFactor, Null ) );
> >
> > Plot( Pivots, "", Color,
> > styleHistogram|styleDashed|styleLeftAxisScale|styleNoLabel );
> >
> > Plot( -Pivots, "", Color,
> > styleHistogram|styleDashed|styleLeftAxisScale|styleNoLabel );
> >
> >
> >
> > ----- Original Message -----
> > From: "jeff.feder" <jeff@>
> > To: <amibroker@xxxxxxxxxxxxxxx>
> > Sent: Wednesday, October 01, 2008 8:11 AM
> > Subject: [amibroker] Plotting Sine Waves using Time Axis
> >
> >
> > > Hello,
> > >
> > > I have been studying the works of Hurst and Millard and have
been
> > > basing my trading system around the principle of Cycles.
> > >
> > > I have come accross several Sine Wave Formulas, which plot the
waves
> > > in relation to price.
> > >
> > > Has anyone constructed Sine Waves that plot based on time, ie.
perfect
> > > sine wave curve, and if so, how is this written in AB code?
> > >
> > > My theory was just to use these as guides as to what stage the
> > > different cycles are, at a certain point in time.
> > >
> > > Thansk for your help,
> > >
> > > Jeff
> > >
>
------------------------------------
**** 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/
|