MCPcopy Create free account
hub / github.com/TraderOracle/ATAS / OnCalculate

Method OnCalculate

MetroPlex.cs:108–165  ·  view source on GitHub ↗
(int bar, decimal value)

Source from the content-addressed store, hash-verified

106 }
107
108 protected override void OnCalculate(int bar, decimal value)
109 {
110 if (bar < (CurrentBar - 5))
111 return;
112
113 var pbar = bar - 1;
114 var prevBar = _prevBar;
115 _prevBar = bar;
116
117 if (prevBar == bar)
118 return;
119
120 var candle = GetCandle(pbar);
121 value = candle.Close;
122
123 var p1C = GetCandle(pbar - 1);
124 _t3.Calculate(pbar, value);
125 fastEma.Calculate(pbar, value);
126 slowEma.Calculate(pbar, value);
127 _rsi.Calculate(pbar, value);
128
129 var kama9 = ((ValueDataSeries)_kama9.DataSeries[0])[pbar];
130 var t3 = ((ValueDataSeries)_t3.DataSeries[0])[pbar];
131 var fast = ((ValueDataSeries)fastEma.DataSeries[0])[pbar];
132 var fastM = ((ValueDataSeries)fastEma.DataSeries[0])[pbar - 1];
133 var slow = ((ValueDataSeries)slowEma.DataSeries[0])[pbar];
134 var slowM = ((ValueDataSeries)slowEma.DataSeries[0])[pbar - 1];
135 var f1 = ((ValueDataSeries)_ft.DataSeries[0])[pbar];
136 var f2 = ((ValueDataSeries)_ft.DataSeries[1])[pbar];
137 var st = ((ValueDataSeries)_st.DataSeries[0])[pbar];
138 var x = ((ValueDataSeries)_adx.DataSeries[0])[pbar];
139 var psar = ((ValueDataSeries)_psar.DataSeries[0])[pbar];
140 var rsi = ((ValueDataSeries)_rsi.DataSeries[0])[pbar];
141 var rsi1 = ((ValueDataSeries)_rsi.DataSeries[0])[pbar - 1];
142 var rsi2 = ((ValueDataSeries)_rsi.DataSeries[0])[pbar - 2];
143 var hma = ((ValueDataSeries)_hma.DataSeries[0])[pbar];
144 var phma = ((ValueDataSeries)_hma.DataSeries[0])[pbar - 1];
145
146 var t1 = ((fast - slow) - (fastM - slowM)) * 150; // iWaddaSensitivity;
147
148 var hullUp = hma > phma;
149 var hullDown = hma < phma;
150 var fisherUp = (f1 < f2);
151 var fisherDown = (f2 < f1);
152 var psarBuy = (psar < candle.Close);
153 var psarSell = (psar > candle.Close);
154
155 var lmacd = _LindaShort.Calculate(pbar, value) - _LindaLong.Calculate(pbar, value);
156 var signal = _LindaSignal.Calculate(pbar, lmacd);
157 var Linda = lmacd - signal;
158
159 if (fisherUp && st > 0 && t1 > 0)
160 OpenPosition("Standard Buy Signal", candle, bar, 1);
161
162 if (fisherDown && st < 0 && t1 < 0)
163 OpenPosition("Standard Sell Signal", candle, bar, -1);
164
165 }

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected