Exemplo n.º 1
1
        private int GetClosestIndexByDate(MarketSeries series, DateTime time)
        {
            var lastIndex = series.Close.Count - 1;

            if (time >= series.OpenTime[lastIndex])
                return lastIndex;

            var timeDifference = time.Subtract(series.OpenTime[0]);

            int index = 0;

            for (int i = 0; i < lastIndex - 1; i++)
            {
                if (time < series.OpenTime[i])
                    break;
                var currDiff = time.Subtract(series.OpenTime[i]);

                if (currDiff < timeDifference)
                {
                    timeDifference = currDiff;
                    index = i;
                }

            }

            return index;
        }
Exemplo n.º 2
1
 protected override void Initialize()
 {
     thisCandle = MarketSeries.Open.Count - 1;
     startCandle = thisCandle;
     minuut = MarketData.GetSeries(TimeFrame.Minute);
     for (int i = 1; i <= startCandle; i++)
         oldCows(i);
 }
Exemplo n.º 3
0
 public FractalService(MarketSeries marketSeries, int period)
 {
     this.period        = period;
     this.marketSeries  = marketSeries;
     lastIndex          = 0;
     onFractalListeners = new List <Action <FractalEvent> >();
 }
Exemplo n.º 4
0
        private void SendFirstOrder(int orderVolume, MarketSeries marketSeries, Symbol symbol)
        {
            int signal = GetStdIlanSignal(marketSeries);

            if (!(signal < 0))
            {
                TradeResult result;
                switch (signal)
                {
                case 0:
                    result = ExecuteMarketOrder(TradeType.Buy, symbol, orderVolume, RobotLabel, null, TakeProfit);
                    if (!result.IsSuccessful)
                    {
                        if (result.Error.Equals(ErrorCode.NoMoney) || result.Error.Equals(ErrorCode.BadVolume))
                        {
                            Stop();
                        }
                    }

                    break;

                case 1:
                    result = ExecuteMarketOrder(TradeType.Sell, symbol, orderVolume, RobotLabel, null, TakeProfit);
                    if (!result.IsSuccessful)
                    {
                        if (result.Error.Equals(ErrorCode.NoMoney) || result.Error.Equals(ErrorCode.BadVolume))
                        {
                            Stop();
                        }
                    }
                    break;
                }
            }
        }
Exemplo n.º 5
0
        protected override void OnInitializing()
        {
            base.OnInitializing();
            OnInitializing_();

            DataSeries = Template.IndicatorBarSource ?? MarketSeries.GetDataSeries(Template.IndicatorBarComponent);
        }
        //set out of area

        protected override void Initialize()
        {
            RSINow = Indicators.RelativeStrengthIndex(SourceSeries, RSI_period);
            seriesH1 = MarketData.GetSeries(TimeFrame.Daily);
            ATR = Indicators.AverageTrueRange(seriesH1, ATR_period, MovingAverageType.Simple);

        }
Exemplo n.º 7
0
        public static double volatility(this MarketSeries marketSeries, int period)
        {
            double maximum = marketSeries.High.Maximum(period);
            double minimum = marketSeries.Low.Minimum(period);

            return(maximum - minimum);
        }
Exemplo n.º 8
0
        protected override void Initialize()
        {
            // Calculate all VWAPS once
            if (MarketSeries.TimeFrame < TimeFrame.Daily)
                M1 = MarketData.GetSeries(TimeFrame.Minute);
            else
                M1 = MarketData.GetSeries(TimeFrame.Minute10);

            for (int idx = (MarketSeries.Close.Count - 2) - Lookback; idx <= MarketSeries.Close.Count - 2; idx++)
            {
                double M1Vwap = 0;
                int M1FirstIndex = M1.OpenTime.GetIndexByTime(MarketSeries.OpenTime[idx]);
                if (M1FirstIndex != -1)
                {
                    for (int i = M1FirstIndex; i < M1.OpenTime.GetIndexByTime(MarketSeries.OpenTime[idx + 1]); i++)
                    {
                        M1Vwap += M1.Median[i] * M1.TickVolume[i];
                    }
                }
                else
                    continue;
                M1Vwap = M1Vwap / MarketSeries.TickVolume[idx];
                if (M1Vwap <= MarketSeries.High[idx] && M1Vwap >= MarketSeries.Low[idx])
                    ChartObjects.DrawText("vwap" + idx, Markers[MarkerType], idx, M1Vwap, VerticalAlignment.Center, HorizontalAlignment.Center, MarketSeries.TickVolume[idx] >= MarketSeries.TickVolume[idx - 1] ? (Colors)Enum.Parse(typeof(Colors), VolumeUpColor, true) : (Colors)Enum.Parse(typeof(Colors), VolumeDownColor, true));
            }
            // Prepare vwap of the current bar with minute data for incoming realtime tick data
            for (int i = M1.OpenTime.GetIndexByTime(MarketSeries.OpenTime.LastValue); i <= M1.Close.Count - 1; i++)
            {
                RealtimeVwap[0, 0] += M1.Median[i] * M1.TickVolume[i];
            }
            RealtimeVwap[0, 1] = MarketSeries.TickVolume.LastValue;
            BarCount = MarketSeries.Close.Count - 1;
        }
Exemplo n.º 9
0
        //******************************************

        protected override void Initialize()
        {
            //**************************************
            LR_Slope = Indicators.LinearRegressionSlope(MarketSeries.Close, 12);
            MA20     = Indicators.ExponentialMovingAverage(MarketSeries.Close, 20);
            MA50     = Indicators.ExponentialMovingAverage(MarketSeries.Close, 50);
            MA100    = Indicators.ExponentialMovingAverage(MarketSeries.Close, 100);

            LTF_Candle = MarketData.GetSeries(LTF);
            MTF_Candle = MarketData.GetSeries(MTF);
            STF_Candle = MarketData.GetSeries(STF);
            //**************************************

            ///////////////////////////////////////////////////////////

            // Initialize and create nested indicators

            MA = Indicators.MovingAverage(MarketSeries.Close, MA_Periods, MovingAverageType.Exponential);
            // Initalize RSI
            RSI = Indicators.RelativeStrengthIndex(MarketSeries.Close, RSI_Periods);

            // Initalize CCI
            CCI = Indicators.CommodityChannelIndex(MarketSeries, CCI_Periods);

            thecount = MarketSeries.Close.Count;
            Print("theCount = " + thecount);
        }
Exemplo n.º 10
0
        private int DailyPeriodAdjustment(MarketSeries ms, int index)
        {
            if (index < 1)
            {
                return(0);
            }

            int periods = 1;

            DateTime CurrentDate    = ms.OpenTime[index].AddHours(2);
            DateTime PreviousDate   = ms.OpenTime[index - periods].AddHours(2);
            int      DateDifference = (int)(CurrentDate.Date - PreviousDate.Date).TotalDays;

            while (CurrentDate.DayOfWeek == PreviousDate.DayOfWeek || PreviousDate.DayOfWeek == DayOfWeek.Sunday || CurrentDate.DayOfWeek == DayOfWeek.Saturday)
            {
                periods++;
                if (index < periods)
                {
                    return(periods - 1);
                }
                PreviousDate   = ms.OpenTime[index - periods].AddHours(2);
                DateDifference = (int)(CurrentDate.Date - PreviousDate.Date).TotalDays;
            }
            return(periods - 1);
        }
Exemplo n.º 11
0
        //====================================================================================================================
        // Insert()
        //====================================================================================================================
        public void Insert(string Currency = "GBPJPY")
        {
            // Current UNIX timestamp
            //Int32 Stamp = (Int32)(DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1))).TotalSeconds;

            MarketSeries data   = MarketData.GetSeries(Currency, TimeFrame.Weekly);
            DataSeries   series = data.Close;
            int          index  = series.Count - 1;

            double close    = data.Close[index];
            double high     = data.High[index];
            double low      = data.Low[index];
            double open     = data.Open[index];
            Int32  opentime = (Int32)(data.OpenTime[index].Subtract(new DateTime(1970, 1, 1))).TotalSeconds;

            Print(open);

            //string query = "INSERT INTO account (time, accountid, balance, equity) VALUES('" + Stamp + "','" + Account.Number + "', '" + Account.Balance + "', '" + Account.Equity + "')";
            string query = "INSERT INTO " + Currency + " (time, open, close, low, high) VALUES('" + opentime + "','" + open + "', '" + close + "', '" + low + "', '" + high + "')";

            //create command and assign the query and connection from the constructor
            MySqlCommand cmd = new MySqlCommand(query, connection);

            //Execute command
            cmd.ExecuteNonQuery();
        }
Exemplo n.º 12
0
 private int CalculateTiming(MacdCrossOver macd, ExponentialMovingAverage ma, MarketSeries series)
 {
     if (IsTrendUp(series, ma))
     {
         if (macd.Histogram.LastValue > 0)
         {
             return(1);
         }
         else
         {
             return(2);
         }
     }
     else
     {
         if (macd.Histogram.LastValue <= 0)
         {
             return(-1);
         }
         else
         {
             return(-2);
         }
     }
 }
Exemplo n.º 13
0
        ////////////TVI Params End //////////////////



        protected override void Initialize()
        {
            //////////////TVI Init Start //////////////
            UpTick        = CreateDataSeries();
            DnTick        = CreateDataSeries();
            TVI_Calculate = CreateDataSeries();

            EMA_UpTick = Indicators.ExponentialMovingAverage(UpTick, EMA);
            EMA_DnTick = Indicators.ExponentialMovingAverage(DnTick, EMA);

            DEMA_UpTick = Indicators.ExponentialMovingAverage(EMA_UpTick.Result, DEMA);
            DEMA_DnTick = Indicators.ExponentialMovingAverage(EMA_DnTick.Result, DEMA);

            TVI = Indicators.ExponentialMovingAverage(TVI_Calculate, TEMA);

            //////////////TVI init End ///////////////
            // Initialize and create nested indicators
            LongTF_Series  = MarketData.GetSeries(Ref_TF);
            MedTF_Series   = MarketData.GetSeries(Med_TF);
            SmallTF_Series = MarketData.GetSeries(Lil_TF);

            MA50         = Indicators.ExponentialMovingAverage(MarketSeries.Close, Ma_Periods);
            MA50_LongTF  = Indicators.ExponentialMovingAverage(LongTF_Series.Close, Ma_Periods);
            MA50_MedTF   = Indicators.ExponentialMovingAverage(MedTF_Series.Close, Ma_Periods);
            MA50_SmallTF = Indicators.ExponentialMovingAverage(SmallTF_Series.Close, Ma_Periods);
        }
Exemplo n.º 14
0
        protected override void Initialize()
        {
            series1D = MarketData.GetSeries(TEMATimeframe);

            TemaFast = Indicators.GetIndicator <TEMA>(series1D.Close, PeriodFast);
            TemaSlow = Indicators.GetIndicator <TEMA>(series1D.Close, PeriodSlow);
        }
Exemplo n.º 15
0
        protected override void Initialize()
        {
            try
            {
                // Get the 1 min timeframe series of data
                minuteSeries     = MarketData.GetSeries(Symbol, TimeFrame.Minute);
                warningTextColor = (Colors)Enum.Parse(typeof(Colors), WarningColor, true);
                spreadTextColor  = (Colors)Enum.Parse(typeof(Colors), SpreadColor, true);
            } catch (Exception e)
            {
                errorOccured = true;
                Print("Scalpers Buddy: " + e.Message);
            }

            // position alert message on screen
            switch (WarningPostion)
            {
            case 1:
                position = StaticPosition.TopLeft;
                break;

            case 2:
                position = StaticPosition.TopCenter;
                break;

            case 3:
                position = StaticPosition.TopRight;
                //lowerPosition = "\n\n";
                break;

            case 4:
                position      = StaticPosition.Right;
                lowerPosition = "\n\n";
                break;

            case 5:
                position      = StaticPosition.BottomRight;
                lowerPosition = "\n\n";
                break;

            case 6:
                position      = StaticPosition.BottomCenter;
                lowerPosition = "\n\n";
                break;

            case 7:
                position      = StaticPosition.BottomLeft;
                lowerPosition = "\n\n";
                break;

            case 8:
                position      = StaticPosition.Left;
                lowerPosition = "\n\n";
                break;

            default:
                position = StaticPosition.TopLeft;
                break;
            }
        }
Exemplo n.º 16
0
        public void CalculateHeikenAshi(MarketSeries marketSeries, int index, int maPeriods, MovingAverageType maType, int periods = 1)
        {
            int seriesIndex = marketSeries.OpenTime.GetIndexByTime(marketSeries.OpenTime[index]);

            if (seriesIndex <= maPeriods)
            {
                return;
            }

            double barMaOpen  = GetSeriesMovingAverageValue(marketSeries, SeriesType.Open, maPeriods, maType, seriesIndex);
            double barMaHigh  = GetSeriesMovingAverageValue(marketSeries, SeriesType.High, maPeriods, maType, seriesIndex);
            double barMaLow   = GetSeriesMovingAverageValue(marketSeries, SeriesType.Low, maPeriods, maType, seriesIndex);
            double barMaClose = GetSeriesMovingAverageValue(marketSeries, SeriesType.Close, maPeriods, maType, seriesIndex);

            _close[seriesIndex] = (barMaOpen + barMaClose + barMaHigh + barMaLow) / 4;

            if (seriesIndex < periods || double.IsNaN(_open[seriesIndex - 1]))
            {
                _open[seriesIndex] = (barMaOpen + barMaClose) / 2;
                _high[seriesIndex] = barMaHigh;
                _low[seriesIndex]  = barMaLow;
            }
            else
            {
                _open[seriesIndex] = (_open[seriesIndex - periods] + _close[seriesIndex - periods]) / 2;
                _high[seriesIndex] = Math.Max(barMaHigh, Math.Max(_open[seriesIndex], _close[seriesIndex]));
                _low[seriesIndex]  = Math.Min(barMaLow, Math.Min(_open[seriesIndex], _close[seriesIndex]));
            }
        }
Exemplo n.º 17
0
        protected override void Initialize()
        {
            symbol2  = MarketData.GetSymbol(Symbol2);
            symbol3  = MarketData.GetSymbol(Symbol3);
            symbol4  = MarketData.GetSymbol(Symbol4);
            symbol5  = MarketData.GetSymbol(Symbol5);
            symbol6  = MarketData.GetSymbol(Symbol6);
            symbol7  = MarketData.GetSymbol(Symbol7);
            symbol8  = MarketData.GetSymbol(Symbol8);
            symbol9  = MarketData.GetSymbol(Symbol9);
            symbol10 = MarketData.GetSymbol(Symbol10);


            series2  = MarketData.GetSeries(symbol2, TimeFrame);
            series3  = MarketData.GetSeries(symbol3, TimeFrame);
            series4  = MarketData.GetSeries(symbol4, TimeFrame);
            series5  = MarketData.GetSeries(symbol5, TimeFrame);
            series6  = MarketData.GetSeries(symbol6, TimeFrame);
            series7  = MarketData.GetSeries(symbol7, TimeFrame);
            series8  = MarketData.GetSeries(symbol8, TimeFrame);
            series9  = MarketData.GetSeries(symbol9, TimeFrame);
            series10 = MarketData.GetSeries(symbol10, TimeFrame);

            ma1  = Indicators.MovingAverage(MarketSeries.Close, Period, MaType);
            ma2  = Indicators.MovingAverage(series2.Close, Period, MaType);
            ma3  = Indicators.MovingAverage(series3.Close, Period, MaType);
            ma4  = Indicators.MovingAverage(series4.Close, Period, MaType);
            ma5  = Indicators.MovingAverage(series5.Close, Period, MaType);
            ma6  = Indicators.MovingAverage(series6.Close, Period, MaType);
            ma7  = Indicators.MovingAverage(series7.Close, Period, MaType);
            ma8  = Indicators.MovingAverage(series8.Close, Period, MaType);
            ma9  = Indicators.MovingAverage(series9.Close, Period, MaType);
            ma10 = Indicators.MovingAverage(series10.Close, Period, MaType);
        }
Exemplo n.º 18
0
        protected override void Initialize()
        {
            if (EnableATRInfo)
            {
                atr = Indicators.AverageTrueRange(14, MovingAverageType.Exponential);
            }

            if (EnableD1)
            {
                seriesD1 = MarketData.GetSeries(TimeFrame.Daily);
                macdD1   = Indicators.MacdCrossOver(seriesD1.Close, 26, 12, 9);
                mmD1     = Indicators.ExponentialMovingAverage(seriesD1.Close, 200);
            }

            if (EnableH4)
            {
                seriesH4 = MarketData.GetSeries(TimeFrame.Hour4);
                macdH4   = Indicators.MacdCrossOver(seriesH4.Close, 26, 12, 9);
                mmH4     = Indicators.ExponentialMovingAverage(seriesH4.Close, 200);
            }

            if (EnableH1)
            {
                seriesH1 = MarketData.GetSeries(TimeFrame.Hour);
                macdH1   = Indicators.MacdCrossOver(seriesH1.Close, 26, 12, 9);
                mmH1     = Indicators.ExponentialMovingAverage(seriesH1.Close, 200);
            }

            if (EnableM5)
            {
                seriesM5 = MarketData.GetSeries(TimeFrame.Minute5);
                macdM5   = Indicators.MacdCrossOver(seriesM5.Close, 26, 12, 9);
                mmM5     = Indicators.ExponentialMovingAverage(seriesM5.Close, 200);
            }
        }
        /// <summary>
        /// Returns a market series specific data series based on provided series type
        /// </summary>
        /// <param name="marketSeries">The market series</param>
        /// <param name="seriesType">Series type</param>
        /// <returns>DataSeries</returns>
        public static DataSeries GetSeries(this MarketSeries marketSeries, SeriesType seriesType)
        {
            switch (seriesType)
            {
            case SeriesType.Open:
                return(marketSeries.Open);

            case SeriesType.High:
                return(marketSeries.High);

            case SeriesType.Low:
                return(marketSeries.Low);

            case SeriesType.Close:
                return(marketSeries.Close);

            case SeriesType.Median:
                return(marketSeries.Median);

            case SeriesType.TickVolume:
                return(marketSeries.TickVolume);

            case SeriesType.Typical:
                return(marketSeries.Typical);

            case SeriesType.WeightedClose:
                return(marketSeries.WeightedClose);

            default:
                return(null);
            }
        }
Exemplo n.º 20
0
        /// <summary>Return the series for a given symbol and time frame</summary>
        public MarketSeries GetSeries(Symbol sym, TimeFrame tf)
        {
            if (MarketSeries.SymbolCode == sym.Code && MarketSeries.TimeFrame == tf)
            {
                return(MarketSeries);
            }

            if (IsBacktesting)
            {
                throw new Exception("This can't be used in back testing");
            }

            MarketSeries res = null;

            using (var wait = new ManualResetEvent(false))
            {
                BeginInvokeOnMainThread(() =>
                {
                    res = MarketData.GetSeries(sym, tf);
                    wait.Set();
                });
                wait.WaitOne();
                return(res);
            }
        }
Exemplo n.º 21
0
        private int GetClosestIndexByDate(MarketSeries series, DateTime time)
        {
            var lastIndex = series.Close.Count - 1;

            if (time >= series.OpenTime[lastIndex])
            {
                return(lastIndex);
            }

            var timeDifference = time.Subtract(series.OpenTime[0]);

            int index = 0;

            for (int i = 0; i < lastIndex - 1; i++)
            {
                if (time < series.OpenTime[i])
                {
                    break;
                }
                var currDiff = time.Subtract(series.OpenTime[i]);

                if (currDiff < timeDifference)
                {
                    timeDifference = currDiff;
                    index          = i;
                }
            }

            return(index);
        }
Exemplo n.º 22
0
 protected override void Initialize()
 {
     m = MarketData.GetSeries(TimeFrame.Daily);
     lastHi = double.MinValue;
     lastLo = double.MaxValue;
     OnTimer();
     Timer.Start(10);
 }
Exemplo n.º 23
0
        public void Initialize(TimeFrame tm)
        {
            m_ds = m_indicator.MarketData.GetSeries(tm);

            m_highZigZags = m_indicator.CreateDataSeries();
            m_lowZigZags  = m_indicator.CreateDataSeries();
            m_point       = m_indicator.Symbol.TickSize;
        }
Exemplo n.º 24
0
        protected override void Initialize()
        {
            _marketSerieGlobal = MarketData.GetSeries(GlobalTimeFrame2);

            int period = 2 * (int)(GlobalTimeFrame2.ToTimeSpan().Ticks / MarketSeries.TimeFrame.ToTimeSpan().Ticks);

            _localMA = Indicators.MovingAverage(LocalTrendSignal, period, MovingAverageType.Exponential);
        }
Exemplo n.º 25
0
 protected override void Initialize()
 {
     m      = MarketData.GetSeries(TimeFrame.Daily);
     lastHi = double.MinValue;
     lastLo = double.MaxValue;
     OnTimer();
     Timer.Start(10);
 }
Exemplo n.º 26
0
 public MarketSeriesData(MarketSeries series)
 {
     Series                   = series;
     LastTransmitUTC          = DateTimeOffset.MinValue;
     LastUpdateUTC            = DateTimeOffset.MinValue;
     LastTransmittedPriceData = PriceData.Default;
     LastTransmittedCandle    = PriceCandle.Default;
 }
Exemplo n.º 27
0
        protected override void Initialize()
        {
            HmaHour4Series = MarketData.GetSeries(TimeFrame.Hour4);
            HmaHourSeries  = MarketData.GetSeries(TimeFrame.Hour);

            ma4hr = Indicators.GetIndicator <HMAHTFSHIFT>(HmaHour4Series, HTF_Period, HTFShift, false, false, 3, false, 24);
            ma1hr = Indicators.GetIndicator <HMAHTFSHIFT>(HmaHourSeries, HTF_Period, HTFShift, false, false, 3, false, 24);
        }
Exemplo n.º 28
0
 protected override void Initialize()
 {
     _xbrsymbol = MarketData.GetSymbol("XBRUSD");
     _xtisymbol = MarketData.GetSymbol("XTIUSD");
     _xbrseries = MarketData.GetSeries(_xbrsymbol, TimeFrame);
     _xtiseries = MarketData.GetSeries(_xtisymbol, TimeFrame);
     _nocorel   = Colors.Gray;
 }
Exemplo n.º 29
0
        protected override void Initialize()
        {
            X_Series = CreateDataSeries();
            Y_Series = CreateDataSeries();

            X_Source = MarketData.GetSeries(X_Symbol, TimeFrame);
            Y_Source = MarketData.GetSeries(Y_Symbol, TimeFrame);
        }
Exemplo n.º 30
0
        protected override void OnBar()
        {
            MarketSeries data   = MarketData.GetSeries(Symbol, TimeFrame.Minute15);
            DataSeries   series = data.Close;
            int          index  = series.Count - 1;

            close = data.Close[index];
            high  = data.High[index];
            low   = data.Low[index];
            open  = data.Open[index];

            //    Int32 opentime = (Int32)(data.OpenTime[index].Subtract(new DateTime(1970, 1, 1))).TotalSeconds;

            var longPosition  = Positions.Find(label, Symbol, TradeType.Buy);
            var shortPosition = Positions.Find(label, Symbol, TradeType.Sell);

            var currentSlowMa  = slowMa.Result.Last(0);
            var currentFastMa  = fastMa.Result.Last(0);
            var previousSlowMa = slowMa.Result.Last(1);
            var previousFastMa = fastMa.Result.Last(1);

            Symbol1 = MarketData.GetSymbol("EURUSD");



            if (shortPosition == null && longPosition == null && previousFastMa < open && previousFastMa < close)
            {
                Print("BUY MA " + previousFastMa + " O " + open + " C " + close);

                Position position = Positions.Find(label, Symbol, TradeType.Sell);
                double   vol      = Quantity;
                if (position.NetProfit > 0)
                {
                    vol = vol * 2;
                }
                long Volume = Symbol.QuantityToVolume(vol);

                ExecuteMarketOrder(TradeType.Buy, Symbol, Volume, label, 222, 50);
                //ExecuteMarketOrder(TradeType.Sell, Symbol1, VolumeInUnitsBuy, label, 111, 50);
            }

            if (longPosition == null && shortPosition == null && previousFastMa > open && previousFastMa > close)
            {
                Print("SELL MA " + previousFastMa + " O " + open + " C " + close);

                Position position = Positions.Find(label, Symbol, TradeType.Buy);
                double   vol      = Quantity;

                if (position.NetProfit > 0)
                {
                    vol = vol * 2;
                }
                long Volume = Symbol.QuantityToVolume(vol);

                ExecuteMarketOrder(TradeType.Sell, Symbol, Volume, label, 222, 50);
                // ExecuteMarketOrder(TradeType.Buy, Symbol1, VolumeInUnitsBuy, label, 111, 50);
            }
        }
Exemplo n.º 31
0
        protected override void Initialize()
        {
            // Initialize and create nested indicators
            accDist = CreateDataSeries();
            ema3    = Indicators.ExponentialMovingAverage(accDist, 3);
            ema10   = Indicators.ExponentialMovingAverage(accDist, 10);

            marketSeriesDaily = MarketData.GetSeries(TimeFrame.Daily);
        }
Exemplo n.º 32
0
 private int GetIndexByDate(MarketSeries series, DateTime time)
 {
     for (int i = series.Close.Count - 1; i > 0; i--)
     {
         if (time == series.OpenTime[i])
             return i;
     }
     return -1;
 }
Exemplo n.º 33
0
        public double GetSeriesMovingAverageValue(
            MarketSeries marketSeries, SeriesType seriesType, int periods, MovingAverageType type, int index)
        {
            DataSeries series = marketSeries.GetSeries(seriesType);

            MovingAverage ma = _algo.Indicators.MovingAverage(series, periods, type);

            return(ma.Result[index]);
        }
Exemplo n.º 34
0
        protected override void Initialize()
        {
            series5  = MarketData.GetSeries(TimeFrame.Minute5);
            series10 = MarketData.GetSeries(TimeFrame.Minute10);

            ma   = Indicators.MovingAverage(MarketSeries.Close, Period, MovingAverageType.Triangular);
            ma5  = Indicators.MovingAverage(series5.Close, Period, MovingAverageType.Triangular);
            ma10 = Indicators.MovingAverage(series10.Close, Period, MovingAverageType.Triangular);
        }
Exemplo n.º 35
0
 protected override void Initialize()
 {
     _ratio     = 80;
     _xausymbol = MarketData.GetSymbol("XAUUSD");
     _xagsymbol = MarketData.GetSymbol("XAGUSD");
     _xauseries = MarketData.GetSeries(_xausymbol, TimeFrame);
     _xagseries = MarketData.GetSeries(_xagsymbol, TimeFrame);
     _nocorel   = Colors.Gray;
 }
Exemplo n.º 36
0
 protected override void Initialize()
 {
     Lng_Series = MarketData.GetSeries(MacD3_TF);
     Mid_Series = MarketData.GetSeries(MacD2_TF);
     // Initialize and create nested indicators
     MacD3 = Indicators.MacdHistogram(Lng_Series.Close, LngCycle, ShrtCycle, SigPeriod);
     MacD2 = Indicators.MacdHistogram(Mid_Series.Close, LngCycle, ShrtCycle, SigPeriod);
     MacD1 = Indicators.MacdHistogram(MarketSeries.Close, LngCycle, ShrtCycle, SigPeriod);
 }
Exemplo n.º 37
0
        protected override void Initialize()
        {
            _marketSerieGlobal = MarketData.GetSeries(GlobalTimeFrame);
			
			int period = 2 * (int) (GlobalTimeFrame.ToTimeSpan().Ticks / MarketSeries.TimeFrame.ToTimeSpan().Ticks);

			_localMA = Indicators.MovingAverage(LocalTrendSignal, period, MovingAverageType.Exponential);

        }
Exemplo n.º 38
0
        public void DrawSeries(MarketSeries serie, int index, IndicatorDataSeries indicator, double offset)
        {
            int index2 = serie.OpenTime.GetIndexByExactTime(MarketSeries.OpenTime[index]);

            Print("{0} - {1}", MarketSeries.OpenTime[index], serie.OpenTime[index2]);

            if (serie != null)
                indicator[index2] = (serie.Close[index2 + (int)Symbol2SerieOffset]) * multiplier;
        }
Exemplo n.º 39
0
        protected override void Initialize()
        {
            // Fetch market series for second symbol
            this.SecondSymbol = MarketData.GetSymbol(SecondPair);
            this.SecondSeries = MarketData.GetSeries(this.SecondSymbol, this.TimeFrame);


            // Now create a stochastic for both
            this.FirstStoch = Indicators.StochasticOscillator(this.MarketSeries, this.kPeriods, this.kSlowing, this.dPeriods, MovingAverageType.Simple);
            this.SecondStoch = Indicators.StochasticOscillator(this.SecondSeries, this.kPeriods, this.kSlowing, this.dPeriods, MovingAverageType.Simple);
        }
Exemplo n.º 40
0
        protected override void Initialize()
        {
            series1 = MarketData.GetSeries(EMATimeframe1);
            series2 = MarketData.GetSeries(EMATimeframe2);
            series3 = MarketData.GetSeries(EMATimeframe3);

            Ema1 = Indicators.ExponentialMovingAverage(series1.Close, Periods);
            Ema2 = Indicators.ExponentialMovingAverage(series2.Close, Periods);
            Ema3 = Indicators.ExponentialMovingAverage(series3.Close, Periods);

        }
Exemplo n.º 41
0
        private void Execute(MarketSeries marketSeries, Symbol symbol)
        {
            Position[] positions = Positions.FindAll(RobotLabel, symbol);

            if (positions.Length == 0)
                SendFirstOrder(FirstLot, marketSeries, symbol);
            else
                ControlSeries(marketSeries, symbol);

            TrailPositions(symbol);
        }
Exemplo n.º 42
0
 protected override void Initialize()
 {
     //seriesM1 = MarketData.GetSeries(TimeFrame.Minute);
     //seriesM5 = MarketData.GetSeries(TimeFrame.Minute5);
     //seriesM15 = MarketData.GetSeries(TimeFrame.Minute15);
     //seriesM30 = MarketData.GetSeries(TimeFrame.Minute30);
     seriesH1 = MarketData.GetSeries(TimeFrame.Hour);
     seriesH4 = MarketData.GetSeries(TimeFrame.Hour4);
     seriesD1 = MarketData.GetSeries(TimeFrame.Daily);
     seriesW1 = MarketData.GetSeries(TimeFrame.Weekly);
     seriesMN = MarketData.GetSeries(TimeFrame.Monthly);
 }
Exemplo n.º 43
0
        protected override void Initialize()
        {
            // Initialize and create nested indicators
            accDist = CreateDataSeries();
            ema3 = Indicators.ExponentialMovingAverage(accDist, 3);
            ema10 = Indicators.ExponentialMovingAverage(accDist, 10);

            marketSeriesDaily = MarketData.GetSeries(TimeFrame.Daily);



        }
Exemplo n.º 44
0
        protected override void Initialize()
        {
            ma = Indicators.MovingAverage(MarketSeries.Close, 200, MovingAverageType.Simple);
            if (Symbol2 != "")
            {
                symbol2 = MarketData.GetSymbol(Symbol2);
                series2 = MarketData.GetSeries(symbol2, TimeFrame);
            }

            multiplier = Symbol.Ask / symbol2.Ask;

        }
Exemplo n.º 45
0
        protected override void Initialize()
        {
            try
            {
                // Get the 1 min timeframe series of data
                minuteSeries = MarketData.GetSeries(Symbol, TimeFrame.Minute);
                warningTextColor = (Colors)Enum.Parse(typeof(Colors), WarningColor, true);
                spreadTextColor = (Colors)Enum.Parse(typeof(Colors), SpreadColor, true);
            } catch (Exception e)
            {
                errorOccured = true;
                Print("Scalpers Buddy: " + e.Message);
            }

            // position alert message on screen
            switch (WarningPostion)
            {
                case 1:
                    position = StaticPosition.TopLeft;
                    break;
                case 2:
                    position = StaticPosition.TopCenter;
                    break;
                case 3:
                    position = StaticPosition.TopRight;
                    //lowerPosition = "\n\n";
                    break;
                case 4:
                    position = StaticPosition.Right;
                    lowerPosition = "\n\n";
                    break;
                case 5:
                    position = StaticPosition.BottomRight;
                    lowerPosition = "\n\n";
                    break;
                case 6:
                    position = StaticPosition.BottomCenter;
                    lowerPosition = "\n\n";
                    break;
                case 7:
                    position = StaticPosition.BottomLeft;
                    lowerPosition = "\n\n";
                    break;
                case 8:
                    position = StaticPosition.Left;
                    lowerPosition = "\n\n";
                    break;
                default:
                    position = StaticPosition.TopLeft;
                    break;
            }
        }
Exemplo n.º 46
0
        protected override void Initialize()
        {
            if (!Enum.TryParse(color_label_str, out color_label))
                color_label = Colors.Lime;

            if (!Enum.TryParse(color_value_str, out color_value))
                color_value = Colors.White;

            if (timeframe_daily)
                mseries = MarketData.GetSeries(TimeFrame.Daily);
            else
                mseries = MarketSeries;
        }
Exemplo n.º 47
0
        private double AverageRange(MarketSeries marketSeries, int index)
        {
            double sum = 0;

            for (int i = index - Length; i <= index; i++)
            {
                double high = marketSeries.High[i];
                double low = marketSeries.Low[i];
                sum += (high - low);
            }

            return sum / Length;

        }
Exemplo n.º 48
0
        protected override void Initialize()
        {
            string IndicatorName = GetType().ToString().Substring(GetType().ToString().LastIndexOf('.') + 1);
            //  returns ClassName
            Print("Indicator: " + IndicatorName);
            Print("IndicatorTimeZone: {0} Offset: {1} DST: {2}", TimeZone, TimeZone.BaseUtcOffset, TimeZone.SupportsDaylightSavingTime);

            msUSDJPY = MarketData.GetSeries("USDJPY", TimeFrame);
            msGBPUSD = MarketData.GetSeries("GBPUSD", TimeFrame);
            msAUDUSD = MarketData.GetSeries("AUDUSD", TimeFrame);
            msUSDCHF = MarketData.GetSeries("USDCHF", TimeFrame);

            msEURJPY = MarketData.GetSeries("EURJPY", TimeFrame);
            msEURGBP = MarketData.GetSeries("EURGBP", TimeFrame);
            msEURAUD = MarketData.GetSeries("EURAUD", TimeFrame);
            msEURCHF = MarketData.GetSeries("EURCHF", TimeFrame);
        }
Exemplo n.º 49
0
        private void CalculateAccumulationDistribution(MarketSeries series, int index)
        {
            double close = series.Close[index];
            double low = series.Low[index];
            double high = series.High[index];
            double volume = marketSeriesDaily.TickVolume[index];

            if (!high.Equals(low))
            {
                double clv = ((close - low) - (high - close)) / (high - low);
                accDist[index] = accDist[index - 1] + volume * clv;
            }
            else
                accDist[index] = accDist[index - 1];


        }
Exemplo n.º 50
0
        protected override void Initialize()
        {
            seriesM1 = MarketData.GetSeries(TimeFrame.Minute);
            seriesM5 = MarketData.GetSeries(TimeFrame.Minute5);
            seriesM15 = MarketData.GetSeries(TimeFrame.Minute15);
            seriesM30 = MarketData.GetSeries(TimeFrame.Minute30);
            seriesH1 = MarketData.GetSeries(TimeFrame.Hour);
            seriesH4 = MarketData.GetSeries(TimeFrame.Hour4);
            seriesH12 = MarketData.GetSeries(TimeFrame.Hour12);
            seriesD1 = MarketData.GetSeries(TimeFrame.Daily);

            cloudM1 = Indicators.IchimokuKinkoHyo(seriesM1, 9, 26, 52);
            cloudM5 = Indicators.IchimokuKinkoHyo(seriesM5, 9, 26, 52);
            cloudM15 = Indicators.IchimokuKinkoHyo(seriesM15, 9, 26, 52);
            cloudM30 = Indicators.IchimokuKinkoHyo(seriesM30, 9, 26, 52);
            cloudH1 = Indicators.IchimokuKinkoHyo(seriesH1, 9, 26, 52);
            cloudH4 = Indicators.IchimokuKinkoHyo(seriesH4, 9, 26, 52);
            cloudH12 = Indicators.IchimokuKinkoHyo(seriesH12, 9, 26, 52);
            cloudD1 = Indicators.IchimokuKinkoHyo(seriesD1, 9, 26, 52);

        }
Exemplo n.º 51
0
        private void SendFirstOrder(int orderVolume, MarketSeries marketSeries, Symbol symbol)
        {
            int signal = GetStdIlanSignal(marketSeries);

            if (!(signal < 0))
            {
                TradeResult result;
                switch (signal)
                {
                    case 0:
                        result = ExecuteMarketOrder(TradeType.Buy, symbol, orderVolume, RobotLabel, null, TakeProfit);
                        if (!result.IsSuccessful)
                            if (result.Error.Equals(ErrorCode.NoMoney) ||
                                result.Error.Equals(ErrorCode.BadVolume))
                                Stop();

                        break;

                    case 1:
                        result = ExecuteMarketOrder(TradeType.Sell, symbol, orderVolume, RobotLabel, null, TakeProfit);
                        if (!result.IsSuccessful)
                            if (result.Error.Equals(ErrorCode.NoMoney) ||
                                result.Error.Equals(ErrorCode.BadVolume))
                                Stop();
                        break;
                }
            }
        }
Exemplo n.º 52
0
        protected override void Initialize()
        {

            value1 = value2 = 0;
            series2 = MarketData.GetSeries(HighOrderTimeFrame);
        }
Exemplo n.º 53
0
 protected override void Initialize()
 {
     dailySeries = MarketData.GetSeries(Symbol, TimeFrame.Daily);
 }
Exemplo n.º 54
0
        private int GetDynamicPipstep(MarketSeries marketSeries, Symbol symbol)
        {
            const int countOfBars = 25;
            int startBar = marketSeries.Close.Count - 2 - countOfBars;
            int endBar = marketSeries.Close.Count - 2;

            double highestPrice = marketSeries.High[startBar];
            double lowestPrice = marketSeries.Low[startBar];

            for (int i = startBar; i < endBar; i++)
            {
                if (marketSeries.High[i] > highestPrice)
                    highestPrice = marketSeries.High[i];

                if (marketSeries.Low[i] < lowestPrice)
                    lowestPrice = marketSeries.Low[i];
            }

            return (int) ((highestPrice - lowestPrice)/symbol.PipSize/(MaxOrders - 1));
        }
Exemplo n.º 55
0
        private int GetStdIlanSignal(MarketSeries marketSeries)
        {
            int lastBarIndex = marketSeries.Close.Count - 2;
            int prevBarIndex = lastBarIndex - 1;


            if (marketSeries.Close[lastBarIndex] > marketSeries.Open[lastBarIndex] &&
                marketSeries.Close[prevBarIndex] > marketSeries.Open[prevBarIndex]) return 0;

            if (marketSeries.Close[lastBarIndex] < marketSeries.Open[lastBarIndex] &&
                marketSeries.Close[prevBarIndex] < marketSeries.Open[prevBarIndex]) return 1;

            return -1;
        }
Exemplo n.º 56
0
        private void InitializeSeries(string symbolCode)
        {
            _symbol2 = MarketData.GetSymbol(symbolCode);

            _series2 = MarketData.GetSeries(_symbol2, TimeFrame);
        }
Exemplo n.º 57
0
        private void ControlSeries(MarketSeries marketSeries, Symbol symbol)
        {
            int pipstep = PipStep == 0 ? GetDynamicPipstep(marketSeries, symbol) : PipStep;
            Position[] positions = Positions.FindAll(RobotLabel, symbol);

            if (positions.Length < MaxOrders)
            {
                int lotStep = LotStep == 0 ? (int) symbol.VolumeStep : LotStep;
                var newVolume = (int) (Math.Truncate((double) ((FirstLot + FirstLot*positions.Length)/lotStep))*lotStep);
                switch (GetPositionsSide(symbol))
                {
                    case 0:
                        if (symbol.Ask < FindLastPrice(TradeType.Buy, symbol) - pipstep*symbol.PipSize)
                        {
                            if (!(newVolume < lotStep))
                            {
                                TradeResult result = ExecuteMarketOrder(TradeType.Buy, symbol, newVolume, RobotLabel,
                                                                        null, TakeProfit);
                                if (!result.IsSuccessful)
                                    if (result.Error.Equals(ErrorCode.NoMoney) ||
                                        result.Error.Equals(ErrorCode.BadVolume))
                                        Stop();
                            }
                        }
                        break;
                    case 1:
                        if (symbol.Bid > FindLastPrice(TradeType.Sell, symbol) + pipstep*symbol.PipSize)
                        {
                            if (!(newVolume < lotStep))
                            {
                                TradeResult result = ExecuteMarketOrder(TradeType.Sell, symbol, newVolume, RobotLabel,
                                                                        null, TakeProfit);
                                if (!result.IsSuccessful)
                                    if (result.Error.Equals(ErrorCode.NoMoney) ||
                                        result.Error.Equals(ErrorCode.BadVolume))
                                        Stop();
                            }
                        }
                        break;
                }
            }
        }
Exemplo n.º 58
0
        protected override void Initialize()
        {


            series1 = MarketData.GetSeries(TF1);
            series2 = MarketData.GetSeries(TF2);
            series3 = MarketData.GetSeries(TF3);
            series4 = MarketData.GetSeries(TF4);
            series5 = MarketData.GetSeries(TF5);
            series6 = MarketData.GetSeries(TF6);
            series7 = MarketData.GetSeries(TF7);
            series8 = MarketData.GetSeries(TF8);

            cloud1 = Indicators.IchimokuKinkoHyo(series1, 9, 26, 52);
            cloud2 = Indicators.IchimokuKinkoHyo(series2, 9, 26, 52);
            cloud3 = Indicators.IchimokuKinkoHyo(series3, 9, 26, 52);
            cloud4 = Indicators.IchimokuKinkoHyo(series4, 9, 26, 52);
            cloud5 = Indicators.IchimokuKinkoHyo(series5, 9, 26, 52);
            cloud6 = Indicators.IchimokuKinkoHyo(series6, 9, 26, 52);
            cloud7 = Indicators.IchimokuKinkoHyo(series7, 9, 26, 52);
            cloud8 = Indicators.IchimokuKinkoHyo(series8, 9, 26, 52);

        }
Exemplo n.º 59
0
 protected override void Initialize()
 {
     M1 = MarketData.GetSeries(TimeFrame.Minute);
 }
Exemplo n.º 60
-1
        protected override void Initialize()
        {
            series1D = MarketData.GetSeries(TEMATimeframe);

            TemaFast = Indicators.GetIndicator<TEMA>(series1D.Close, PeriodFast);
            TemaSlow = Indicators.GetIndicator<TEMA>(series1D.Close, PeriodSlow);

        }