public override void render(xGraphics g) { if (isHiding()) { return; } if (getShare(3) == null) { return; } Share share = getShare(); if (detectShareCursorChanged()) { share.calcPSAR(0, 0); int newSize = mChartLineLength * 2; mChartLineXY = allocMem(mChartLineXY, newSize); pricesToYs(share.pPSAR, share.mBeginIdx, mChartLineXY, mChartLineLength, false); } if (mChartLineLength == 0) { return; } int mX = 0; int mY = 0; g.setColor(0xffff0000); uint color; for (int i = 0; i < mChartLineLength; i++) { if (share.pSAR_SignalUp[share.mBeginIdx + i]) // is up { color = 0xff00ff00; } else { color = 0xffff0000; } g.setColor(color); g.drawPoint(mChartLineXY[2 * i], mChartLineXY[2 * i + 1], 2); } // info int cur = share.getCursor(); if (mShouldDrawValue && cur >= 0 && cur < share.getCandleCount()) { if (share.pSAR_SignalUp[cur]) { g.setColor(0xff00a000); } else { g.setColor(0xffa00000); } String s = formatPrice(share.pPSAR[cur]); StringBuilder sb = Utils.sb; sb.Length = 0; sb.AppendFormat("PSAR({0:F2},{1:F2}) {2}", mContext.mOptPSAR_alpha_max, mContext.mOptPSAR_alpha, s); s = sb.ToString(); g.drawString(mFont, s, 375, 12, 0); } }