(int bar, decimal value)
| 63 | } |
| 64 | |
| 65 | protected override void OnCalculate(int bar, decimal value) |
| 66 | { |
| 67 | if (bar < 5) |
| 68 | return; |
| 69 | |
| 70 | var candle = GetCandle(bar); |
| 71 | value = candle.Close; |
| 72 | |
| 73 | var bb_mid = ((ValueDataSeries)_bb.DataSeries[0])[bar]; // mid |
| 74 | var bb_top = ((ValueDataSeries)_bb.DataSeries[1])[bar]; // top |
| 75 | var bb_bottom = ((ValueDataSeries)_bb.DataSeries[2])[bar]; // bottom |
| 76 | |
| 77 | var dev = 2 * _dev.Calculate(bar, value); |
| 78 | var e1 = bb_top - bb_bottom; |
| 79 | |
| 80 | fastEma.Calculate(bar, value); |
| 81 | var fast = ((ValueDataSeries)fastEma.DataSeries[0])[bar]; |
| 82 | var fastM = ((ValueDataSeries)fastEma.DataSeries[0])[bar - 1]; |
| 83 | var fastN = ((ValueDataSeries)fastEma.DataSeries[0])[bar - 2]; |
| 84 | |
| 85 | slowEma.Calculate(bar, value); |
| 86 | var slow = ((ValueDataSeries)slowEma.DataSeries[0])[bar]; |
| 87 | var slowM = ((ValueDataSeries)slowEma.DataSeries[0])[bar - 1]; |
| 88 | var slowN = ((ValueDataSeries)slowEma.DataSeries[0])[bar - 2]; |
| 89 | |
| 90 | var t1 = ((fast - slow) - (fastM - slowM)) * Sensitivity; |
| 91 | var t1Prev = ((fastM - slowM) - (fastN - slowN)) * Sensitivity; |
| 92 | |
| 93 | _s1[bar] = e1; |
| 94 | |
| 95 | if (t1 > 0) |
| 96 | { |
| 97 | if (t1 < t1Prev) |
| 98 | _posSeries[bar] = t1; |
| 99 | else |
| 100 | _posLess[bar] = t1; |
| 101 | } |
| 102 | else |
| 103 | { |
| 104 | if (t1 < t1Prev) |
| 105 | _negSeries[bar] = t1 * -1; |
| 106 | else |
| 107 | _negLess[bar] = t1 * -1; |
| 108 | } |
| 109 | } |
| 110 | |
| 111 | } |
| 112 | } |
nothing calls this directly
no outgoing calls
no test coverage detected