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

[amibroker] Re: please help



PureBytes Links

Trading Reference Links

It give me the result of one stock and then it craps out and gives me 
this error message:

  { sine = sin( (Cum(1)-pkOffset+Periods/4)/Periods * 6.283185 ); }

 if ( LastValue( ValueWhen(BCpk OR BCtr,BCtr,1) ) )     //RECENT 
ANCHOR POINT IS A TROUGH

   { sine = sin( (Cum(1)-trOffset+Periods*3/4)/Periods * 
6.283185 ); } 

 return sine*
------------^

Error 29.
Variable 'sine' used without having been initialized.


-- In amibroker@xxxxxxxxxxxxxxx, "wavemechanic" <fimdot@xxx> wrote:
>
> Works for me.  See if taking out setbarsrequred() helps.
>   ----- Original Message ----- 
>   From: jeffro861 
>   To: amibroker@xxxxxxxxxxxxxxx 
>   Sent: Wednesday, September 26, 2007 1:00 AM
>   Subject: [amibroker] please help
> 
> 
> 
> 
>   I keep getting error message with the following exploration.  
> 
>   TIA
> 
> 
> 
>   SetBarsRequired(0,350);
> 
>   function TriMA(array,periods)
> 
>   {
> 
>   pds = (periods+1)/2;
> 
>   pds = IIf(frac(pds)==0, pds, pds+1);
> 
>   return MA( MA(array,pds), pds);
> 
>   }
> 
>   function CycleHighlighter(Periods,Price)
> 
>   {
> 
>   P1 = int(Periods*1.5); //due to lag characteristics of Tri MA
> 
>   P1 = IIf(frac(P1/2)==0,P1+1,P1);
> 
>   P2 = int(p1/2);
> 
>   P2 = IIf(frac(P2/2)==0,P2+1,P2);
> 
>   MA1 = TriMA(Price,P1);
> 
>   MA2 = TriMA(Price,P2);
> 
>   PC1 = (P1-1)/2; //Centre MAs
> 
>   PC2 = (P2-1)/2;
> 
>   CMA1 = Ref(MA1,PC1);
> 
>   CMA2 = Ref(MA2,PC2);
> 
>   Cyhi = CMA2-CMA1;
> 
>   global Revcount;
> 
>   global end;
> 
>   Revcount = LastValue( BarIndex() ) - BarIndex();
> 
>   end = revcount<PC1;
> 
>   return IIf(end, ValueWhen(revcount==PC1,Cyhi,1), Cyhi);
> 
>   }
> 
>   function AnchoredSine
(BaseCycle,LookbackCycles,Method,Periods) //input should be a cycle 
function from the cycle highlighter
> 
>   {
> 
>   global BCpk;
> 
>   global BCtr;
> 
>   global BCStart;
> 
>   global sineamplitude;
> 
>   //define "best fit" window from BC peaks and troughs over # of 
lookbackcycles
> 
>   BCpk = HHVBars(Basecycle,5)==2 AND BaseCycle<Ref(Basecycle,-1) 
AND end==0;
> 
>   BCtr = LLVBars(Basecycle,5)==2 AND BaseCycle>Ref(Basecycle,-1) 
AND end==0;
> 
>   BCStart = IIf(ValueWhen(BCpk OR BCtr,BCpk,1), ValueWhen
(BCpk,BarIndex(),1+Lookbackcycles), ValueWhen(BCtr,BarIndex
(),1+Lookbackcycles) ) ;
> 
>   BCStart = BarIndex()==LastValue( ValueWhen(end==0,BCStart,1) );
> 
> 
>   //derive *recent* average wavelength of Base Cycle (over # of 
lookbackcycles) from peaks and troughs
> 
>   BCpkpds = LastValue( ValueWhen(BCpk,BarIndex(),1) - ValueWhen
(BCpk,BarIndex(),1+LookbackCycles) ) / LookbackCycles;
> 
>   BCtrpds = LastValue( ValueWhen(BCtr,BarIndex(),1) - ValueWhen
(BCtr,BarIndex(),1+LookbackCycles) ) / LookbackCycles;
> 
>   BCpds = (BCpkpds+BCtrpds)/2;
> 
> 
>   Periods = IIf(Method==0, Periods, BCpds); 
> 
>   //now determine suitable amplitude from StDev of Base Cycle 
during "best fit" window
> 
>   sineamplitude = LastValue( StDev( BaseCycle, LastValue(BarsSince
(BCStart)) ) *1.5);
> 
> 
>   //now determine where sine wave is anchored to BaseCycle
> 
>   //i.e., most recent of a BaseCycle Peak or Trough
> 
>   pkOffset = LastValue( ValueWhen(BCpk,BarIndex(),1) )-2; 
> 
>   trOffset = LastValue( ValueWhen(BCtr,BarIndex(),1) )-2;
> 
>   //Offset = (pkOffset+trOffset)/2;
> 
>   if ( LastValue( ValueWhen(BCpk OR BCtr,BCpk,1) ) ) //RECENT 
ANCHOR POINT IS A PEAK
> 
>   { sine = sin( (Cum(1)-pkOffset+Periods/4)/Periods * 6.283185 ); }
> 
>   if ( LastValue( ValueWhen(BCpk OR BCtr,BCtr,1) ) ) //RECENT 
ANCHOR POINT IS A TROUGH
> 
>   { sine = sin( (Cum(1)-trOffset+Periods*3/4)/Periods * 
6.283185 ); } 
> 
>   return sine*sineamplitude;
> 
>   }
> 
>   //----------------------------------------------------------------
------------------//
> 
>   Price = IIf(ParamToggle("Price Field", "Mid Price | Close", 0)
==0, (H+L)/2 , C);
> 
>   MincycNo = 5;
> 
>   MinWL = 20; 
> 
>   MaxWL = 250; 
> 
>   Method = ParamToggle("Sine Wavelength", "As Base Cycle | Best 
Fit", 0);
> 
>   Method2 = ParamToggle("Correlate Sine to:", "Price | Cycle 
Highlighter", 0);
> 
>   RefCor = 0;
> 
>   for (Cyc=5; Cyc>=MincycNo; Cyc--)
> 
>   for ( pds=MaxWL; pds>=MinWL; pds=pds-2)
> 
>   {
> 
>   LoopCycle = CycleHighlighter(Pds,Price);
> 
>   Loopsine = AnchoredSine(LoopCycle,Cyc,Method,Pds);
> 
> 
>   //define peaks/troughs in reference anchored sine
> 
>   Sinepk = HHVBars(Loopsine,5)==2 AND Loopsine<Ref(Loopsine,-1);
> 
>   Sinetr = LLVBars(Loopsine,5)==2 AND Loopsine>Ref(Loopsine,-1); 
> 
> 
>   //Find difference between Reference Sine and Base Cycle start 
points over entire length of "lookback" cycles
> 
>   SineStart = IIf(ValueWhen(BCpk OR BCtr,BCpk,1), ValueWhen
(Sinepk,BarIndex(),1+Cyc), ValueWhen(Sinetr,BarIndex(),1+Cyc) ) ;
> 
>   SineStart = BarIndex()==LastValue( ValueWhen
(end==0,SineStart,1) );
> 
> 
>   //Correlation between Sine and base Cycle over "lookback" window
> 
>   LookbackBars = LastValue( Max(BarsSince(BCStart),BarsSince
(sineStart))-BarsSince(end==0) );
> 
>   //CorSineBC = LastValue( ValueWhen(end==0,Correlation
(Price,LoopSine,Lookbackbars),1) );
> 
>   CorSinePr = LastValue( ValueWhen(end==0,Correlation
(Price,Loopsine,Lookbackbars),1) );
> 
>   CorSineBC = LastValue( ValueWhen(end==0,Correlation
(LoopCycle,LoopSine,Lookbackbars),1) );
> 
>   //Correlation between Sine and Price in "end" period
> 
>   EndBars = LastValue( BarsSince(end==0) );
> 
>   CorEnd = LastValue( Correlation(Price,LoopSine,EndBars) );
> 
>   CorPr = ( (CorSinePr*Lookbackbars)+(CorEnd*Endbars) ) / 
(Lookbackbars+Endbars);
> 
>   CorCycHi = ( (CorSineBC*Lookbackbars)+(CorEnd*Endbars) ) / 
(Lookbackbars+Endbars);
> 
>   Cor = IIf(Method2==0,CorPr,CorCycHi);
> 
>   if ( Cor>RefCor AND LastValue(IsTrue(Loopsine)) )
> 
>   { Cycle = LoopCycle;
> 
>   Refsine = Loopsine; 
> 
>   Endplot = End; 
> 
>   CycPds = pds; 
> 
>   CycNo = Cyc;
> 
>   RefCor = Cor; 
> 
>   RefCorSineBC = CorSineBC;
> 
>   RefCorEnd = CorEnd; 
> 
>   BCst = BCStart;
> 
>   Sst = sinestart;
> 
>   SineWavelength = LastValue( ValueWhen(sinepk OR sinetr,BarIndex
(),1) - ValueWhen(sinepk OR sinetr,BarIndex(),3) );
> 
>   NextPk = Max( 0, sinewavelength - LastValue(BarsSince(sinepk)) - 
2 );
> 
>   NextTr = Max( 0, sinewavelength - LastValue(BarsSince(sinetr)) - 
2 );
> 
>   sinamp = IIf(LastValue(ValueWhen(BCpk OR BCtr,BCpk,1)), 
sineamplitude, -sineamplitude); }
> 
>   }
> 
>   //----------------------------------------------------------------
---------------//
> 
>   //Predicted date & time of next peak or trough (for title)
> 
>   Bars = IIf(Nextpk<Nexttr,nextPk,nextTr);
> 
>   Type = WriteIf(Nextpk<NextTr,"peak","trough");
> 
>   Title = EncodeColor(colorDarkGreen) + "SELF-ADJUSTING Cycle 
Highlighter\n" + EncodeColor(colorGrey50) + "Base Cycle Wavelength 
= " 
> 
>   + EncodeColor(colorBlue) + NumToStr(CycPds,1.0) + " bars\n" + 
EncodeColor(colorGrey50) 
> 
>   + "Sine Wavelength = " + NumToStr(SineWavelength,1.0) + "bars\n" 
> 
>   + "correlated " + EncodeColor(colorBlue) + "over " + WriteVal
(CycNo,1.0) + WriteIf(CycNo>1," base cycles"," base cycle") + 
EncodeColor(colorGrey50)
> 
>   + "\nprojected next: " + EncodeColor(colorDarkRed) + Type + " 
in " + NumToStr(Bars,1.0) + WriteIf(Bars>1," bars"," bar") + 
EncodeColor(colorGrey50)
> 
>   + "\ncorrelation = " + EncodeColor(colorGreen) + NumToStr
(RefcorSineBC,1.2) + EncodeColor(colorRed) + " (" + NumToStr
(RefCorEnd,1.2) + ")"; 
> 
>   Plot(Refsine,"",colorRed,styleNoLabel);
> 
>   Plot( 0, "", colorLightGrey, styleNoLabel);
> 
>   Plot(BCst*sinamp,"",colorGreen,styleNoLabel);
> 
>   Plot(SSt*sinamp,"",colorRed,styleNoLabel);
> 
>   Plotcolour = IIf(endplot, colorLightGrey, ParamColor
("Colour",colorGreen) );
> 
>   Plot( Cycle, "", Plotcolour, ParamStyle("Style",styleThick) | 
styleNoLabel ); 
> 
>   Filter=RefcorSineBC>.7 AND RefCorEnd>.7;
> 
>   AddColumn(SineWavelength,"WaveLength");
> 
>   AddColumn(CycPds,"Cyclelength");
> 
>   AddColumn( RefcorSineBC, "highlighter+sine" );
> 
>   AddColumn( RefCorEnd, "price_sin" );
>




Please note that this group is for discussion between users only.

To get 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/