Пример #1
0
        private void StoreConfigs()
        {
            maxBarsDefault         = Configs.MaxBars;
            isCheckDataDefault     = Configs.CheckData;
            isFillDataGapsDefault  = Configs.FillInDataGaps;
            isCutBadDataDefault    = Configs.CutBadData;
            isCutSatSunDataDefault = Configs.CutSatSunData;
            isUseEndTimeDefault    = Configs.UseEndTime;
            isUseStartTimeDefault  = Configs.UseStartTime;
            isUseTickDataDefault   = Configs.UseTickData;
            isAutoscanDefault      = Configs.Autoscan;

            isAccountInCurrencyDefault    = Configs.AccountInMoney;
            accountCurrencyDefault        = Configs.AccountCurrency;
            initialAccountDefault         = Configs.InitialAccount;
            leverageDefault               = Configs.Leverage;
            isTradeUntilMarginCallDefault = Configs.TradeUntilMarginCall;
            isUseLogicalGroupsDefault     = Configs.UseLogicalGroups;

            symbolDefault          = Data.Symbol;
            periodDefault          = Data.Period;
            instrPropertiesDefault = Instruments.InstrumentList[symbolDefault].Clone();

            strategyDefault = Data.Strategy.Clone();
        }
Пример #2
0
        private void GenerateDataFile()
        {
            symbol          = "GBPUSD";
            instrProperties = new InstrumentProperties(symbol, InstrumetType.Forex)
            {
                Commission      = 0,
                CommissionScope = CommissionScope.deal,
                CommissionTime  = CommissionTime.openclose,
                Digits          = 5,
                LotSize         = 10000,
                RateToEUR       = 2.3456,
                RateToUSD       = 2.3456,
                Slippage        = 1,
                Spread          = 6,
                SwapLong        = 0.25,
                SwapShort       = 0.25,
                SwapUnit        = ChargeUnit.Points
            };

            int    maxBars = 2 * Configs.MaxBars;
            var    sb      = new StringBuilder(maxBars);
            var    time    = new DateTime(2000, 1, 1, 0, 0, 0);
            double open    = 1.12345;
            int    volume  = 300;

            period = DataPeriod.H4;
            for (int i = 0; i < maxBars; i++)
            {
                time = time.AddMinutes((int)DataPeriod.H1);
                int multiplier = (time.DayOfYear % 2 == 0) ? 1 : -1;
                open = open + multiplier * 0.00005;
                double high  = open + 0.00025;
                double low   = open - 0.00025;
                double close = open + 0.00005;
                volume = volume + multiplier * 5;

                sb.AppendLine(string.Format("{0} {1} {2} {3} {4} {5}",
                                            time.ToString("yyyy-MM-dd HH:mm:ss"),
                                            open.ToString("F5"),
                                            high.ToString("F5"),
                                            low.ToString("F5"),
                                            close.ToString("F5"),
                                            volume));
            }

            dataFile = sb.ToString();
        }
        private void StoreConfigs()
        {
            maxBarsDefault = Configs.MaxBars;
            isCheckDataDefault = Configs.CheckData;
            isFillDataGapsDefault = Configs.FillInDataGaps;
            isCutBadDataDefault = Configs.CutBadData;
            isCutSatSunDataDefault = Configs.CutSatSunData;
            isUseEndTimeDefault = Configs.UseEndTime;
            isUseStartTimeDefault = Configs.UseStartTime;
            isUseTickDataDefault = Configs.UseTickData;
            isAutoscanDefault = Configs.Autoscan;

            isAccountInCurrencyDefault = Configs.AccountInMoney;
            accountCurrencyDefault = Configs.AccountCurrency;
            initialAccountDefault = Configs.InitialAccount;
            leverageDefault = Configs.Leverage;
            isTradeUntilMarginCallDefault = Configs.TradeUntilMarginCall;
            isUseLogicalGroupsDefault = Configs.UseLogicalGroups;

            symbolDefault = Data.Symbol;
            periodDefault = Data.Period;
            instrPropertiesDefault = Instruments.InstrumentList[symbolDefault].Clone();

            strategyDefault = Data.Strategy.Clone();
        }
        private void GenerateDataFile()
        {
            symbol = "GBPUSD";
            instrProperties = new InstrumentProperties(symbol, InstrumetType.Forex)
                {
                    Commission = 0,
                    CommissionScope = CommissionScope.deal,
                    CommissionTime = CommissionTime.openclose,
                    Digits = 5,
                    LotSize = 10000,
                    RateToEUR = 2.3456,
                    RateToUSD = 2.3456,
                    Slippage = 1,
                    Spread = 6,
                    SwapLong = 0.25,
                    SwapShort = 0.25,
                    SwapUnit = ChargeUnit.Points
                };

            int maxBars = 2*Configs.MaxBars;
            var sb = new StringBuilder(maxBars);
            var time = new DateTime(2000, 1, 1, 0, 0, 0);
            double open = 1.12345;
            int volume = 300;
            period = DataPeriod.H4;
            for (int i = 0; i < maxBars; i++)
            {
                time = time.AddMinutes((int) DataPeriod.H1);
                int multiplier = (time.DayOfYear%2 == 0) ? 1 : -1;
                open = open + multiplier*0.00005;
                double high = open + 0.00025;
                double low = open - 0.00025;
                double close = open + 0.00005;
                volume = volume + multiplier*5;

                sb.AppendLine(string.Format("{0} {1} {2} {3} {4} {5}",
                                            time.ToString("yyyy-MM-dd HH:mm:ss"),
                                            open.ToString("F5"),
                                            high.ToString("F5"),
                                            low.ToString("F5"),
                                            close.ToString("F5"),
                                            volume));
            }

            dataFile = sb.ToString();
        }
Пример #5
0
 public void addInstrumentProperty(CVTerm value)
 {
     InstrumentProperties.Add(value);
 }
Пример #6
0
            static InstrumentProperties()
            {
                Positive = new InstrumentProperties() { State = 1, Name = "是" };
                Negative = new InstrumentProperties() { State = 2, Name = "否" };

                InstruProes = new Dictionary<int, InstrumentProperties>();
                InstruProes.Add(Positive.State, Positive);
                InstruProes.Add(Negative.State, Negative);
            }
Пример #7
0
        /// <summary>
        ///     LoadInstrument
        /// </summary>
        private void LoadInstrument()
        {
            const string symbol = "EURUSD";
            const DataPeriod dataPeriod = DataPeriod.D1;

            var instrProperties = new InstrumentProperties(symbol);
            var instrument = new Instrument(instrProperties, (int) dataPeriod);
            int loadResourceData = instrument.LoadResourceData();

            if (instrument.Bars <= 0 || loadResourceData != 0) return;

            Data.InstrProperties = instrProperties.Clone();
            Data.Bars = instrument.Bars;
            Data.Period = dataPeriod;
            Data.Time = new DateTime[Data.Bars];
            Data.Open = new double[Data.Bars];
            Data.High = new double[Data.Bars];
            Data.Low = new double[Data.Bars];
            Data.Close = new double[Data.Bars];
            Data.Volume = new int[Data.Bars];

            for (int bar = 0; bar < Data.Bars; bar++)
            {
                Data.Open[bar] = instrument.Open(bar);
                Data.High[bar] = instrument.High(bar);
                Data.Low[bar] = instrument.Low(bar);
                Data.Close[bar] = instrument.Close(bar);
                Data.Time[bar] = instrument.Time(bar);
                Data.Volume[bar] = instrument.Volume(bar);
            }

            Data.IsData = true;
        }