예제 #1
0
        void mnitlbShowLastBars_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;
                }

                ContextChart context = this.ChartFormManager.ContextCurrentChartOrStrategy;
                context.DataRange = (userTypedInteger == 0) ? new BarDataRange() : new BarDataRange(userTypedInteger);

                this.mnitlbShowLastBars.BackColor = Color.Gainsboro;
                this.mniShowBarRange.Checked      = false;
                this.mniShowBarRange_Click(sender, null);

                this.ChartFormManager.PopulateSelectorsFromCurrentChartOrScriptContextLoadBarsSaveBacktestIfStrategy("mnitlbShowLastBars_UserTyped");
            } catch (Exception ex) {
                Assembler.PopupException("mnitlbShowLastBars_UserTyped()", ex);
            }
        }
예제 #2
0
        void mnitlbPositionSizeDollarsConstantEachTrade_UserTyped(object sender, LabeledTextBoxUserTypedArgs e)
        {
            try {
                string userTyped = e.StringUserTyped;
                double userTypedDouble;
                bool   validInteger = Double.TryParse(userTyped, out userTypedDouble);
                if (validInteger == false)
                {
                    e.HighlightTextWithRed = true;
                    return;
                }
                if (userTypedDouble <= 0)
                {
                    e.HighlightTextWithRed = true;
                    return;
                }

                ContextScript context = this.ChartFormManager.Strategy.ScriptContextCurrent;
                context.PositionSize = new PositionSize(PositionSizeMode.DollarsConstantForEachTrade, userTypedDouble);

                this.selectOneDeselectResetOthers(this.DdbBacktest.DropDownItems, sender, this.GroupPositionSizeLabeledTextboxes);

                this.ChartFormManager.PopulateSelectorsFromCurrentChartOrScriptContextLoadBarsSaveBacktestIfStrategy("mnitlbPositionSizeDollarsEachTradeConstant_UserTyped");
            } catch (Exception ex) {
                Assembler.PopupException("mnitlbPositionSizeDollarsEachTradeConstant_UserTyped()", ex);
            }
        }
        void mniltbDataSourceAddNew_UserTyped(object sender, LabeledTextBoxUserTypedArgs e)
        {
            string     newDataSourceName = e.StringUserTyped;
            DataSource foundWithSameName = this.dataSourceRepository.ItemFind(newDataSourceName);

            if (foundWithSameName != null)
            {
                Assembler.InstanceInitialized.StatusReporter.DisplayStatus("DataSource[" + newDataSourceName + "] already exists");
                this.tree.EnsureModelVisible(foundWithSameName);
                this.tree.SelectObject(foundWithSameName);
                e.HighlightTextWithRed = true;
                //e.RootHandlerShouldCloseParentContextMenuStrip = true;
                return;
            }
            // literally: create, add, make it visible, emulate a click on the newborn, popup editor
            var dataSourceNewborn = new DataSource(newDataSourceName);

            this.dataSourceRepository.ItemAdd(dataSourceNewborn, this);
            // all the rest was already done in dataSourceRepository.ItemAdd() => dataSourceRepository_OnDataSourceAdded(),
//			this.populateDataSourcesIntoTreeListView();
//			this.tree.EnsureModelVisible(foundWithSameName);
//			this.tree.SelectObject(foundWithSameName);
//			this.SelectSymbol(ds.Name);
            // but now user has selected the static provider and I want the provider's icon in the tree
            this.populateIconForDataSource(dataSourceNewborn);
            this.RaiseOnDataSourceEditClicked();                //ds
        }
예제 #4
0
        void mniltbFolderCreate_UserTyped(object sender, LabeledTextBoxUserTypedArgs e)
        {
            string msig      = "StrategiesTree.mniltbFolderCreate_UserTyped(): ";
            string folderNew = e.StringUserTyped;

            try {
                if (string.IsNullOrEmpty(folderNew))
                {
                    folderNew = strategyRepository.GenerateFolderName();
                }
                strategyRepository.FolderAdd(folderNew, false);
                e.RootHandlerShouldCloseParentContextMenuStrip = true;
            } catch (Exception ex) {
                statusReporter.PopupException(ex);
                return;
            }

            this.FolderSelected = folderNew;
            this.tree.SetObjects(this.strategyRepository.AllFoldersAvailable);
            this.tree.SelectObject(folderNew, true);             // does it work??
            //var olvStrategy = this.treeListView.FindItemWithText(strategyNew.Name, true, 0); // finds first occurency, not what I've inserted!
            //var olvStrategy = this.tree.ModelToItem(folderNew);
            //this.tree.EditSubItem(olvStrategy as OLVListItem, 0);

            this.RaiseOnFolderCreated(msig);
        }
        void mniltbScriptContextNewWithDefaults_UserTyped(object sender, LabeledTextBoxUserTypedArgs e)
        {
            string newScriptContextName = e.StringUserTyped;

            this.Strategy.ScriptContextAdd(newScriptContextName);
            this.RaiseOnScriptContextCreated(newScriptContextName);
            this.ctxParameterBags_Opening(this, null);
        }
        void mniltbScriptContextRenameTo_UserTyped(object sender, LabeledTextBoxUserTypedArgs e)
        {
            string        scriptContextNewName  = e.StringUserTyped;
            ContextScript scriptContextToRename = this.ScriptContextFromMniTag(sender);

            this.Strategy.ScriptContextRename(scriptContextToRename, scriptContextNewName);
            this.RaiseOnScriptContextRenamed(scriptContextNewName);
            this.ctxParameterBags_Opening(this, null);
        }
        void mniltbScriptContextDuplicateTo_UserTyped(object sender, LabeledTextBoxUserTypedArgs e)
        {
            string        dupeScriptContextName    = e.StringUserTyped;
            ContextScript scriptContextToDuplicate = this.ScriptContextFromMniTag(sender);

            this.Strategy.ScriptContextAdd(dupeScriptContextName, scriptContextToDuplicate);
            this.RaiseOnScriptContextDuplicated(dupeScriptContextName);
            this.ctxParameterBags_Opening(this, null);
        }
예제 #8
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 mniltbDataSourceRename_UserTyped(object sender, LabeledTextBoxUserTypedArgs e)
 {
     if (this.DataSourceSelected == null)
     {
         Assembler.PopupException("mniltbDataSourceRename_UserTyped(): this.DataSourceSelected=null");
         return;
     }
     this.dataSourceRepository.ItemRename(this.DataSourceSelected, e.StringUserTyped, this);
     e.RootHandlerShouldCloseParentContextMenuStrip = true;
 }
예제 #10
0
        public void WorkspaceCloneTo_UserTyped(object sender, LabeledTextBoxUserTypedArgs e)
        {
            string workspaceCloneToName = e.StringUserTyped;

//			ScriptContext scriptContextToRename = this.ScriptContextFromMniTag(sender);
//			this.Strategy.ScriptContextRename(scriptContextToRename, workspaceCloneToName);
//			this.RaiseOnScriptContextRenamed(workspaceCloneToName);
//			this.ctxParameterBags_Opening(this, null);
            Assembler.PopupException("NotImplementedException WorkspaceCloneTo_UserTyped(" + e.StringUserTyped + ")");
        }
 void mniltbSymbolAdd_UserTyped(object sender, LabeledTextBoxUserTypedArgs e)
 {
     //this.dataSourceRepository.SymbolAdd(this.DataSourceSelected, e.StringUserTyped);
     if (this.DataSourceSelected == null)
     {
         Assembler.PopupException("mniltbSymbolAdd_UserTyped(): this.DataSourceSelected=null");
         return;
     }
     this.dataSourceRepository.SymbolAdd(this.DataSourceSelected, e.StringUserTyped, this);
     this.SelectSymbol(this.DataSourceSelected.Name, e.StringUserTyped);
     e.RootHandlerShouldCloseParentContextMenuStrip = true;
 }
        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;
        }
예제 #13
0
        void mniltbFolderRename_UserTyped(object sender, LabeledTextBoxUserTypedArgs e)
        {
            string stringUserTyped = e.StringUserTyped;

            if (this.FolderSelected == stringUserTyped)
            {
                return;
            }
            try {
                stringUserTyped = this.strategyRepository.FolderRenameModifyNameTillNoException(this.FolderSelected, stringUserTyped);
                this.strategyRepository.FolderRename(this.FolderSelected, stringUserTyped);
                this.FolderSelected = stringUserTyped;
                this.tree.SetObjects(this.strategyRepository.AllFoldersAvailable);
                this.tree.RebuildAll(true);
                e.RootHandlerShouldCloseParentContextMenuStrip = true;
            } catch (Exception ex1) {
                e.HighlightTextWithRed = true;
                this.statusReporter.PopupException(ex1);
            }
        }
        void mnitlbAll_UserTyped(object sender, LabeledTextBoxUserTypedArgs e)
        {
            string typed = e.StringUserTyped;
            var    senderMinMaxCurrentStep = sender as MenuItemLabeledTextBox;

            try {
                decimal parsed = Decimal.Parse(typed);
                switch (senderMinMaxCurrentStep.Name)
                {
                case "mniltbValueMin":                  this.ValueMin = parsed; break;

                case "mniltbValueMax":                  this.ValueMax = parsed; break;

                case "mniltbValueCurrent":
                    if (parsed < this.ValueMin)
                    {
                        this.ValueCurrent      = this.ValueMin;
                        e.HighlightTextWithRed = true;
                        return;
                    }
                    if (parsed > this.ValueMax)
                    {
                        this.ValueCurrent      = this.ValueMax;
                        e.HighlightTextWithRed = true;
                        return;
                    }
                    this.ValueCurrent = parsed;
                    this.ValueCurrentChanged(this, EventArgs.Empty);
                    this.ctxSlider_Opening(this, null);                                         // not sure how textbox gets multiline input inside!!! may be this will help as for ScriptContexts
                    break;

                case "mniltbValueStep":                 this.ValueStep = parsed; break;

                default:        Assembler.PopupException("mnitlbAll_UserTyped(): add handler for senderMinMaxCurrentStep.Name[" + senderMinMaxCurrentStep.Name + "]"); break;
                }
            } catch (Exception ex) {
                e.HighlightTextWithRed = true;
            }
        }
예제 #15
0
        void mniltbStrategyDuplicateTo_UserTyped(object sender, LabeledTextBoxUserTypedArgs e)
        {
            string msig = "StrategiesTree.mniStrategyDuplicate_Click(): ";

            if (this.FolderSelected == null)
            {
                string msg = "this.FolderSelected==null; please set mniFolderCreate.Enabled=false when right-clicked not on the folder";
                statusReporter.PopupException(new Exception(msig + msg));
                return;
            }
            if (this.StrategySelected == null)
            {
                string msg = "this.StrategySelected==null";
                statusReporter.PopupException(new Exception(msig + msg));
                return;
            }

            Strategy strategyNew           = null;
            string   strategyNameUserTyped = e.StringUserTyped;

            try {
                strategyNew = strategyRepository.StrategyDuplicate(this.StrategySelected, strategyNameUserTyped);
            } catch (Exception ex) {
                statusReporter.PopupException(ex);
                return;
            } finally {
                this.tree.RebuildAll(true);
            }

            this.tree.SelectObject(strategyNew, true);             // does it work??
            this.StrategySelected = strategyNew;
            //var olvStrategy = this.treeListView.FindItemWithText(strategyNew.Name, true, 0); // finds first occurency, not what I've inserted!
            //var olvStrategy = this.tree.ModelToItem(strategyNew);
            //this.tree.EditSubItem(olvStrategy as OLVListItem, 0);
            e.RootHandlerShouldCloseParentContextMenuStrip = true;

            this.RaiseOnStrategyDuplicated(msig);
        }
예제 #16
0
        public void WorkspaceRenameTo_UserTyped(object sender, LabeledTextBoxUserTypedArgs e)
        {
            string workspaceRenameToName = e.StringUserTyped;

            Assembler.PopupException("NotImplementedException WorkspaceRenameTo_UserTyped(" + e.StringUserTyped + ")");
        }
예제 #17
0
 void mniltbCsvSeparator_UserTyped(object sender, LabeledTextBoxUserTypedArgs e)
 {
     this.dataSnapshot.CsvDelimiter = e.StringUserTyped;
     this.dataSnapshotSerializer.Serialize();
     this.stepsAllparseFromDataSnapshot();
 }