public static xVector getTokens(String s, char delim) { xVector v = new xVector(); StringBuilder tk = Utils.sb; tk.Length = 0; for (int i = 0; i < s.Length; i++) { char c = s[i]; if (c == delim) { v.addElement(tk.ToString()); tk.Length = 0; } else { tk.Append(c); } } if (tk.Length > 0) { v.addElement(tk.ToString()); } return(v); }
override public xVector getTitles() { xVector v = new xVector(1); Share share = getShare(3); if (share != null) { int idx = share.getCursor(); float vs; StringBuilder sb = Utils.sb; sb.Length = 0; vs = pStochRSI[idx]; int period = 14; int rsiPeriod = GlobalData.getData().getValueInt(GlobalData.kStochRSIPeriod1, 14); int stochPeriod = GlobalData.getData().getValueInt(GlobalData.kStochRSIPeriodStock, 14); int smoothK = GlobalData.getData().getValueInt(GlobalData.kStockRSISmoothK, 3); int smoothD = GlobalData.getData().getValueInt(GlobalData.kStochRSISmoothD, 3); sb.AppendFormat("StochRSI({0}/{1}/{2}/{3})={4:F1}", rsiPeriod, stochPeriod, smoothK, smoothD, vs); v.addElement(new stTitle(sb.ToString(), C.COLOR_ORANGE)); } return(v); }
public static void evalueSortValueTrade(xVector v) { for (int i = 0; i < v.size(); i++) { Share share = (Share)v.elementAt(i); if (share.isIndex()) { share.mSortParam = 0; share.mCompareText = "0"; } else { stPriceboardState ps = Context.getInstance().mPriceboard.getPriceboard(share.getShareID()); if (ps != null) { share.mSortParam = ps.current_price_1 * ps.total_volume; double t = share.mSortParam / 1000; share.mCompareText = RowNormalShare.valueMToString((int)t, true); } else { share.mSortParam = 0; share.mCompareText = "0"; } } } }
override public xVector getTitles() { xVector v = new xVector(1); Share share = getShare(3); if (share != null) { int idx = share.getCursor(); float vs; String s; vs = share.pWilliamR[idx]; if (mContext.mOptWR_EMA > 0) { s = String.Format("William%R{0}={1:F1} MA={2:F1}", (int)mContext.mOptWilliamRPeriod, vs, share.pEMAIndicator[idx]); } else { s = String.Format("William%R{0}={1:F1}", (int)mContext.mOptWilliamRPeriod, vs); } v.addElement(new stTitle(s, C.COLOR_WHITE)); } return(v); }
static void evalueSortValueRSI(xVector v) { int rsiPeriod = (int)Context.getInstance().mOptRSIPeriod[0]; if (rsiPeriod > 3 && rsiPeriod < 30) { } else { rsiPeriod = 14; } for (int i = 0; i < v.size(); i++) { Share share = (Share)v.elementAt(i); share.loadShareFromCommonData(true, true); //if (share.getCode().CompareTo("SIP") == 0) //{ //share.setCode("SIP", 1); //} if (share.getCandleCnt() >= rsiPeriod) { share.calcRSI(0); share.mSortParam = share.pRSI[share.getCandleCnt() - 1]; share.mCompareText = String.Format("{0:F1}", share.mSortParam); } else { share.mCompareText = "0"; share.mSortParam = 0; } } }
static void evalueSortValuePrice(xVector v) { for (int i = 0; i < v.size(); i++) { Share share = (Share)v.elementAt(i); /*if (share.getCode().CompareTo("NAW") == 0) * { * stPriceboardState ps = Context.getInstance().mPriceboard.getPriceboard(share.getShareID()); * share.mSortParam = ps.current_price_1; * } */ if (!share.isIndex()) { stPriceboardState ps = Context.getInstance().mPriceboard.getPriceboard(share.getShareID()); share.mSortParam = ps.current_price_1; share.mSortParam = 0; if (share.mSortParam == 0) { share.loadShareFromCommonData(false); if (share.getCandleCnt() > 0) { share.mSortParam = share.getClose(share.getCandleCnt() - 1); } } } else { share.mSortParam = 10000; } } }
static void evalueSortValueVonhoa(xVector v) { for (int i = 0; i < v.size(); i++) { Share share = (Share)v.elementAt(i); if (share.isIndex()) { share.mSortParam = 0; share.mCompareText = "0"; } else { stCompanyInfo inf = Context.getInstance().mShareManager.getCompanyInfo(share.getShareID()); stPriceboardState ps = Context.getInstance().mPriceboard.getPriceboard(share.getShareID()); if (inf != null && ps != null) { share.mSortParam = inf.volume * ps.current_price_1; double t = share.mSortParam; share.mCompareText = RowNormalShare.valueMToString(t, true); } else { share.mSortParam = 0; share.mCompareText = "0"; } } } }
//========================================== void loadShareGroup(xDataInput di) { int cnt = di.readInt(); if (cnt > stShareGroup.MAX_SHARES_IN_GROUP) { cnt = stShareGroup.MAX_SHARES_IN_GROUP; } xVector v = shareGroups(); if (cnt > 0) { v.removeAllElements(); } for (int i = 0; i < cnt; i++) { stShareGroup g = new stShareGroup(); g.load(di); if (g.getType() == stShareGroup.ID_GROUP_GAINLOSS || g.getName() == null || g.getName().Length == 0) { continue; } v.addElement(g); } }
static void evalueSortValueMFI(xVector v) { int mfiPeriod = (int)Context.getInstance().mOptMFIPeriod[0]; if (mfiPeriod > 3 && mfiPeriod < 30) { } else { mfiPeriod = 14; } for (int i = 0; i < v.size(); i++) { Share share = (Share)v.elementAt(i); share.loadShareFromCommonData(true, true); if (share.getCandleCnt() >= mfiPeriod) { share.calcMFI(0); share.mSortParam = share.pMFI[share.getCandleCnt() - 1]; share.mCompareText = String.Format("{0:F1}", share.mSortParam); } else { share.mCompareText = "0"; share.mSortParam = 0; } } }
public static void addPriceboardStateOfIndex(stPriceboardState ps) { xVector v = (xVector)dataPriceboard.getValue(kVNIndices); if (v == null) { v = new xVector(); dataPriceboard.setValue(kVNIndices, v); } bool added = false; for (int i = 0; i < v.size(); i++) { stPriceboardState _ps = (stPriceboardState)v.elementAt(i); if (_ps.code.Equals(ps.code)) { added = true; _ps.copyFrom(ps); break; } } if (!added) { v.addElement(ps); } }
override public xVector getTitles() { xVector v = new xVector(); Share share = getShare(); if (share == null) { return(null); } int idx = share.getCursor(); int adx = (int)share.pADX[idx]; int pdi = (int)share.pPLUS_DI[idx]; int mdi = (int)share.pMINUS_DI[idx]; StringBuilder sb = Utils.sb; sb.Length = 0; sb.AppendFormat("ADX({0})={1}", mContext.mOptADXPeriod, adx); v.addElement(new stTitle(sb.ToString(), 0xfff0f0f0)); // +di sb.Length = 0; sb.AppendFormat("DMI({0}): +DI={1}", (int)mContext.mOptADXPeriodDMI, pdi); v.addElement(new stTitle(sb.ToString(), 0xff00ff00)); // signal 9 sb.Length = 0; sb.AppendFormat("-DI: {0}", mdi); v.addElement(new stTitle(sb.ToString(), 0xffff0000)); return(v); }
override public xVector getTitles() { xVector v = new xVector(5); StringBuilder sb = Utils.sb; Share share = getShare(3); int idx = share.getCursor(); float v1 = share.pMACDHistogram[idx]; float v2 = share.pMACD[idx]; float v3 = share.pMACDSignal9[idx]; sb.Length = 0; // macd sb.AppendFormat("MACD: ({0}, {1}, {2}) HIS={3:F2}", (int)mContext.mOptMACDFast, (int)mContext.mOptMACDSlow, (int)mContext.mOptMACDSignal, v1); v.addElement(new stTitle(sb.ToString(), 0xfff0f0f0)); // macd sb.Length = 0; sb.AppendFormat("MACD: {0:F2}", v2); v.addElement(new stTitle(sb.ToString(), C.COLOR_BLUE_LIGHT)); sb.Length = 0; // signal 9 sb.AppendFormat("Sig: {0:F2}", v3); v.addElement(new stTitle(sb.ToString(), 0xffff0000)); return(v); }
static void evalueSortValueSymbol(xVector v) { for (int i = 0; i < v.size(); i++) { Share share = (Share)v.elementAt(i); String code = share.getCode(); if (code == null || code.Length < 3) { share.mSortParam = 1000; } else { char[] cc = code.ToCharArray(); int value = ((int)cc[0] << 24) | ((int)cc[1] << 16) | ((int)cc[2] << 8); if (cc.Length > 3) { share.mSortParam = value | (int)cc[3]; } else { share.mSortParam = value; } } } }
public xVector shareGroups() { if (_shareGroups == null) { _shareGroups = new xVector(); } return(_shareGroups); }
override public xVector getTitles() { xVector v = new xVector(1); v.addElement(new stTitle("On Balance Volume", 0xffffffff)); return(v); }
override public xVector getTitles() { xVector v = new xVector(); Share share = getShare(); if (share == null) { return(v); } if (refChart() == null || refChart().getShare() == null) { return(v); } Share refShare = refChart().getShare(); int date = refShare.getDate(); int selCandleIdx = share.dateToIndex(date); if (selCandleIdx < 0) { return(v); } String inf = ""; uint color = 0; if (selCandleIdx >= share.mBeginIdx && selCandleIdx <= share.mEndIdx) { float changed = 0; if (selCandleIdx > 0 && share.getClose(selCandleIdx - 1) > 0) { changed = share.getClose(selCandleIdx) - share.getClose(selCandleIdx - 1); } if (changed >= 0) { color = C.COLOR_GREEN; inf = String.Format("{0:F1}(+{1:F1})", share.getClose(selCandleIdx), changed); } else { color = C.COLOR_RED; inf = String.Format("{0:F1}({1:F1})", share.getClose(selCandleIdx), changed); } } //String s1 = String.Format(" "); String s2 = inf; //v.addElement(new stTitle(s1, themeDark() ? C.COLOR_WHITE : C.COLOR_BLACK)); v.addElement(new stTitle(s2, color)); return(v); }
public override void onMouseUp(int x, int y) { // ChangeIndexItem** xVector[] vv = { vChangeInc, vChangeDec }; Share share; for (int j = 0; j < 2; j++) { xVector v = vv[j]; for (int i = 0; i < v.size(); i++) { ChangeIndexItem item = (ChangeIndexItem)v.elementAt(i); if (item.w > 0) { if (Utils.isInRect(x, y, (int)item.x, (int)item.y, (int)item.w, (int)item.h)) { if (item.selected) { item.selected = false; share = mContext.mShareManager.getShare(item.shareID); mContext.setCurrentShare(share); /* * C2ObjObject *objShare = [[[C2ObjObject alloc]initWithPointer:share]autorelease]; * C2ObjObject *objGroup = [[C2ObjObject alloc]initWithPointer:group]; * NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys: * objShare, @"share", * objGroup, @"group", nil]; * * notifyEvent(EVT_SHOW_SHARE_HISTORY, 0, dict); * return; * */ } if (currentSelected != null) { currentSelected.selected = false; } item.selected = true; share = mContext.mShareManager.getShare(item.shareID); mContext.setCurrentShare(share); /* * notifyEvent(EVT_SELECT_SHARE, 0, share); */ currentSelected = item; invalidate(); return; } } } } }
// structure:ver |blockcnt| blocksize:id|data | blocksize:id|data public void loadUserData(xDataInput di) { int signal = di.readInt(); if (signal != USER_DATA_SIGNATURE) { return; // bad file } int blockCount = di.readInt(); _unknownBlocks = new xVector(); if (blockCount < 16) { for (int i = 0; i < blockCount; i++) { UserDataBlock block = UserDataBlock.loadBlock(di); if (block.id == DATA_SHARE_GROUPS) { loadShareGroup(block.dataInput); } else if (block.id == DATA_GAINLOSS) { loadGainload(block.dataInput); } else if (block.id == DATA_FILTERS_WINDOWS) { if (usingFilterWindowsNew) { continue; // old version, discard this block } bool ok = loadFilters(block.dataInput); if (!ok) { _unknownBlocks.addElement(block); } } else if (block.id == DATA_FILTERS_WINDOWS_NEW) { usingFilterWindowsNew = true; loadFilters(block.dataInput); } else if (block.id == DATA_DRAWING) { loadDrawings(block.dataInput); } else { _unknownBlocks.addElement(block); } } } }
public void setGroup(xVector groups) { //-------------------- mGroups = groups; for (int i = 0; i < mGroups.size(); i++) { stShareGroup g = (stShareGroup)mGroups.elementAt(i); //calcIndexOfGroup(g); } doCalcChanged(); }
override public xVector getTitles() { Share share = getShare(3); xVector v = new xVector(3); if (share != null) { int idx = share.getCursor(); float k, d; StringBuilder sb = Utils.sb; sb.Length = 0; if (mIsFastStochastic) { k = share.pStochasticFastK[idx]; d = share.pStochasticFastD[idx]; int periodK = (int)mContext.mOptStochasticFastKPeriod; int periodD = (int)mContext.mOptStochasticFastSMA; sb.AppendFormat("Fast Stochastic ({0}, {1}) ", periodK, periodD); v.addElement(new stTitle(sb.ToString(), 0xffffffff)); sb.Length = 0; sb.AppendFormat("%K={0:F2}", k); v.addElement(new stTitle(sb.ToString(), C.COLOR_MAGENTA)); sb.Length = 0; sb.AppendFormat("%D={0:F2}", d); v.addElement(new stTitle(sb.ToString(), C.COLOR_ORANGE)); } else { k = share.pStochasticSlowK[idx]; d = share.pStochasticSlowD[idx]; int periodK = (int)mContext.mOptStochasticSlowKPeriod; int smooth = (int)mContext.mOptStochasticSlowKSmoothK; int sma = (int)mContext.mOptStochasticSlowSMA; sb.AppendFormat("Full Stochastic ({0}, {1}, {2}) ", periodK, smooth, sma); v.addElement(new stTitle(sb.ToString(), 0xffffffff)); sb.Length = 0; sb.AppendFormat("%K={0:F2}", k); v.addElement(new stTitle(sb.ToString(), C.COLOR_MAGENTA)); sb.Length = 0; sb.AppendFormat("%D={0:F2}", d); v.addElement(new stTitle(sb.ToString(), C.COLOR_ORANGE)); } } return(v); }
override public xVector getTitles() { xVector v = new xVector(); String s1 = "Banker:" + GlobalData.getData().getValueString(GlobalData.kBankerPeriod_Base_Sens, "50/50/1.5"); String s2 = "HotMoney:" + GlobalData.getData().getValueString(GlobalData.kHotmoneyPeriod_Base_Sens, "40/30/0.7"); v.addElement(new stTitle("(Period/Base/Sens)", themeDark() ? C.COLOR_WHITE : C.COLOR_BLACK)); v.addElement(new stTitle(s1, themeDark()?C.COLOR_RED:C.COLOR_RED)); v.addElement(new stTitle(s2, themeDark()?C.COLOR_YELLOW:C.COLOR_YELLOW)); return(v); }
void showGetDaysForRSRankingDialog() { int defValue = GlobalData.getData().getValueInt("rs_ranking_days"); if (defValue == 0) { defValue = 30; } DlgEnterDay dlg = DlgEnterDay.createDialog("Điểm RS so với VNIndex trong số ngày", defValue); if (dlg.ShowDialog() == DialogResult.OK) { int days = dlg.getDays(); if (days <= 1) { days = 30; } else { GlobalData.getData().setValueInt("rs_ranking_days", days); GlobalData.saveData(); } float[] columnPercents = { 30, 28, 34, 8 }; // code, price, value String[] columnTexts = { "Mã CP", "Giá", "Điểm RS/VNIndex", "" }; int sortType = ShareSortUtils.SORT_RS_RANKING; sortedColumn = columnTexts[2]; _sortType = sortType; xVector sorted = shareGroupToVector(); ShareSortUtils.doSort(sorted, sortType, days); _shareGroup.clear(); for (int i = 0; i < sorted.size(); i++) { Share share = (Share)sorted.elementAt(i); _shareGroup.addCode(share.mCode); } columnTexts[2] = "▼ " + columnTexts[2]; //================== setShareGroup(_shareGroup, sortType); } }
static public void exportGroupToCSV(xVector v, String sortedColumn) { SaveFileDialog saveFileDialog1 = new SaveFileDialog(); saveFileDialog1.Filter = "CSV files (*.csv)|"; saveFileDialog1.Title = "Lưu danh sách mã ra file excel"; if (saveFileDialog1.ShowDialog() == DialogResult.OK) { String filepath = saveFileDialog1.FileName; if (!filepath.Contains(".csv")) { filepath = filepath + ".csv"; } _exportGroupToCSV(v, sortedColumn, filepath); } }
void sortBlocks() { xVector v = new xVector(mUsedBlocks.size()); if (mUsedBlocks.size() < 3) { return; } int i = 0; for (i = 0; i < mUsedBlocks.size(); i++) { v.addElement(mUsedBlocks.elementAt(i)); } mUsedBlocks.removeAllElements(); int smallest = -10000; for (i = 0; i < v.size() - 1; i++) { stBubbleBlock b0 = (stBubbleBlock)v.elementAt(i); stBubbleBlock b1; smallest = i; for (int j = i + 1; j < v.size(); j++) { b1 = (stBubbleBlock)v.elementAt(j); if (b1.point < b0.point) { smallest = j; b0 = b1; } } // swap i <=> smallest v.swap(i, smallest); } for (i = v.size() - 1; i >= 0; i--) { stBubbleBlock b = (stBubbleBlock)v.elementAt(i); //printf("\n===========POINT: %d", b.point); setBlockPosition(b); mUsedBlocks.addElement(b); } }
virtual public int renderTitles(xGraphics g, int x, int y) { xVector v = getTitles(); if (v != null) { for (int i = 0; i < v.size(); i++) { stTitle t = (stTitle)v.elementAt(i); g.setColor(t.color); g.drawString(mFont, t.title, x, y); x += g.getStringWidth(mFont, t.title) + 20; } } return(x); }
public override void onActivate() { base.onActivate(); mTab = new xTabControl(); mTab.setSize(this.Size.Width, this.Size.Height); addControl(mTab); mScreens = new xVector(); screenHome = new ScreenHome(); mScreens.addElement(screenHome); mHomePage = new xTabPage("Bảng giá"); mHomePage.setSize(mTab.getW(), mTab.getH()); mHomePage.addControl(screenHome); /* * xFillBackground v = new xFillBackground(0xffff0000); * v.setSize(mTab.getW(), mTab.getH()); * mHomePage.addControl(v); */ mTab.addPage(mHomePage); mTab.showClosePageButton(true, (int tabIndex) => { if (tabIndex == 0) { return(false); } return(true); }, (int tabIndex) => { if (tabIndex > 0) { mScreens.removeElementAt(tabIndex); } } ); screenHome.setSize(mHomePage.getW(), mHomePage.getH()); screenHome.onActivate(); }
xVector shareGroupToVector() { if (_shareGroup == null) { return(new xVector()); } xVector v = new xVector(); for (int i = 0; i < _shareGroup.getTotal(); i++) { Share share = Context.getInstance().mShareManager.getShare(_shareGroup.getCodeAt(i)); if (share != null) { v.addElement(share); } } return(v); }
public static stPriceboardState getPriceboardStateOfIndexWithSymbol(String symbol) { xVector v = (xVector)dataPriceboard.getValue(kVNIndices); if (v == null) { return(null); } for (int i = 0; i < v.size(); i++) { stPriceboardState ps = (stPriceboardState)v.elementAt(i); if (ps.code.Equals(symbol)) { return(ps); } } return(null); }
static void evalueSortValueVolume(xVector v) { for (int i = 0; i < v.size(); i++) { Share share = (Share)v.elementAt(i); stPriceboardState ps = Context.getInstance().mPriceboard.getPriceboard(share.getShareID()); if (!share.isIndex() && ps != null) { share.mSortParam = ps.total_volume; share.mCompareText = RowNormalShare.volumeToString(ps.total_volume); } else { share.mSortParam = 0; share.mCompareText = "0"; } } }
static void evalueSortValuePE(xVector v) { for (int i = 0; i < v.size(); i++) { Share share = (Share)v.elementAt(i); stCompanyInfo inf = Context.getInstance().mShareManager.getCompanyInfo(share.getShareID()); if (!share.isIndex() && inf != null) { share.mSortParam = inf.PE; share.mCompareText = String.Format("{0:F1}", (inf.PE / 1000.0)); } else { share.mSortParam = 0; share.mCompareText = "0"; } } }
private void OnIdle(object sender, EventArgs e) { m_RenderApi.identityMatrix(eMatrixMode.MATRIXMODE_World); m_RenderApi.begin(0.0f, 0.0f, 0.2f, 1.0f, 1.0f, 0); m_RenderApi.beginScene(); m_RenderApi.applyCamera(m_3DCamera); m_RenderApi.setBlendState(m_DefBlender); xDepthStencilState depStencil = new xDepthStencilState(); m_RenderApi.setDepthStencilState(depStencil); m_RenderApi.GpuShader = m_pModelShader; //xVector3 min = new xVector3(); //xVector3 max = new xVector3(); //m_model.BoundBox(min, max); //xVector3 len = new xVector3(max.x - min.x, max.y - min.y, max.z - min.z); //xVector3 cen = new xVector3(0.5f * max.x + 0.5f * min.x, 0.5f * max.y + 0.5f * min.y, 0.5f * max.z + 0.5f * min.z); //设置矩阵绘制场景 //xMatrix tranMat = new xMatrix(); //xMathlib.Transform(tranMat, -cen.x, -cen.y, -cen.z); //m_RenderApi.setMatrix(tranMat, eMatrixMode.MATRIXMODE_World); //m_scene.Draw(); int timePassed = 20; m_RenderApi.GpuShader = m_SkelShader; //单位矩阵绘制角色 m_RenderApi.identityMatrix(eMatrixMode.MATRIXMODE_World); m_model.update(timePassed); m_model.Draw(); xColorF cl = new xColorF(1.0f , 1.0f , 1.0f ,1.0f ); xMatrix mat = new xMatrix(); mat.identity(); m_RenderApi.setMatrix(mat, eMatrixMode.MATRIXMODE_World); //cl.r = 1.0f; cl.g = 1.0f; cl.b = 0.0f; cl.a = 1.0f; m_RenderApi.applyCamera(m_2DCamera); m_RenderApi.GpuShader = m_pRectShader; xVector destRect = new xVector(); destRect.left = 10; destRect.top = 400; destRect.width = 400; destRect.height = 300; m_RenderApi.setBlendState(m_DefBlender); m_RenderApi.set2DTexture( 1 , m_MaskTexture ); m_RenderApi.drawRectf(m_DiffuseTexture , destRect , cl); m_RenderApi.GpuShader = m_pRectBlankShader; m_Angle += 0.5f; destRect.left = 500; destRect.top = 10; destRect.width = 400; destRect.height = 300; xMatrix rotMat = new xMatrix(); xMathlib.RotateZ(rotMat, m_Angle); xMatrix xformMat = new xMatrix(); xMathlib.XForm_Trans(xformMat , rotMat , new xVector3( (destRect.left + destRect.width/2.0f) , (destRect.top + destRect.height/2.0f) , 0.0f ) ); m_RenderApi.setMatrix(xformMat,eMatrixMode.MATRIXMODE_World); //m_RenderApi.drawRectf(destRect, new xColorF(1.0f, 0.0f, 0.0f, 1.0f) ); m_RenderApi.identityMatrix(eMatrixMode.MATRIXMODE_World); m_RenderApi.findFont("default").drawText("Evolution3D 演示 D3D10",10,50,cl); m_RenderApi.endScene(); m_RenderApi.swapBuffer(); }