diff --git a/Classes/x-saherelm.x121.provider.class.mq5 b/Classes/x-saherelm.x121.provider.class.mq5 index 01fa0b98..9d10492c 100644 --- a/Classes/x-saherelm.x121.provider.class.mq5 +++ b/Classes/x-saherelm.x121.provider.class.mq5 @@ -3127,89 +3127,60 @@ public: // // Generate Support Signal for Specified Provider ... - if (result && provider == ToString(PROVIDER_NONE)) + if (result) { // - double cKijunSen = cMarket.ich.GetKijunSen(0); - double sKijunSen = sMarket.ich.GetKijunSen(0); - double mKijunSen = mMarket.ich.GetKijunSen(0); - double lKijunSen = lMarket.ich.GetKijunSen(0); - double hKijunSen = hMarket.ich.GetKijunSen(0); + // Generate Opposit Signal ... // - double kijunSens[] = { - cKijunSen, - sKijunSen, - mKijunSen, - lKijunSen, - hKijunSen // - }; - - // - double lesserKijun = FindLesserThan( - entry, - kijunSens, - true // - ); - - // - double biggerKijun = FindBiggerThan( - entry, - kijunSens, - true // - ); - - // - ENUM_POSITION_TYPE sType = - hasLong - ? POSITION_TYPE_SELL - : POSITION_TYPE_BUY; - - bool isLongS = IsLong(sType); - - // - double sEntry = - isLongS - ? biggerKijun - : lesserKijun; - - // - double peakMin = GetMinPeaks(true); - double peakMax = GetMinPeaks(true); - double valeMin = GetMaxVales(true); - double valeMax = GetMaxVales(true); - - // - double sTP = - isLongS - ? peakMin - : valeMax; - - // - double sSL = - isLongS - ? valeMin - : peakMax; - - // - double sVolume = mSignal.volume * 2; - - // - // Prepare ... XSignal sSignal; - bool isValid = sSignal.Prepare( + + // + ENUM_POSITION_TYPE mType = IsLong(mSignal.type) + ? POSITION_TYPE_SELL + : POSITION_TYPE_BUY; + + // + bool isSLong = IsLong(mType); + + // + double sEntry = GetEntry( + mSignal.symbol, + mType // + ); + + // + double risk = MathAbs(mSignal.entry - sl); + + // + double reward = risk * r2r; + + // + double sSL = isSLong + ? entry - risk + : entry + risk; + + // + double sTP = isSLong + ? entry + reward + : entry - reward; + + // + bool isPrepared = sSignal.Prepare( mSignal.symbol, mSignal.provider, mSignal.period, - sType, - X_ORDER_MODE_STOP, + mType, + mSignal.mode, sEntry, - sVolume, - X_SIGNAL_USE_NOTHING, + mSignal.volume, + mSignal.action, sSL, sTP // ); - if (isValid) + + // + if (isPrepared) { // AddRef( @@ -3245,10 +3216,10 @@ public: FindSupportAndResistances(); // - // TODO: - + // TODO: + // - // Here We Have to Implement Trail Management for + // Here We Have to Implement Trail Management for // Spearate Providers ... //