/// <summary> /// Called on each bar update event (incoming tick) /// </summary> protected override void OnBarUpdate() { var ed = extdat.getExtraData(0, Bars, CurrentBar); if (ed == null) { return; } double denom = ed.UpTicks + ed.DnTicks; double unsm = 0; if (denom > 0) { unsm = (ed.UpTicks - ed.DnTicks) / denom; } if (lastSeen != CurrentBar) { lastSeen = CurrentBar; osm1 = sm1; osm2 = sm2; } sm1 = osm1 + alpha1 * (unsm - osm1); sm2 = osm2 + alpha2 * (sm1 - osm2); TVI.Set(sm2); }
private TreeViewItem ExpandNodeByNameTVIRecursive(TreeViewItem StartNode, string NodeName, bool Refresh, bool ExpandChildren) { foreach (TreeViewItem TVI in StartNode.Items) { StackPanel head = null; string o = null; if (TVI.Header.ToString() != "DUMMY") //added for stability bc sometimes i was getting issues { head = (StackPanel)TVI.Header; foreach (var child in head.Children) { if (child is Label) { o = (string)((Label)child).Content.ToString(); break; } } } // If searched Node is found by name, refresh and expand if (o != null && o == NodeName) { if (Refresh) { TVI.IsSelected = true; RefreshTreeViewItemChildrens(TVI); } if (ExpandChildren) { TVI.IsExpanded = true; TVI.ExpandSubtree(); } else { TVI.IsExpanded = true; } return(TVI); } if (TVI.Items.Count > 0) { TVI.IsExpanded = true; TreeViewItem vv = ExpandNodeByNameTVIRecursive(TVI, NodeName, Refresh, ExpandChildren); if (vv != null) { return(vv); } TVI.IsExpanded = false; } } return(null); }