public override float Calc(Candle candle) { Candle c = candle; Candle candleAnterior = candle.candleAnterior; if (candleAnterior == null) { return(0); } float vPer = per.Calc(candle); vPer = LimitPeriodo(vPer); string m1 = FormulaManager.MME + "(" + campo.GetCode() + "," + vPer + ")"; string m2 = FormulaManager.MME + "(" + m1 + "," + vPer + ")"; string m3 = FormulaManager.MME + "(" + m2 + "," + vPer + ")"; float vAtual = candle.GetValor(m3); float vAnterior = candleAnterior.GetValor(m3); if (vAnterior == 0) { return(0); } return(vAtual / vAnterior); }
public override float Calc(Candle candle) { Candle cp = candle; float avg = candle.GetValor(facade.formulaManager.GetFormula(FormulaManager.MMS, campo.GetCode() + "," + per)); float soma = 0; float vPer = per.Calc(candle); vPer = LimitPeriodo(vPer); if (vPer == 0) { return(0); } for (int i = 0; i < vPer; i++) { //System.out.println(candle.getPeriodo()+" "+cp.getValor(FormulaManager.close)); float dif = cp.GetValor(campo) - avg; dif = dif * dif; soma += dif; cp = cp.candleAnterior; if (cp == null) { return(0); } } soma = soma / vPer; return((float)Math.Sqrt(soma)); }
public override float Calc(Candle candle) { Candle c = candle; float v = candle.GetValor(campo); Candle cp = c; float vPer = per.Calc(candle); vPer = LimitPeriodo(vPer); for (int i = 0; i < vPer; i++) { float x = cp.GetValor(campo); if (x < v) { v = x; } cp = cp.candleAnterior; if (cp == null) { return(v); } } return(v); }
public override float Calc(Candle candle) { Candle cp = candle; float soma = 0; float vPer = per.Calc(candle); vPer = LimitPeriodo(vPer); float vlrFinal = cp.GetValor(campo); if (vPer == 0) { return(0); } for (int i = 0; i < vPer; i++) { cp = cp.candleAnterior; if (cp == null) { return(0); } } float vlrInicial = cp.GetValor(campo); return((vlrFinal / vlrInicial - 1) * 100); }
public float GetFirstRSI(Candle candle) { Candle cp = candle; float ag = 0; float vPer = per.Calc(candle); vPer = LimitPeriodo(vPer); if (cp == cp.candleAnterior) { return(0); } for (int i = 0; i < vPer; i++) { if (cp.candleAnterior == null) { return(0); } float dif = cp.GetValor(campo) - cp.candleAnterior.GetValor(campo); if (dif > 0) { ag += dif; } if (cp.candleAnterior == null || cp == cp.candleAnterior) { return(0); } cp = cp.candleAnterior; } float rs = 0; //1o candle após "per" periodos if (cp.candleAnterior == null) { ag = ag / vPer; rs = ag; } else { ag = candle.GetValor(campo) - candle.candleAnterior.GetValor(campo); if (ag < 0) { ag = 0; } ag = Math.Abs(ag); rs = candle.candleAnterior.GetValor(facade.formulaManager.GetFormula(GetCode())) * (vPer - 1) + ag; rs = rs / vPer; } return(rs); }
public override float Calc(Candle candle) { float vPer = per.Calc(candle); vPer = LimitPeriodo(vPer); float v = 0; float avg = candle.GetValor(facade.formulaManager.GetFormula(FormulaManager.MMS, campo.GetCode() + "," + vPer)); float stdDev = candle.GetValor(facade.formulaManager.GetFormula(FormulaManager.STDDEV, campo.GetCode() + "," + vPer)); if (banda == "U") { v = avg + desvio.Calc(candle) * stdDev; } if (banda == "M") { v = avg; } if (banda == "L") { v = avg - desvio.Calc(candle) * stdDev; } return(v); }
public override float Calc(Candle candle) { Candle c = candle; float vPer = per.Calc(candle); vPer = LimitPeriodo(vPer); for (int i = 0; i < vPer; i++) { if (c.candleAnterior != null) { c = c.candleAnterior; } } return(c.GetValor(campo)); }