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; } }
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); }
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; } }