Exemplo n.º 1
0
        private void SetStopLossAndProfitTarget(SideTrade sideTrade, string orderSignalName, double targetPercent)
        {
            //----Bearish----|---Bullish---
            //----3----------|----------0--
            //-----\---1-----|-----2---/---
            //------\-/-\----|----/-\-/----
            //-------2---\---|---/---1-----
            //------------0--|--3----------

            MatrixPoints lastMastrix = DowTheoryIndicator1.LastMatrix;
            Point        pointZero   = lastMastrix.PointsList[0];
            Point        pointOne    = lastMastrix.PointsList[1];
            Point        pointTwo    = lastMastrix.PointsList[2];

            switch (sideTrade)
            {
            case SideTrade.Long:
                Draw.Line(this, "Stop loss line from: " + orderSignalName + " " + pointOne.Index,
                          ConvertBarIndexToBarsAgo(this, pointTwo.BarIndex), pointOne.Price,
                          ConvertBarIndexToBarsAgo(this, pointZero.BarIndex), pointOne.Price, Brushes.Green);

                // Definir um ponto para o stop
                SetStopLoss(orderSignalName, CalculationMode.Price, pointOne.Price, false);

                double longTargetPrice = MirrorFibonacciCalc(pointOne, pointTwo, targetPercent, SideTrade.Long);

                Draw.Line(this, "Profit target line from: " + orderSignalName + " " + pointOne.Index,
                          ConvertBarIndexToBarsAgo(this, pointTwo.BarIndex), longTargetPrice,
                          ConvertBarIndexToBarsAgo(this, pointZero.BarIndex), longTargetPrice, Brushes.Green);

                SetProfitTarget(orderSignalName, CalculationMode.Price, longTargetPrice, false);
                break;

            case SideTrade.Short:
                Draw.Line(this, "Stop loss line from: " + orderSignalName + " " + pointOne.Index,
                          ConvertBarIndexToBarsAgo(this, pointTwo.BarIndex), pointOne.Price,
                          ConvertBarIndexToBarsAgo(this, pointZero.BarIndex), pointOne.Price, Brushes.Red);

                // Definir um ponto para o stop
                SetStopLoss(orderSignalName, CalculationMode.Price, pointOne.Price, false);

                double shortTargetPrice = MirrorFibonacciCalc(pointOne, pointTwo, targetPercent, SideTrade.Short);

                Draw.Line(this, "Profit target line from: " + orderSignalName + " " + pointOne.Index,
                          ConvertBarIndexToBarsAgo(this, pointTwo.BarIndex), shortTargetPrice,
                          ConvertBarIndexToBarsAgo(this, pointZero.BarIndex), shortTargetPrice, Brushes.Red);

                SetProfitTarget(orderSignalName, CalculationMode.Price, shortTargetPrice);
                break;
            }
        }
Exemplo n.º 2
0
        protected bool IsNewMatrixTheSameTheLastOne(List <Point> newPointsList)
        {
            if (matrixPointsList.Count <= 0)
            {
                return(false);
            }

            MatrixPoints lastMatrix = matrixPointsList[matrixPointsList.Count - 1];

            // Test all points except the last one
            for (int i = 0; i <= newPointsList.Count - 2; i++)
            {
                if (lastMatrix.PointsList[i].Index != newPointsList[i].Index)
                {
                    return(false);
                }
            }

            return(true);
        }
Exemplo n.º 3
0
        public static void DrawPivot(NinjaScriptBase owner, DrawingProperties drawingProperties, MatrixPoints matrixPoints)
        {
            switch (matrixPoints.TrendSideSignal)
            {
            case MatrixPoints.WhichTrendSideSignal.Bullish:
                DrawWrapper.DrawPathLine(owner, drawingProperties,
                                         matrixPoints.PointsList[3].Index,
                                         matrixPoints.PointsList[3].BarIndex,
                                         matrixPoints.PointsList[3].Price,
                                         matrixPoints.PointsList[2].BarIndex,
                                         matrixPoints.PointsList[2].Price,
                                         System.Windows.Media.Brushes.Green);

                DrawWrapper.DrawPathLine(owner, drawingProperties,
                                         matrixPoints.PointsList[2].Index,
                                         matrixPoints.PointsList[2].BarIndex,
                                         matrixPoints.PointsList[2].Price,
                                         matrixPoints.PointsList[1].BarIndex,
                                         matrixPoints.PointsList[1].Price,
                                         System.Windows.Media.Brushes.Green);

                DrawWrapper.DrawPathLine(owner, drawingProperties,
                                         matrixPoints.PointsList[1].Index,
                                         matrixPoints.PointsList[1].BarIndex,
                                         matrixPoints.PointsList[1].Price,
                                         matrixPoints.PointsList[0].BarIndex,
                                         matrixPoints.PointsList[0].Price,
                                         System.Windows.Media.Brushes.Green);
                break;

            case MatrixPoints.WhichTrendSideSignal.Bearish:
                DrawWrapper.DrawPathLine(owner, drawingProperties,
                                         matrixPoints.PointsList[3].Index,
                                         matrixPoints.PointsList[3].BarIndex,
                                         matrixPoints.PointsList[3].Price,
                                         matrixPoints.PointsList[2].BarIndex,
                                         matrixPoints.PointsList[2].Price,
                                         System.Windows.Media.Brushes.Red);

                DrawWrapper.DrawPathLine(owner, drawingProperties,
                                         matrixPoints.PointsList[2].Index,
                                         matrixPoints.PointsList[2].BarIndex,
                                         matrixPoints.PointsList[2].Price,
                                         matrixPoints.PointsList[1].BarIndex,
                                         matrixPoints.PointsList[1].Price,
                                         System.Windows.Media.Brushes.Red);

                DrawWrapper.DrawPathLine(owner, drawingProperties,
                                         matrixPoints.PointsList[1].Index,
                                         matrixPoints.PointsList[1].BarIndex,
                                         matrixPoints.PointsList[1].Price,
                                         matrixPoints.PointsList[0].BarIndex,
                                         matrixPoints.PointsList[0].Price,
                                         System.Windows.Media.Brushes.Red);
                break;
            }
        }