// // Decision ... // // Peak ... bool isDecisionNewPeak = decisionConditions.x121Conditions.isNewPeak; bool isDecisionNewPeakOverLast = decisionConditions.x121Conditions.isNewPeakOverLast; bool isDecisionNewPeakUnderLast = decisionConditions.x121Conditions.isNewPeakUnderLast; double decisionPeak = decisionConditions.x121Conditions.peaksBuffer[1]; XPVPivotPoint decisionPeakPivots[]; XPVPivotPoint decisionLastPeakPivot; XPVPivotPoint decisionPrevPeakPivot; int decisionPeakPivotsCount = decisionCycleHelper .FillPeakPivotPoints(decisionPeakPivots); bool hasDecisionPeak = decisionPeakPivotsCount >= 2; if (hasDecisionPeak) { // decisionLastPeakPivot = decisionPeakPivots[decisionPeakPivotsCount - 1]; decisionPrevPeakPivot = decisionPeakPivots[decisionPeakPivotsCount - 2]; } // // Vale ... bool isDecisionNewVale = decisionConditions.x121Conditions.isNewVale; bool isDecisionNewValeOverLast = decisionConditions.x121Conditions.isNewValeOverLast; bool isDecisionNewValeUnderLast = decisionConditions.x121Conditions.isNewValeUnderLast; double decisionVale = decisionConditions.x121Conditions.valesBuffer[1]; XPVPivotPoint decisionValePivots[]; XPVPivotPoint decisionLastValePivot; XPVPivotPoint decisionPrevValePivot; int decisionValePivotsCount = decisionCycleHelper .FillValePivotPoints(decisionValePivots); bool hasDecisionVale = decisionValePivotsCount >= 2; if (hasDecisionVale) { // decisionLastValePivot = decisionValePivots[decisionValePivotsCount - 1]; decisionPrevValePivot = decisionValePivots[decisionValePivotsCount - 2]; } // bool isDecisionBullish = // hasDecisionVale && isDecisionNewVale && isDecisionNewValeUnderLast && decisionLastValePivot.value > decisionPrevValePivot.value // ; // bool isDecisionBearish = // false && hasDecisionPeak && decisionLastPeakPivot.value // ; // if (isDecisionBullish || isDecisionBearish) { // conditions.pivot = isDecisionBullish ? decisionVale : decisionPeak; conditions.dir = isDecisionBullish ? X_DIRECTION_BULLISH : X_DIRECTION_BEARISH; conditions.cycle = X_CYCLE_DECISION; }