public void LostFocusValidateOnLostFocusWhenIsRequiredChangesMakingInputInvalid(string text, string infoMessage)
        {
            this.CanValueBeNullBox.Checked = true;
            var boxes     = this.LostFocusValidateOnLostFocusBoxes;
            var doubleBox = boxes.DoubleBox;

            doubleBox.Text = text;
            this.LoseFocusButton.Click();

            Assert.AreEqual(false, doubleBox.HasValidationError());
            Assert.AreEqual(text, doubleBox.Text);
            Assert.AreEqual(text, this.ViewModelValueBox.Text);
            Assert.AreEqual(TextSource.UserInput, doubleBox.TextSource());

            this.CanValueBeNullBox.Checked = false;
            this.LoseFocusButton.Click();
            if (infoMessage != null)
            {
                Assert.AreEqual(true, doubleBox.HasValidationError());
                Assert.AreEqual(infoMessage, doubleBox.ValidationError());
                Assert.AreEqual(RequiredData.GetErrorMessage(infoMessage), boxes.ErrorBlock.Text);
                Assert.AreEqual(text, doubleBox.Text);
                Assert.AreEqual(text, this.ViewModelValueBox.Text);
                Assert.AreEqual(TextSource.UserInput, doubleBox.TextSource());
            }
            else
            {
                this.Window.WaitWhileBusy();
                Assert.AreEqual(false, doubleBox.HasValidationError());
                Assert.AreEqual(text, doubleBox.Text);
                Assert.AreEqual(text, this.ViewModelValueBox.Text);
                Assert.AreEqual(TextSource.UserInput, doubleBox.TextSource());
            }
        }
        public void LostFocusValidateOnLostFocus(RequiredData data)
        {
            this.CanValueBeNullBox.Checked = data.CanValueBeNull;

            var boxes     = this.LostFocusValidateOnLostFocusBoxes;
            var doubleBox = boxes.DoubleBox;

            doubleBox.Text = data.Text;
            Assert.AreEqual(false, doubleBox.HasValidationError());
            Assert.AreEqual(data.Text, doubleBox.Text);
            Assert.AreEqual("0", this.ViewModelValueBox.Text);
            Assert.AreEqual(TextSource.UserInput, doubleBox.TextSource());

            this.LoseFocusButton.Click();
            if (data.ExpectedInfoMessage != null)
            {
                Assert.AreEqual(true, doubleBox.HasValidationError());
                Assert.AreEqual(data.ExpectedInfoMessage, doubleBox.ValidationError());
                Assert.AreEqual(data.ErrorMessage, boxes.ErrorBlock.Text);
                Assert.AreEqual(data.Text, doubleBox.Text);
                Assert.AreEqual(data.Expected, this.ViewModelValueBox.Text);
                Assert.AreEqual(TextSource.UserInput, doubleBox.TextSource());
            }
            else
            {
                Assert.AreEqual(false, doubleBox.HasValidationError());
                Assert.AreEqual(data.Text, doubleBox.Text);
                Assert.AreEqual(data.Text, this.ViewModelValueBox.Text);
                Assert.AreEqual(TextSource.UserInput, doubleBox.TextSource());
            }
        }
        public void PropertyChangedWhenNotLocalized(RequiredData data)
        {
            this.CultureBox.Select("ja-JP");

            var boxes     = this.PropertyChangedValidateOnPropertyChangedBoxes;
            var doubleBox = boxes.DoubleBox;

            this.CanValueBeNullBox.Checked = data.CanValueBeNull;
            doubleBox.Text = data.Text;
            if (data.ExpectedInfoMessage != null)
            {
                this.Window.WaitWhileBusy();
                Assert.AreEqual(true, doubleBox.HasValidationError());
                Assert.AreEqual(data.ErrorMessage, boxes.ErrorBlock.Text);
                Assert.AreEqual(data.ExpectedInfoMessage, doubleBox.ValidationError());
                Assert.AreEqual(data.Text, doubleBox.Text);
                Assert.AreEqual(data.Expected, this.ViewModelValueBox.Text);
                Assert.AreEqual(TextSource.UserInput, doubleBox.TextSource());
            }
            else
            {
                Assert.AreEqual(false, doubleBox.HasValidationError());
                Assert.AreEqual(data.Text, doubleBox.Text);
                Assert.AreEqual(data.Expected, this.ViewModelValueBox.Text);
                Assert.AreEqual(TextSource.UserInput, doubleBox.TextSource());
            }
        }
        public void OnInit()
        {
            //set the asset details filename
            AssetDetailsFile = @"C:\ForexData\Assets.csv";

            RequiredData.Add(60, 200);

            TradeAssetList.Add("TEST1");

            MinBars = 30;

            OptimiseParameters.Add(new OptimiseParameter("Period1", 3, 5, 1));
            OptimiseParameters.Add(new OptimiseParameter("Period2", 15, 17, 1));
            OptimiseParameters.Add(new OptimiseParameter("JumpFactor", 1.3, 1.6, 0.1));

            ExternalFeatures.Add(new ExternalFeatureData(60, @"C:\\ForexData\\ShareData\\TEST1_m60_test_strategy_f.bin",
                                                         new string[] { "SMA_4", "SMA_20" }));
        }
Exemplo n.º 5
0
        public void OnInit()
        {
            //set the asset details filename
            AssetDetailsFile = @"C:\ForexData\Assets.csv";

            expectedBar1_1H          = new Bar();
            expectedBar1_1H.OpenTime = DateTime.ParseExact("2017-09-15 00:00:00", "yyyy-MM-dd HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture);
            expectedBar1_1H.BidOpen  = 1.19207f;
            expectedBar1_1H.BidClose = 1.19075f;
            expectedBar1_1H.BidHigh  = 1.19232f;
            expectedBar1_1H.BidLow   = 1.19067f;
            expectedBar1_1H.AskOpen  = 1.19219f;
            expectedBar1_1H.AskClose = 1.19088f;
            expectedBar1_1H.AskHigh  = 1.19244f;
            expectedBar1_1H.AskLow   = 1.1908f;
            expectedBar1_1H.Volume   = 9217;

            RequiredData.Add(60, 200);

            TradeAssetList.Add("TEST1");
        }
        public void OnInit()
        {
            //set the asset details filename
            AssetDetailsFile = System.IO.Path.Combine("data_files", "AssetsDemo.csv");

            //Add in the 60 min timeframe
            RequiredData.Add(60, 211);

            //select the assets to trade
            TradeAssetList.AddRange(new string[] { "EURUSD", "EURJPY" });


            //Only take trade if spread is less than 4 pips
            SpreadFilter = 4;

            MinBars = 211;

            Cpus = 12;
            ReduceCorrelatedParams = new ReduceCorrelatedParams(80, 0.75, 1.0);
            ReduceByRankParams     = new ReduceByRankParams(110, 1.0);

            TradeDataLabels = new string[] { "Period1", "Period2", "JumpFactor", "jumpSma", "volatilityLogMA12", "volumeLogMA12", "atrNow", "atrTotal", "lastMove", "bbRange" };

            OptimiseParameters.Add(new OptimiseParameter("Period1", 3, 5, 1));
            OptimiseParameters.Add(new OptimiseParameter("Period2", 14, 18, 1));
            OptimiseParameters.Add(new OptimiseParameter("JumpFactor", 1.2, 1.8, 0.1));

            //buildpythonfeatures 60 USDJPY C:\ForexData\Assets.csv C:\ForexData\ShareData\[ASSET]_m60_Share_f.bin ATR(3,close,high,low);ATR(4,close,high,low);ATR(5,close,high,low);ATR(100,close,high,low);VOLATILITY_LOG_MA(12,high,low);VOLUME_LOG_MA(12,volume);BBANDS(20,1.8,1,close);BBANDS(20,1.8,2,close)

            /*ExternalFeatures.Add(new ExternalFeatureData(60, @"C:\\ForexData\\ShareData\\[ASSET]_m60_Share_f.bin",
             *  new string[] { "ATR(3, close, high, low)", "ATR(4, close, high, low)", "ATR(5, close, high, low)", "ATR(100, close, high, low)",
             *          "VOLATILITY_LOG_MA(12, high, low)", "VOLUME_LOG_MA(12, volume)",
             *          "BBANDS(20, 1.8, 1, close)", "BBANDS(20, 1.8, 2, close)" }));
             */
            ExternalFeatures.Add(new ExternalFeatureData(60, System.IO.Path.Combine(new string[] { "data_files", "share_data", "[ASSET]_m60_Share_f.bin" }),
                                                         new string[] { "ATR_3", "ATR_4", "ATR_5", "ATR_100",
                                                                        "VOLATILITY_LOG_MA_12", "VOLUME_LOG_MA_12",
                                                                        "BBANDS_UP", "BBANDS_LOW" }));
        }