protected override void CalcBar()
 {
     m_Stochastic.Call();
     if (Bars.CurrentBar > 2 &&
         m_oSlowK.CrossesOver(m_oSlowD, ExecInfo.MaxBarsBack) &&
         PublicFunctions.DoubleLess(m_oSlowK.Value, OverSold))
     {
         m_StochLE.Send();
     }
 }
 protected override void CalcBar()
 {
     m_Stochastic.Call();
     if (Bars.CurrentBar > 2 &&
         m_oSlowK.CrossesUnder(m_oSlowD, ExecInfo.MaxBarsBack) &&
         PublicFunctions.DoubleGreater(m_oSlowK.Value, OverBought))
     {
         m_StochSE.Send();
     }
 }
 protected override void CalcBar()
 {
     m_stochastic1.Call();
     Plot1.Set(0, m_ofastk.Value);
     Plot2.Set(0, m_ofastd.Value);
     Plot3.Set(0, overbought);
     Plot4.Set(0, oversold);
     if (this.CrossesOver(m_ofastd, oversold))
     {
         Alerts.Alert("FastD exiting oversold zone");
     }
     else
     {
         if (this.CrossesUnder(m_ofastd, overbought))
         {
             Alerts.Alert("FastD exiting overbought zone");
         }
     }
 }
 protected override void CalcBar()
 {
     m_stochastic1.Call();
     Plot1.Set(0, m_oslowk.Value);
     Plot2.Set(0, m_oslowd.Value);
     Plot3.Set(0, overbought);
     Plot4.Set(0, oversold);
     if (Bars.CurrentBar > 2)
     {
         if ((this.CrossesOver(m_oslowk, m_oslowd) &&
              PublicFunctions.DoubleLess(m_oslowk.Value, oversold)))
         {
             Alerts.Alert("SlowK crossing over SlowD");
         }
         else
         {
             if ((this.CrossesUnder(m_oslowk, m_oslowd) &&
                  PublicFunctions.DoubleGreater(m_oslowk.Value, overbought)))
             {
                 Alerts.Alert("SlowK crossing under SlowD");
             }
         }
     }
 }