+1 888 340 6572 



Post new topic Reply to topic 
Why does Ehler's cycle study CRASH V8 64 bit ?   [ ]
Author Message
#1 posted 05 Mar 2012 

Status: Offline
Posts: 519
Thanks Received: 199 times
Thanks Given: 293 times
Joined: 09 Apr 2010
It works and verifies in V7.4 , verifies in V8 64 bit, but causes shutdown of V8 64 bit.
I tried it on two different computers with V8 64 bit and both crash- I haven't tried V8 32bit.

Code:
[LegacyColorValue = TRUE];

{Sine Wave Indicator}

Inputs:   Price((H+L)/2),deg(30);
      
Vars:      InPhase(0),
      Quadrature(0),
      Phase(0),
      DeltaPhase(0),
      count(0),
      InstPeriod(0),
      Period(0),
      DCPhase(0),
      RealPart(0),
      ImagPart(0);

If CurrentBar > 5 then begin

   {Compute InPhase and Quadrature components}
   Value1 = Price - Price[6];
   Value2 =Value1[3];
   Value3 =.75*(Value1 - Value1[6]) + .25*(Value1[2] - Value1[4]);
   InPhase = .33*Value2 + .67*InPhase[1];
   Quadrature = .2*Value3 + .8*Quadrature[1];

   {Use ArcTangent to compute the current phase}
   If AbsValue(InPhase +InPhase[1]) > 0 then Phase =
ArcTangent(AbsValue((Quadrature+Quadrature[1]) / (InPhase+InPhase[1])));

   {Resolve the ArcTangent ambiguity}
   If InPhase < 0 and Quadrature > 0 then Phase = 180 - Phase;
   If InPhase < 0 and Quadrature < 0 then Phase = 180 + Phase;
   If InPhase > 0 and Quadrature < 0 then Phase = 360 - Phase;
   
   {Compute a differential phase, resolve phase wraparound, and limit delta phase errors}
   DeltaPhase = Phase[1] - Phase;
   If Phase[1] < 90   and Phase > 270 then DeltaPhase = 360 + Phase[1] - Phase;
   If DeltaPhase < 1 then DeltaPhase = 1;
   If DeltaPhase > 60 then Deltaphase = 60;
   
   {Sum DeltaPhases to reach 360 degrees. The sum is the instantaneous period.}
   InstPeriod = 0;
   Value4 = 0;
   For count = 0 to 40 begin
      Value4 = Value4 + DeltaPhase[count];
      If Value4 > 360 and   InstPeriod = 0 then begin
         InstPeriod = count;
      end;
   end;
   
   {Resolve Instantaneous Period errors and  smooth}
   If InstPeriod = 0 then InstPeriod = InstPeriod[1];
   Value5 = .25*InstPeriod + .75*Value5[1];
   
   {Compute Dominant Cycle Phase, Sine of the Phase Angle,   and Leadsine}
   Period = IntPortion(Value5);
   RealPart = 0;
   ImagPart = 0;
   For count = 0 To Period  - 1 begin
      RealPart = RealPart + Sine(360 * count / Period) * (Price[count]);
      ImagPart = ImagPart + Cosine(360 * count / Period) * (Price[count]);
   end;
   If AbsValue(ImagPart) > 0.001 then DCPhase = Arctangent(RealPart / ImagPart);
   If AbsValue(ImagPart) <= 0.001 then DCPhase = 90 * Sign(RealPart);
      
   DCPhase = DCPhase + 90;
   If ImagPart < 0 then DCPhase = DCPhase + 180;
   If DCPhase > 315 then DCPhase = DCPhase - 360;
   
   Plot1(Sine(DCPhase), "Sine");
   Plot2(Sine(DCPhase + deg), "LeadSine");
   
end;








#2 posted 06 Mar 2012 
User avatar

Status: Offline
Posts: 5965
Thanks Received: 1939 times
Thanks Given: 662 times
Joined: 25 Aug 2011
Hello Sptrader,

This issue is confirmed. The fix will be implemented in MultiCharts 8.0 beta 2.
Please contact us directly if you are interested in a hotfix.



For this message the author Henry MultiСharts has received thanks: 2
JoshM, sptrader



Post new topic Reply to topic