Ejemplo n.º 1
0
        void selectOneDeselectResetOthers(ToolStripItemCollection allDropDownItems, object sender, List <string> groupLabeledTextboxes)
        {
            MenuItemLabeledTextBox mniltbToSelect = sender as MenuItemLabeledTextBox;

            if (mniltbToSelect == null)
            {
                string msg = "SENDER_MUSTBE_LabeledTextBoxControl_GOT " + mniltbToSelect.GetType();
                Assembler.PopupException(msg);
                return;
            }

            foreach (ToolStripItem eachMni in allDropDownItems)
            {
                MenuItemLabeledTextBox eachMniAsLTB = eachMni as MenuItemLabeledTextBox;
                if (eachMniAsLTB == null)
                {
                    continue;
                }
                if (eachMniAsLTB == mniltbToSelect)
                {
                    continue;
                }
                if (groupLabeledTextboxes.Contains(eachMniAsLTB.Name) == false)
                {
                    continue;
                }
                eachMniAsLTB.InputFieldValue = "";
                //eachMniAsLTB.Selected = false;
                eachMniAsLTB.BackColor = Color.White;
                //eachMniAsLTB.ForeColor = Color.Black;
            }
            //mniltbNameToSelect.Selected = true;
            mniltbToSelect.BackColor = Color.Gainsboro;
            //mniltbNameToSelect.ForeColor = Color.White;
        }
Ejemplo n.º 2
0
        void mnitlbAll_UserTyped(object sender, LabeledTextBoxUserTypedArgs e)
        {
            try {
                string userTyped = e.StringUserTyped;
                int    userTypedInteger;
                bool   validInteger = Int32.TryParse(userTyped, out userTypedInteger);
                if (validInteger == false)
                {
                    e.HighlightTextWithRed = true;
                    return;
                }
                if (userTypedInteger <= 0)
                {
                    e.HighlightTextWithRed = true;
                    return;
                }
                MenuItemLabeledTextBox mniTypedAsLTB = sender as MenuItemLabeledTextBox;
                if (mniTypedAsLTB == null)
                {
                    string msg = "SENDER_MUSTBE_LabeledTextBoxControl_GOT " + mniTypedAsLTB.GetType();
                    Assembler.PopupException(msg);
                    return;
                }

                BarScale barScaleTyped;
                switch (mniTypedAsLTB.Name)
                {
                case "mnitlbMinutes":           barScaleTyped = BarScale.Minute;                break;

                case "mnitlbHourly":            barScaleTyped = BarScale.Hour;                  break;

                case "mnitlbDaily":                     barScaleTyped = BarScale.Daily;                 break;

                case "mnitlbWeekly":            barScaleTyped = BarScale.Weekly;                break;

                case "mnitlbMonthly":           barScaleTyped = BarScale.Monthly;               break;

                //case "mnitlbQuarterly":		barScaleTyped = BarScale.Quarterly;		break;
                case "mnitlbYearly":            barScaleTyped = BarScale.Yearly;                break;

                default:
                    string msg = "SENDER_UNEXPECTED_NAME " + mniTypedAsLTB.Name;
                    Assembler.PopupException(msg);
                    return;
                }

                this.selectOneDeselectResetOthers(this.DdbBars.DropDownItems, mniTypedAsLTB, this.GroupScaleLabeledTextboxes);

                BarScaleInterval scaleIntervalUserEntered = new BarScaleInterval(barScaleTyped, userTypedInteger);
                ContextChart     context = this.ChartFormManager.ContextCurrentChartOrStrategy;
                context.ScaleInterval = scaleIntervalUserEntered;
                this.ChartFormManager.PopulateSelectorsFromCurrentChartOrScriptContextLoadBarsSaveBacktestIfStrategy("mniltbAll_UserTyped");
            } catch (Exception ex) {
                Assembler.PopupException("mniltbMinutes_UserTyped()", ex);
            }
        }
        void mniltbDelay_UserTyped(object sender, LabeledTextBoxUserTypedArgs e)
        {
            MenuItemLabeledTextBox mnilbDelay = sender as MenuItemLabeledTextBox;
            string typed     = e.StringUserTyped;
            int    typedMsec = this.DataSnapshot.TreeRefreshDelayMsec;
            bool   parsed    = Int32.TryParse(typed, out typedMsec);

            if (parsed == false)
            {
                mnilbDelay.InputFieldValue = this.DataSnapshot.TreeRefreshDelayMsec.ToString();
                mnilbDelay.TextRed         = true;
                return;
            }
            this.DataSnapshot.TreeRefreshDelayMsec = typedMsec;
            mnilbDelay.TextRed = false;
            this.DataSnapshotSerializer.Serialize();
            e.RootHandlerShouldCloseParentContextMenuStrip = true;
        }
        ContextScript ScriptContextFromLabeledTextBoxTag(object sender)
        {
            // rightClick => [Default] => Duplicate To => onKeyPress()
            // TextBox <= LabeledTextBox[DuplicateTo] <= ParentControlHost.Owner[Default] <= Tag[ScriptContext"DEFAULT"]
//			TextBox txt = sender as TextBox;
//			LabeledTextBox lblTxt = txt.Parent as LabeledTextBox;
//			ToolStripControlHost mniOpening = lblTxt.ParentToolStripControlHost;

            MenuItemLabeledTextBox mniltbScriptContextRenameTo = sender as MenuItemLabeledTextBox;
            ContextMenuStrip       mniParent = mniltbScriptContextRenameTo.Owner as ContextMenuStrip;                   // found in debugger
            ContextScript          ctxToLoad = mniParent.Tag as ContextScript;

            if (ctxToLoad == null)
            {
                string msg = "mniltb[" + mniltbScriptContextRenameTo.Name + "].Tag[" + mniltbScriptContextRenameTo.Tag + "] is not a ScriptContext";
                Assembler.PopupException(msg);
                return(null);
            }
            return(ctxToLoad);
        }
Ejemplo n.º 5
0
        public void PropagateContextScriptToLTB(ContextScript ctxScript)
        {
            if (ctxScript.ScaleInterval.Scale == BarScale.Unknown)
            {
                string msg = "TODO: figure out why deserialized / userSelected strategyClicked[" + this.ChartFormManager.Executor.Strategy
                             + "].ScriptContextCurrent.ScaleInterval[" + ctxScript.ScaleInterval + "] has BarScale.Unknown #4";
                Assembler.PopupException(msg);
            }
            else
            {
                MenuItemLabeledTextBox mnitlbForScale = null;
                switch (ctxScript.ScaleInterval.Scale)
                {
                case BarScale.Minute:           mnitlbForScale = this.mnitlbMinutes; break;

                case BarScale.Hour:                     mnitlbForScale = this.mnitlbDaily; break;

                case BarScale.Daily:            mnitlbForScale = this.mnitlbHourly; break;

                case BarScale.Weekly:           mnitlbForScale = this.mnitlbWeekly; break;

                case BarScale.Monthly:          mnitlbForScale = this.mnitlbMonthly; break;

                //case BarScale.Quarterly		mnitlbForScale = this.mnitlbQuarterly; break;
                case BarScale.Yearly:           mnitlbForScale = this.mnitlbYearly; break;

                default:
                    string msg = "SCALE_UNHANDLED_NO_TEXTBOX_TO_POPULATE " + ctxScript.ScaleInterval.Scale;
                    Assembler.PopupException(msg);
                    break;
                }

                if (mnitlbForScale != null)
                {
                    mnitlbForScale.InputFieldValue = ctxScript.ScaleInterval.Interval.ToString();
                    mnitlbForScale.BackColor       = Color.Gainsboro;
                }
            }

            this.mniShowBarRange.Checked = ctxScript.ShowRangeBar;
            switch (ctxScript.DataRange.Range)
            {
            case BarRange.AllData:
                this.mnitlbShowLastBars.InputFieldValue = "";
                this.mnitlbShowLastBars.BackColor       = Color.White;
                break;

            case BarRange.DateRange:
                this.ChartControl.RangeBar.ValueMin     = ctxScript.DataRange.StartDate;
                this.ChartControl.RangeBar.ValueMax     = ctxScript.DataRange.EndDate;
                this.mnitlbShowLastBars.InputFieldValue = "";
                this.mnitlbShowLastBars.BackColor       = Color.White;
                break;

            case BarRange.RecentBars:
                this.mnitlbShowLastBars.InputFieldValue = ctxScript.DataRange.RecentBars.ToString();
                this.mnitlbShowLastBars.BackColor       = Color.Gainsboro;
                //this.mniShowBarRange.Checked = false;
                break;

            default:
                string msg = "DATE_RANGE_UNHANDLED_RECENT_TIMEUNITS_NYI " + ctxScript.DataRange;
                Assembler.PopupException(msg);
                break;
            }
            this.ChartControl.RangeBarCollapsed = !this.mniShowBarRange.Checked;

            switch (ctxScript.PositionSize.Mode)
            {
            case PositionSizeMode.SharesConstantEachTrade:
                this.mnitlbPositionSizeSharesConstantEachTrade.InputFieldValue = ctxScript.PositionSize.SharesConstantEachTrade.ToString();
                this.mnitlbPositionSizeSharesConstantEachTrade.BackColor       = Color.Gainsboro;
                this.mnitlbPositionSizeDollarsEachTradeConstant.BackColor      = Color.White;
                break;

            case PositionSizeMode.DollarsConstantForEachTrade:
                this.mnitlbPositionSizeDollarsEachTradeConstant.InputFieldValue = ctxScript.PositionSize.DollarsConstantEachTrade.ToString();
                this.mnitlbPositionSizeDollarsEachTradeConstant.BackColor       = Color.Gainsboro;
                this.mnitlbPositionSizeSharesConstantEachTrade.BackColor        = Color.White;
                break;

            default:
                string msg = "POSITION_SIZE_UNHANDLED_NYI " + ctxScript.PositionSize.Mode;
                Assembler.PopupException(msg);
                break;
            }

            DataSourcesForm.Instance.DataSourcesTreeControl.SelectSymbol(ctxScript.DataSourceName, ctxScript.Symbol);
            StrategiesForm.Instance.StrategiesTreeControl.SelectStrategy(this.ChartFormManager.Executor.Strategy);
            this.PropagateSelectorsDisabledIfStreamingForCurrentChart();
        }