예제 #1
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);
         }
     }
 }
예제 #2
0
 protected override void Initialize()
 {
     macd        = Indicators.MacdCrossOver(MarketSeries.Close, 26, 12, 9);
     wma300      = Indicators.WeightedMovingAverage(MarketSeries.Close, 300);
     wma150      = Indicators.WeightedMovingAverage(MarketSeries.Close, 150);
     arrowOffset = Symbol.PipSize * 15;
 }
        protected override void Initialize()
        {
            Result = CreateDataSeries();

            iMACD  = Indicators.MacdCrossOver(26, 12, 9);
            iBands = Indicators.BollingerBands(MarketSeries.Close, 20, 2, MovingAverageType.Simple);
        }
예제 #4
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);
            }
        }
예제 #5
0
 protected override void Initialize()
 {
     // Initialize and create nested indicators
     _macdCrossOver          = Indicators.MacdCrossOver(Source, SlowPeriodParameter, FastPeriodParameter, SignalPeriods);
     _priorBullishCrossIndex = 0;
     _priorBearishCrossIndex = 0;
 }
예제 #6
0
 private int CalculateTiming(MacdCrossOver macd)
 {
     if (macd.Histogram.LastValue > 0)
     {
         return(1);
     }
     else
     {
         return(-1);
     }
 }
예제 #7
0
        protected override void OnStart()
        {
            _SOC  = Indicators.StochasticOscillator(KPeriods, KSlowing, DPeriods, MovingAverageType.Simple);
            _MACD = Indicators.MacdCrossOver(LongCycle, ShortCycle, MACDPeriod);

            _RSI = Indicators.RelativeStrengthIndex(MarketSeries.Close, RSIPeriods);

            fastMa = Indicators.ExponentialMovingAverage(MarketSeries.Close, FastPeriods);
            slowMa = Indicators.ExponentialMovingAverage(MarketSeries.Close, SlowPeriods);

            TakeProfit = TakeProfit * 10;
            PipStart   = PipStep / 10;
            PipStep    = PipStep * 10;

            PipMulti = PipStep / 100;
        }
예제 #8
0
        protected override void OnStart()
        {
            barId             = MarketSeries.Close.Count;
            pendingOrderBarId = barId;

            rseries = MarketData.GetSeries(MarketSeries.SymbolCode, TimeFrame.Day2);

            lmm50  = Indicators.ExponentialMovingAverage(MarketSeries.Close, 50);
            rmm200 = Indicators.SimpleMovingAverage(rseries.Close, 200);

            lmacd = Indicators.MacdCrossOver(MarketSeries.Close, 26, 12, 9);
            rmacd = Indicators.MacdCrossOver(rseries.Close, 26, 12, 9);

            atr = Indicators.AverageTrueRange(MarketSeries, 14, MovingAverageType.Simple);
            Positions.Closed += PositionsOnClosed;
            Positions.Opened += PositionsOnOpened;
        }
예제 #9
0
        protected override void Initialize()
        {
            if (Show_WaveA)
            {
                MAC1 = Indicators.MacdCrossOver(34, 8, 34);
                MAC2 = Indicators.MacdCrossOver(55, 8, 55);
            }

            if (Show_WaveB)
            {
                MAC3 = Indicators.MacdCrossOver(89, 8, 89);
                MAC4 = Indicators.MacdCrossOver(144, 8, 144);
            }
            if (Show_WaveC)
            {
                MAC5 = Indicators.MacdCrossOver(233, 8, 233);
                MAC6 = Indicators.MacdCrossOver(377, 8, 377);
            }
        }
예제 #10
0
        protected override void OnStart()
        {
            BarId             = MarketSeries.Close.Count;
            LastPositionBarId = BarId;

            var reftf = GetReferenceTimeframe(MarketSeries.TimeFrame);

            rseries = MarketData.GetSeries(MarketSeries.SymbolCode, reftf);

            lmm50  = Indicators.ExponentialMovingAverage(MarketSeries.Close, 50);
            lmm100 = Indicators.WeightedMovingAverage(MarketSeries.Close, 100);
            lmm200 = Indicators.WeightedMovingAverage(MarketSeries.Close, 200);
            rmm200 = Indicators.WeightedMovingAverage(rseries.Close, 200);

            lmacd = Indicators.MacdCrossOver(MarketSeries.Close, 26, 12, 9);
            rmacd = Indicators.MacdCrossOver(rseries.Close, 26, 12, 9);

            rsi = Indicators.RelativeStrengthIndex(MarketSeries.Close, 6);
            Positions.Closed += PositionsOnClosed;
        }
예제 #11
0
 private int CalculateTiming(MacdCrossOver macd, WeightedMovingAverage wma, MarketSeries series)
 {
     if (IsTrendUp(series, wma))
     {
         if (macd.Histogram.LastValue > 0 && macd.Signal.LastValue > 0)
         {
             return(1);
         }
         else if (macd.Histogram.LastValue > 0 && macd.Signal.LastValue < 0)
         {
             return(4);
         }
         else if (macd.Histogram.LastValue <= 0 && macd.Signal.LastValue >= 0)
         {
             return(2);
         }
         else
         {
             return(3);
         }
     }
     else
     {
         if (macd.Histogram.LastValue < 0 && macd.Signal.LastValue < 0)
         {
             return(-1);
         }
         else if (macd.Histogram.LastValue < 0 && macd.Signal.LastValue > 0)
         {
             return(-4);
         }
         else if (macd.Histogram.LastValue >= 0 && macd.Signal.LastValue <= 0)
         {
             return(-2);
         }
         else
         {
             return(-3);
         }
     }
 }
예제 #12
0
        protected override void Initialize()
        {
            reftf   = GetReferenceTimeFrame(MarketSeries.TimeFrame);
            rseries = MarketData.GetSeries(reftf);

            lmacd = Indicators.MacdCrossOver(MarketSeries.Close, 26, 12, 9);
            rmacd = Indicators.MacdCrossOver(rseries.Close, 26, 12, 9);

            lma = Indicators.WeightedMovingAverage(MarketSeries.Close, 200);
            rma = Indicators.WeightedMovingAverage(rseries.Close, 200);

            Print("Load reference time frame: {0}", reftf);

            Reference = CreateDataSeries();
            Local     = CreateDataSeries();

            var result = CalculateMarketTiming();

            Reference[MarketSeries.Close.Count - 1] = result.Reference;
            Local[MarketSeries.Close.Count - 1]     = result.Local;
        }
예제 #13
0
        protected override void OnStart()
        {
            bars = MarketSeries.Close.Count;

            var reftf = GetReferenceTimeframe(MarketSeries.TimeFrame);

            rseries = MarketData.GetSeries(MarketSeries.SymbolCode, reftf);

            lmacd = Indicators.MacdCrossOver(MarketSeries.Close, 26, 12, 9);
            rmacd = Indicators.MacdCrossOver(rseries.Close, 26, 12, 9);

            atr = Indicators.AverageTrueRange(MarketSeries, 14, MovingAverageType.Exponential);
            rsi = Indicators.RelativeStrengthIndex(MarketSeries.Close, 6);

            lmm150 = Indicators.WeightedMovingAverage(MarketSeries.Close, 150);
            lmm300 = Indicators.WeightedMovingAverage(MarketSeries.Close, 300);
            rmm150 = Indicators.WeightedMovingAverage(rseries.Close, 150);
            rmm300 = Indicators.WeightedMovingAverage(rseries.Close, 300);

            Positions.Closed += PositionsOnClosed;
        }
예제 #14
0
        protected override void OnStart()
        {
            var reftf = GetReferenceTimeframe(MarketSeries.TimeFrame);

            rseries = MarketData.GetSeries(MarketSeries.SymbolCode, reftf);

            atr = Indicators.AverageTrueRange(MarketSeries, 6, MovingAverageType.Weighted);
            sto = Indicators.StochasticOscillator(MarketSeries, 13, 9, 4, MovingAverageType.Simple);

            ema8 = Indicators.ExponentialMovingAverage(MarketSeries.Close, 8);
            ema3 = Indicators.ExponentialMovingAverage(MarketSeries.Close, 3);

            lmm150 = Indicators.WeightedMovingAverage(MarketSeries.Close, 150);
            lmm300 = Indicators.WeightedMovingAverage(MarketSeries.Close, 300);
            rmm150 = Indicators.WeightedMovingAverage(rseries.Close, 150);
            rmm300 = Indicators.WeightedMovingAverage(rseries.Close, 300);

            lmacd = Indicators.MacdCrossOver(MarketSeries.Close, 26, 12, 9);
            rmacd = Indicators.MacdCrossOver(rseries.Close, 26, 12, 9);

            Positions.Closed += PositionsOnClosed;
        }
예제 #15
0
        protected override void OnStart()
        {
            BarId             = MarketSeries.Close.Count;
            LastPositionBarId = BarId;

            var reftf = GetReferenceTimeframe(MarketSeries.TimeFrame);

            rseries = MarketData.GetSeries(MarketSeries.SymbolCode, reftf);

            lmm50  = Indicators.WeightedMovingAverage(MarketSeries.Close, 50);
            lmm100 = Indicators.WeightedMovingAverage(MarketSeries.Close, 100);
            lmm200 = Indicators.WeightedMovingAverage(MarketSeries.Close, 200);
            rmm200 = Indicators.WeightedMovingAverage(rseries.Close, 200);

            lmacd = Indicators.MacdCrossOver(MarketSeries.Close, 26, 12, 9);
            rmacd = Indicators.MacdCrossOver(rseries.Close, 26, 12, 9);

            rsi = Indicators.RelativeStrengthIndex(MarketSeries.Close, 6);
            sto = Indicators.StochasticOscillator(MarketSeries, 14, 3, 3, MovingAverageType.Simple);

            Positions.Closed += PositionsOnClosed;
            currentPosition   = Positions.Find(Label, Symbol);
        }
예제 #16
0
        //private HashSet<Int32> ignorableIds;

        protected override void OnStart()
        {
            //ignorableIds = new HashSet<int>();

            BarId             = MarketSeries.Close.Count;
            LastPositionBarId = BarId;

            var reftf = GetReferenceTimeframe(MarketSeries.TimeFrame);

            rseries = MarketData.GetSeries(MarketSeries.SymbolCode, reftf);

            lmm8   = Indicators.ExponentialMovingAverage(MarketSeries.Close, 8);
            lmm100 = Indicators.WeightedMovingAverage(MarketSeries.Close, 100);
            lmm200 = Indicators.WeightedMovingAverage(MarketSeries.Close, 200);
            rmm200 = Indicators.WeightedMovingAverage(rseries.Close, 200);

            lmacd = Indicators.MacdCrossOver(MarketSeries.Close, 26, 12, 9);
            rmacd = Indicators.MacdCrossOver(rseries.Close, 26, 12, 9);

            atr = Indicators.AverageTrueRange(MarketSeries, 14, MovingAverageType.Simple);
            sto = Indicators.StochasticOscillator(MarketSeries, 13, 3, 3, MovingAverageType.Simple);

            Positions.Closed += PositionsOnClosed;
        }
예제 #17
0
        protected override void OnStart()
        {
            _SOC = Indicators.StochasticOscillator(KPeriods, KSlowing, DPeriods, MovingAverageType.Simple);
            _MACD = Indicators.MacdCrossOver(LongCycle, ShortCycle, MACDPeriod);

            _RSI = Indicators.RelativeStrengthIndex(MarketSeries.Close, RSIPeriods);

            fastMa = Indicators.ExponentialMovingAverage(MarketSeries.Close, FastPeriods);
            slowMa = Indicators.ExponentialMovingAverage(MarketSeries.Close, SlowPeriods);

            TakeProfit = TakeProfit * 10;
            PipStart = PipStep / 10;
            PipStep = PipStep * 10;

            PipMulti = PipStep / 100;
        }
예제 #18
0
 protected override void Initialize()
 {
     // Initialize and create nested indicators
     macdCrossOver = Indicators.MacdCrossOver(source, longCycle, shortCycle, Periods);
     rsi = Indicators.RelativeStrengthIndex(source, Periods);
 }
예제 #19
0
파일: MACD 4C.cs 프로젝트: Pius-emy/MACD-4C
 protected override void Initialize()
 {
     this.macd = this.Indicators.MacdCrossOver(source: this.Bars.ClosePrices, longCycle: this.SlowMA, shortCycle: this.FastMA, signalPeriods: this.SignalPeriod);
 }
예제 #20
0
 protected override void Initialize()
 {
     // Initialize and create nested indicators
     macdCrossOver = Indicators.MacdCrossOver(source, longCycle, shortCycle, Periods);
     rsi           = Indicators.RelativeStrengthIndex(source, Periods);
 }
예제 #21
0
 protected override void Initialize()
 {
     OSMA = CreateDataSeries();
     MAC  = Indicators.MacdCrossOver(MarketSeries.Close, Long_Cycle, Short_Cycle, Signal);
 }