1 (edited by deadlef 2018-11-14 10:50:36)

Topic: Why is this not working?

Hi,

i tried to implement Strategies from 3 Symbols into one Portfolio.

I do it like this.

[b]enum ENUM_SYM
  {
   AUDUSD,
   EURUSD,
   GBPUSD
  }; [/b]
static input double Entry_Amount      = 1.00;         // Entry lots
static input int    Base_Magic_Number = 100;          // Base Magic Number
[b]input ENUM_SYM      Pair              = AUDUSD;       // CHOOSE PAIR[/b]

#define TRADE_RETRY_COUNT 4
#define TRADE_RETRY_WAIT  100
#define OP_FLAT           -1

// Session time is set in seconds from 00:00
const int sessionSundayOpen           = 0;     // 00:00
const int sessionSundayClose          = 86400; // 24:00
const int sessionMondayThursdayOpen   = 0;     // 00:00
const int sessionMondayThursdayClose  = 86400; // 24:00
const int sessionFridayOpen           = 0;     // 00:00
const int sessionFridayClose          = 86400; // 24:00
const bool sessionIgnoreSunday        = true;
const bool sessionCloseAtSessionClose = false;
const bool sessionCloseAtFridayClose  = false;

const int    strategiesCount = [b]15[/b];
const double sigma           = 0.000001;

NOW I ADD SIGNALS FROM EACH PAIR.

void SetSignals(Signal &signalList[])
  {
   int i=0;
   ArrayResize(signalList,2*strategiesCount);
   HideTestIndicators(true);

   /*STRATEGY CODE {"properties":{"entryLots":1,"stopLoss":0,"takeProfit":273,"useStopLoss":false,"useTakeProfit":true,"isTrailingStop":false},"openFilters":[{"name":"Accelerator Oscillator","listIndexes":[4,0,0,0,0],"numValues":[-0.0003,0,0,0,0,0]},{"name":"ADX","listIndexes":[1,0,0,0,0],"numValues":[2,0,0,0,0,0]},{"name":"On Balance Volume","listIndexes":[0,0,0,0,0],"numValues":[0,0,0,0,0,0]}],"closeFilters":[{"name":"Commodity Channel Index","listIndexes":[2,5,0,0,0],"numValues":[46,122,0,0,0,0]}]} */
   signalList[i++] = GetExitSignal_00();
   if(Pair==AUDUSD)
   signalList[i++] = GetEntrySignal_00();

   /*STRATEGY CODE {"properties":{"entryLots":1,"stopLoss":289,"takeProfit":117,"useStopLoss":true,"useTakeProfit":true,"isTrailingStop":false},"openFilters":[{"name":"Bulls Power","listIndexes":[4,0,0,0,0],"numValues":[34,0.0006,0,0,0,0]}],"closeFilters":[{"name":"Moving Average of Oscillator","listIndexes":[4,3,0,0,0],"numValues":[25,41,14,0.0009,0,0]}]} */
   signalList[i++] = GetExitSignal_01();
   if(Pair==AUDUSD)   
   signalList[i++] = GetEntrySignal_01();

   /*STRATEGY CODE {"properties":{"entryLots":1,"stopLoss":0,"takeProfit":0,"useStopLoss":false,"useTakeProfit":false,"isTrailingStop":false},"openFilters":[{"name":"DeMarker","listIndexes":[5,0,0,0,0],"numValues":[28,0.39,0,0,0,0]},{"name":"Momentum","listIndexes":[6,3,0,0,0],"numValues":[36,100,0,0,0,0]}],"closeFilters":[{"name":"Moving Averages Crossover","listIndexes":[0,0,0,0,0],"numValues":[12,42,0,0,0,0]}]} */
   signalList[i++] = GetExitSignal_02();  
   if(Pair==AUDUSD)   
   signalList[i++] = GetEntrySignal_02();

   /*STRATEGY CODE {"properties":{"entryLots":1,"stopLoss":0,"takeProfit":144,"useStopLoss":false,"useTakeProfit":true,"isTrailingStop":false},"openFilters":[{"name":"Directional Indicators","listIndexes":[1,0,0,0,0],"numValues":[22,0,0,0,0,0]},{"name":"Directional Indicators","listIndexes":[1,0,0,0,0],"numValues":[7,0,0,0,0,0]},{"name":"Alligator","listIndexes":[2,3,4,0,0],"numValues":[40,26,28,15,12,3]}],"closeFilters":[{"name":"Money Flow Index","listIndexes":[5,0,0,0,0],"numValues":[25,27,0,0,0,0]}]} */
   signalList[i++] = GetExitSignal_03();   
   if(Pair==AUDUSD)   
   signalList[i++] = GetEntrySignal_03();

   /*STRATEGY CODE {"properties":{"entryLots":1,"stopLoss":238,"takeProfit":0,"useStopLoss":true,"useTakeProfit":false,"isTrailingStop":false},"openFilters":[{"name":"Accelerator Oscillator","listIndexes":[5,0,0,0,0],"numValues":[-0.0004,0,0,0,0,0]},{"name":"On Balance Volume","listIndexes":[3,0,0,0,0],"numValues":[0,0,0,0,0,0]}],"closeFilters":[{"name":"Commodity Channel Index","listIndexes":[2,5,0,0,0],"numValues":[37,71,0,0,0,0]}]} */
   signalList[i++] = GetExitSignal_04();
   if(Pair==AUDUSD)      
   signalList[i++] = GetEntrySignal_04();

//+------------------------------------------------------------------+
//|EURUSD                                                            |
//+------------------------------------------------------------------+

   /*STRATEGY CODE {"properties":{"entryLots":1,"stopLoss":254,"takeProfit":0,"useStopLoss":true,"useTakeProfit":false,"isTrailingStop":false},"openFilters":[{"name":"DeMarker","listIndexes":[1,0,0,0,0],"numValues":[4,0,0,0,0,0]},{"name":"MACD Signal","listIndexes":[0,3,0,0,0],"numValues":[15,23,12,0,0,0]},{"name":"ADX","listIndexes":[1,0,0,0,0],"numValues":[38,0,0,0,0,0]}],"closeFilters":[{"name":"Moving Averages Crossover","listIndexes":[0,0,0,0,0],"numValues":[11,44,0,0,0,0]}]} */
   signalList[i++] = GetExitSignal_05();
   if(Pair==EURUSD)   
   signalList[i++] = GetEntrySignal_05();

   /*STRATEGY CODE {"properties":{"entryLots":1,"stopLoss":83,"takeProfit":122,"useStopLoss":true,"useTakeProfit":true,"isTrailingStop":false},"openFilters":[{"name":"Moving Average","listIndexes":[1,0,3,0,0],"numValues":[28,1,0,0,0,0]},{"name":"Stochastic Signal","listIndexes":[0,0,0,0,0],"numValues":[7,4,14,0,0,0]},{"name":"RVI Signal","listIndexes":[0,0,0,0,0],"numValues":[21,0,0,0,0,0]}],"closeFilters":[{"name":"Stochastic","listIndexes":[2,0,0,0,0],"numValues":[18,22,12,73,0,0]}]} */
   signalList[i++] = GetExitSignal_06();
   if(Pair==EURUSD)   
   signalList[i++] = GetEntrySignal_06();

   /*STRATEGY CODE {"properties":{"entryLots":1,"stopLoss":0,"takeProfit":0,"useStopLoss":false,"useTakeProfit":false,"isTrailingStop":false},"openFilters":[{"name":"On Balance Volume","listIndexes":[3,0,0,0,0],"numValues":[0,0,0,0,0,0]},{"name":"Moving Average of Oscillator","listIndexes":[4,3,0,0,0],"numValues":[16,15,9,0,0,0]},{"name":"Accumulation Distribution","listIndexes":[1,0,0,0,0],"numValues":[0,0,0,0,0,0]}],"closeFilters":[{"name":"Bollinger Bands","listIndexes":[2,3,0,0,0],"numValues":[19,2.1,0,0,0,0]}]} */
   signalList[i++] = GetExitSignal_07();
   if(Pair==EURUSD)   
   signalList[i++] = GetEntrySignal_07();

   /*STRATEGY CODE {"properties":{"entryLots":1,"stopLoss":106,"takeProfit":0,"useStopLoss":true,"useTakeProfit":false,"isTrailingStop":false},"openFilters":[{"name":"Stochastic","listIndexes":[5,0,0,0,0],"numValues":[5,1,1,19,0,0]},{"name":"DeMarker","listIndexes":[5,0,0,0,0],"numValues":[23,0.35,0,0,0,0]}],"closeFilters":[{"name":"Awesome Oscillator","listIndexes":[2,0,0,0,0],"numValues":[0.0009,0,0,0,0,0]}]} */
   signalList[i++] = GetExitSignal_08();
   if(Pair==EURUSD)   
   signalList[i++] = GetEntrySignal_08();

   /*STRATEGY CODE {"properties":{"entryLots":1,"stopLoss":251,"takeProfit":0,"useStopLoss":true,"useTakeProfit":false,"isTrailingStop":false},"openFilters":[{"name":"Candle Color","listIndexes":[0,0,0,0,0],"numValues":[28,1,0,0,0,0]},{"name":"Bears Power","listIndexes":[4,0,0,0,0],"numValues":[20,-0.0009,0,0,0,0]}],"closeFilters":[{"name":"Bollinger Bands","listIndexes":[2,3,0,0,0],"numValues":[31,1.25,0,0,0,0]}]} */
   signalList[i++] = GetExitSignal_09();
   if(Pair==EURUSD)   
   signalList[i++] = GetEntrySignal_09();
//+------------------------------------------------------------------+
//|GBPUSD                                                            |
//+------------------------------------------------------------------+
   /*STRATEGY CODE {"properties":{"entryLots":1,"stopLoss":0,"takeProfit":125,"useStopLoss":false,"useTakeProfit":true,"isTrailingStop":false},"openFilters":[{"name":"Stochastic Signal","listIndexes":[1,0,0,0,0],"numValues":[30,2,10,0,0,0]}],"closeFilters":[{"name":"Money Flow Index","listIndexes":[5,0,0,0,0],"numValues":[33,72,0,0,0,0]}]} */
   signalList[i++] = GetExitSignal_10();
   if(Pair==GBPUSD)   
   signalList[i++] = GetEntrySignal_10();

   /*STRATEGY CODE {"properties":{"entryLots":1,"stopLoss":0,"takeProfit":24,"useStopLoss":false,"useTakeProfit":true,"isTrailingStop":false},"openFilters":[{"name":"On Balance Volume","listIndexes":[1,0,0,0,0],"numValues":[0,0,0,0,0,0]},{"name":"Standard Deviation","listIndexes":[5,3,0,0,0],"numValues":[17,0.0038,0,0,0,0]}],"closeFilters":[{"name":"RSI","listIndexes":[4,3,0,0,0],"numValues":[42,39,0,0,0,0]}]} */
   signalList[i++] = GetExitSignal_11();
   if(Pair==GBPUSD) 
   signalList[i++] = GetEntrySignal_11();

   /*STRATEGY CODE {"properties":{"entryLots":1,"stopLoss":0,"takeProfit":0,"useStopLoss":false,"useTakeProfit":false,"isTrailingStop":false},"openFilters":[{"name":"Stochastic","listIndexes":[5,0,0,0,0],"numValues":[7,9,7,19,0,0]},{"name":"Bollinger Bands","listIndexes":[1,3,0,0,0],"numValues":[9,1.83,0,0,0,0]}],"closeFilters":[{"name":"Money Flow Index","listIndexes":[2,0,0,0,0],"numValues":[17,69,0,0,0,0]}]} */
   signalList[i++] = GetExitSignal_12();
   if(Pair==GBPUSD) 
   signalList[i++] = GetEntrySignal_12();

   /*STRATEGY CODE {"properties":{"entryLots":1,"stopLoss":61,"takeProfit":0,"useStopLoss":true,"useTakeProfit":false,"isTrailingStop":false},"openFilters":[{"name":"Bulls Power","listIndexes":[5,0,0,0,0],"numValues":[48,-0.0002,0,0,0,0]},{"name":"Standard Deviation","listIndexes":[1,3,0,0,0],"numValues":[19,0,0,0,0,0]},{"name":"Bulls Power","listIndexes":[2,0,0,0,0],"numValues":[25,0,0,0,0,0]}],"closeFilters":[{"name":"Moving Averages Crossover","listIndexes":[2,0,0,0,0],"numValues":[17,36,0,0,0,0]}]} */
   signalList[i++] = GetExitSignal_13();
   if(Pair==GBPUSD) 
   signalList[i++] = GetEntrySignal_13();

   /*STRATEGY CODE {"properties":{"entryLots":1,"stopLoss":253,"takeProfit":0,"useStopLoss":true,"useTakeProfit":false,"isTrailingStop":false},"openFilters":[{"name":"Bears Power","listIndexes":[2,0,0,0,0],"numValues":[11,0,0,0,0,0]},{"name":"Bears Power","listIndexes":[5,0,0,0,0],"numValues":[27,-0.0006,0,0,0,0]}],"closeFilters":[{"name":"Force Index","listIndexes":[5,0,0,0,0],"numValues":[38,0,0,0,0,0]}]} */
   signalList[i++] = GetExitSignal_14();
   if(Pair==GBPUSD) 
   signalList[i++] = GetEntrySignal_14();

   HideTestIndicators(false);
   if(i!=2*strategiesCount)
      ArrayResize(signalList,i);
  }

//+------------------------------------------------------------------+
//|AUDUSD SIGNALS                                                    |
//+------------------------------------------------------------------+
Signal GetEntrySignal_00()
  {
   double ind0val1 = iAC(NULL,0,1);
   double ind0val2 = iAC(NULL,0,2);
   bool ind0long  = ind0val1 > -0.0003 + sigma && ind0val2 < -0.0003 - sigma;
   bool ind0short = ind0val1 < -1*-0.0003 - sigma && ind0val2 > -1*-0.0003 + sigma;
   double ind1val1 = iADX(NULL,0,2,PRICE_CLOSE,0,1);
   double ind1val2 = iADX(NULL,0,2,PRICE_CLOSE,0,2);
   bool ind1long  = ind1val1 < ind1val2 - sigma;
   bool ind1short = ind1long;
   double ind2val1 = iOBV(NULL,0,PRICE_CLOSE,1);
   double ind2val2 = iOBV(NULL,0,PRICE_CLOSE,2);
   bool ind2long  = ind2val1 > ind2val2 + sigma;
   bool ind2short = ind2val1 < ind2val2 - sigma;

   Signal signal = CreateEntrySignal(0, ind0long && ind1long && ind2long, ind0short && ind1short && ind2short, 0, 273, false);
   return (signal);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
Signal GetExitSignal_00()
  {
   double ind3val1 = iCCI(NULL,0,46,PRICE_TYPICAL,1);
   bool ind3long  = ind3val1 > 122 + sigma;
   bool ind3short = ind3val1 < -1*122 - sigma;

   Signal signal = CreateExitSignal(0, ind3long, ind3short, 0, 273, false);
   return (signal);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
Signal GetEntrySignal_01()
  {
   double ind0val1 = iBullsPower(NULL,0,34,PRICE_CLOSE,1);
   double ind0val2 = iBullsPower(NULL,0,34,PRICE_CLOSE,2);
   bool ind0long  = ind0val1 > 0.0006 + sigma && ind0val2 < 0.0006 - sigma;
   bool ind0short = ind0val1 < -1*0.0006 - sigma && ind0val2 > -1*0.0006 + sigma;

   Signal signal = CreateEntrySignal(1, ind0long, ind0short, 289, 117, false);
   return (signal);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
Signal GetExitSignal_01()
  {
   double ind1val1 = iOsMA(NULL,0,25,41,14,PRICE_CLOSE,1);
   double ind1val2 = iOsMA(NULL,0,25,41,14,PRICE_CLOSE,2);
   bool ind1long  = ind1val1 > 0.0009 + sigma && ind1val2 < 0.0009 - sigma;
   bool ind1short = ind1val1 < -1*0.0009 - sigma && ind1val2 > -1*0.0009 + sigma;

   Signal signal = CreateExitSignal(1, ind1long, ind1short, 289, 117, false);
   return (signal);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
Signal GetEntrySignal_02()
  {
   double ind0val1 = iDeMarker(NULL,0,28,1);
   double ind0val2 = iDeMarker(NULL,0,28,2);
   bool ind0long  = ind0val1 < 0.39 - sigma && ind0val2 > 0.39 + sigma;
   bool ind0short = ind0val1 > 1 - 0.39 + sigma && ind0val2 < 1 - 0.39 - sigma;
   double ind1val1 = iMomentum(NULL,0,36,PRICE_CLOSE,1);
   double ind1val2 = iMomentum(NULL,0,36,PRICE_CLOSE,2);
   double ind1val3 = iMomentum(NULL,0,36,PRICE_CLOSE,3);
   bool ind1long  = ind1val1 > ind1val2 + sigma && ind1val2 < ind1val3 - sigma;
   bool ind1short = ind1val1 < ind1val2 - sigma && ind1val2 > ind1val3 + sigma;

   Signal signal = CreateEntrySignal(2, ind0long && ind1long, ind0short && ind1short, 0, 0, false);
   return (signal);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
Signal GetExitSignal_02()
  {
   double ind2val1 = iMA(NULL,0,12,0,MODE_SMA,PRICE_CLOSE,1);
   double ind2val2 = iMA(NULL,0,42,0,MODE_SMA,PRICE_CLOSE,1);
   double ind2val3 = iMA(NULL,0,12,0,MODE_SMA,PRICE_CLOSE,2);
   double ind2val4 = iMA(NULL,0,42,0,MODE_SMA,PRICE_CLOSE,2);
   bool ind2long  = ind2val1 > ind2val2 + sigma && ind2val3 < ind2val4 - sigma;
   bool ind2short = ind2val1 < ind2val2 - sigma && ind2val3 > ind2val4 + sigma;

   Signal signal = CreateExitSignal(2, ind2long, ind2short, 0, 0, false);
   return (signal);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
Signal GetEntrySignal_03()
  {
   double ind0val1 = iADX(NULL,0,22,PRICE_CLOSE,1,1) - iADX(NULL,0,22,PRICE_CLOSE,2,1);
   double ind0val2 = iADX(NULL,0,22,PRICE_CLOSE,1,2) - iADX(NULL,0,22,PRICE_CLOSE,2,2);
   bool ind0long  = ind0val1 < 0 - sigma && ind0val2 > 0 + sigma;
   bool ind0short = ind0val1 > 0 + sigma && ind0val2 < 0 - sigma;
   double ind1val1 = iADX(NULL,0,7,PRICE_CLOSE,1,1) - iADX(NULL,0,7,PRICE_CLOSE,2,1);
   double ind1val2 = iADX(NULL,0,7,PRICE_CLOSE,1,2) - iADX(NULL,0,7,PRICE_CLOSE,2,2);
   bool ind1long  = ind1val1 < 0 - sigma && ind1val2 > 0 + sigma;
   bool ind1short = ind1val1 > 0 + sigma && ind1val2 < 0 - sigma;
   double ind2val1 = iAlligator(NULL,0,40,26,28,15,12,3,MODE_SMMA,PRICE_MEDIAN,MODE_GATORTEETH,1);
   double ind2val2 = iAlligator(NULL,0,40,26,28,15,12,3,MODE_SMMA,PRICE_MEDIAN,MODE_GATORTEETH,2);
   bool ind2long  = ind2val1 > ind2val2 + sigma;
   bool ind2short = ind2val1 < ind2val2 - sigma;

   Signal signal = CreateEntrySignal(3, ind0long && ind1long && ind2long, ind0short && ind1short && ind2short, 0, 144, false);
   return (signal);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
Signal GetExitSignal_03()
  {
   double ind3val1 = iMFI(NULL,0,25,1);
   double ind3val2 = iMFI(NULL,0,25,2);
   bool ind3long  = ind3val1 < 27 - sigma && ind3val2 > 27 + sigma;
   bool ind3short = ind3val1 > 100 - 27 + sigma && ind3val2 < 100 - 27 - sigma;

   Signal signal = CreateExitSignal(3, ind3long, ind3short, 0, 144, false);
   return (signal);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
Signal GetEntrySignal_04()
  {
   double ind0val1 = iAC(NULL,0,1);
   double ind0val2 = iAC(NULL,0,2);
   bool ind0long  = ind0val1 < -0.0004 - sigma && ind0val2 > -0.0004 + sigma;
   bool ind0short = ind0val1 > -1*-0.0004 + sigma && ind0val2 < -1*-0.0004 - sigma;
   double ind1val1 = iOBV(NULL,0,PRICE_CLOSE,1);
   double ind1val2 = iOBV(NULL,0,PRICE_CLOSE,2);
   double ind1val3 = iOBV(NULL,0,PRICE_CLOSE,3);
   bool ind1long  = ind1val1 < ind1val2 - sigma && ind1val2 > ind1val3 + sigma;
   bool ind1short = ind1val1 > ind1val2 + sigma && ind1val2 < ind1val3 - sigma;

   Signal signal = CreateEntrySignal(4, ind0long && ind1long, ind0short && ind1short, 238, 0, false);
   return (signal);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
Signal GetExitSignal_04()
  {
   double ind2val1 = iCCI(NULL,0,37,PRICE_TYPICAL,1);
   bool ind2long  = ind2val1 > 71 + sigma;
   bool ind2short = ind2val1 < -1*71 - sigma;

   Signal signal = CreateExitSignal(4, ind2long, ind2short, 238, 0, false);
   return (signal);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//|EURUSD SIGNALS                                                    |
//+------------------------------------------------------------------+
Signal GetEntrySignal_05()
  {
   double ind0val1 = iDeMarker(NULL,0,4,1);
   double ind0val2 = iDeMarker(NULL,0,4,2);
   bool ind0long  = ind0val1 < ind0val2 - sigma;
   bool ind0short = ind0val1 > ind0val2 + sigma;
   double ind1val1 = iMACD(NULL,0,15,23,12,PRICE_CLOSE,MODE_MAIN,1) - iMACD(NULL,0,15,23,12,PRICE_CLOSE,MODE_SIGNAL,1);
   double ind1val2 = iMACD(NULL,0,15,23,12,PRICE_CLOSE,MODE_MAIN,2) - iMACD(NULL,0,15,23,12,PRICE_CLOSE,MODE_SIGNAL,2);
   bool ind1long  = ind1val1 > 0 + sigma && ind1val2 < 0 - sigma;
   bool ind1short = ind1val1 < 0 - sigma && ind1val2 > 0 + sigma;
   double ind2val1 = iADX(NULL,0,38,PRICE_CLOSE,0,1);
   double ind2val2 = iADX(NULL,0,38,PRICE_CLOSE,0,2);
   bool ind2long  = ind2val1 < ind2val2 - sigma;
   bool ind2short = ind2long;

   Signal signal = CreateEntrySignal(0, ind0long && ind1long && ind2long, ind0short && ind1short && ind2short, 254, 0, false);
   return (signal);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
Signal GetExitSignal_05()
  {
   double ind3val1 = iMA(NULL,0,11,0,MODE_SMA,PRICE_CLOSE,1);
   double ind3val2 = iMA(NULL,0,44,0,MODE_SMA,PRICE_CLOSE,1);
   double ind3val3 = iMA(NULL,0,11,0,MODE_SMA,PRICE_CLOSE,2);
   double ind3val4 = iMA(NULL,0,44,0,MODE_SMA,PRICE_CLOSE,2);
   bool ind3long  = ind3val1 > ind3val2 + sigma && ind3val3 < ind3val4 - sigma;
   bool ind3short = ind3val1 < ind3val2 - sigma && ind3val3 > ind3val4 + sigma;

   Signal signal = CreateExitSignal(0, ind3long, ind3short, 254, 0, false);
   return (signal);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
Signal GetEntrySignal_06()
  {
   double ind0val1 = iMA(NULL,0,28,1,MODE_SMA,PRICE_CLOSE,1);
   double ind0val2 = iMA(NULL,0,28,1,MODE_SMA,PRICE_CLOSE,2);
   bool ind0long  = ind0val1 < ind0val2 - sigma;
   bool ind0short = ind0val1 > ind0val2 + sigma;
   double ind1val1 = iStochastic(NULL,0,7,4,14,MODE_SMA,0,MODE_MAIN,1);
   double ind1val2 = iStochastic(NULL,0,7,4,14,MODE_SMA,0,MODE_SIGNAL,1);
   double ind1val3 = iStochastic(NULL,0,7,4,14,MODE_SMA,0,MODE_MAIN,2);
   double ind1val4 = iStochastic(NULL,0,7,4,14,MODE_SMA,0,MODE_SIGNAL,2);
   bool ind1long  = ind1val1 > ind1val2 + sigma && ind1val3 < ind1val4 - sigma;
   bool ind1short = ind1val1 < ind1val2 - sigma && ind1val3 > ind1val4 + sigma;
   double ind2val1 = iRVI(NULL,0,21,MODE_MAIN,1) - iRVI(NULL,0,21,MODE_SIGNAL,1);
   double ind2val2 = iRVI(NULL,0,21,MODE_MAIN,2) - iRVI(NULL,0,21,MODE_SIGNAL,2);
   bool ind2long  = ind2val1 > 0 + sigma && ind2val2 < 0 - sigma;
   bool ind2short = ind2val1 < 0 - sigma && ind2val2 > 0 + sigma;

   Signal signal = CreateEntrySignal(1, ind0long && ind1long && ind2long, ind0short && ind1short && ind2short, 83, 122, false);
   return (signal);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
Signal GetExitSignal_06()
  {
   double ind3val1 = iStochastic(NULL,0,18,22,12,MODE_SMA,STO_LOWHIGH,MODE_MAIN,1);
   bool ind3long  = ind3val1 > 73 + sigma;
   bool ind3short = ind3val1 < 100 - 73 - sigma;

   Signal signal = CreateExitSignal(1, ind3long, ind3short, 83, 122, false);
   return (signal);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
Signal GetEntrySignal_07()
  {
   double ind0val1 = iOBV(NULL,0,PRICE_CLOSE,1);
   double ind0val2 = iOBV(NULL,0,PRICE_CLOSE,2);
   double ind0val3 = iOBV(NULL,0,PRICE_CLOSE,3);
   bool ind0long  = ind0val1 < ind0val2 - sigma && ind0val2 > ind0val3 + sigma;
   bool ind0short = ind0val1 > ind0val2 + sigma && ind0val2 < ind0val3 - sigma;
   double ind1val1 = iOsMA(NULL,0,16,15,9,PRICE_CLOSE,1);
   double ind1val2 = iOsMA(NULL,0,16,15,9,PRICE_CLOSE,2);
   bool ind1long  = ind1val1 > 0.0000 + sigma && ind1val2 < 0.0000 - sigma;
   bool ind1short = ind1val1 < -1*0.0000 - sigma && ind1val2 > -1*0.0000 + sigma;
   double ind2val1 = iAD(NULL,0,1);
   double ind2val2 = iAD(NULL,0,2);
   bool ind2long  = ind2val1 < ind2val2 - sigma;
   bool ind2short = ind2val1 > ind2val2 + sigma;

   Signal signal = CreateEntrySignal(2, ind0long && ind1long && ind2long, ind0short && ind1short && ind2short, 0, 0, false);
   return (signal);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
Signal GetExitSignal_07()
  {
   double ind3upBand1 = iBands(NULL,0,19,2.10,0,PRICE_CLOSE,MODE_UPPER,1);
   double ind3dnBand1 = iBands(NULL,0,19,2.10,0,PRICE_CLOSE,MODE_LOWER,1);
   double ind3upBand2 = iBands(NULL,0,19,2.10,0,PRICE_CLOSE,MODE_UPPER,2);
   double ind3dnBand2 = iBands(NULL,0,19,2.10,0,PRICE_CLOSE,MODE_LOWER,2);
   bool ind3long  = Open[0] < ind3upBand1 - sigma && Open[1] > ind3upBand2 + sigma;
   bool ind3short = Open[0] > ind3dnBand1 + sigma && Open[1] < ind3dnBand2 - sigma;

   Signal signal = CreateExitSignal(2, ind3long, ind3short, 0, 0, false);
   return (signal);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
Signal GetEntrySignal_08()
  {
   double ind0val1 = iStochastic(NULL,0,5,1,1,MODE_SMA,STO_LOWHIGH,MODE_MAIN,1);
   double ind0val2 = iStochastic(NULL,0,5,1,1,MODE_SMA,STO_LOWHIGH,MODE_MAIN,2);
   bool ind0long  = ind0val1 < 19 - sigma && ind0val2 > 19 + sigma;
   bool ind0short = ind0val1 > 100 - 19 + sigma && ind0val2 < 100 - 19 - sigma;
   double ind1val1 = iDeMarker(NULL,0,23,1);
   double ind1val2 = iDeMarker(NULL,0,23,2);
   bool ind1long  = ind1val1 < 0.35 - sigma && ind1val2 > 0.35 + sigma;
   bool ind1short = ind1val1 > 1 - 0.35 + sigma && ind1val2 < 1 - 0.35 - sigma;

   Signal signal = CreateEntrySignal(3, ind0long && ind1long, ind0short && ind1short, 106, 0, false);
   return (signal);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
Signal GetExitSignal_08()
  {
   double ind2val1 = iAO(NULL,0,1);
   bool ind2long  = ind2val1 > 0.0009 + sigma;
   bool ind2short = ind2val1 < -1*0.0009 - sigma;

   Signal signal = CreateExitSignal(3, ind2long, ind2short, 106, 0, false);
   return (signal);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
Signal GetEntrySignal_09()
  {

   bool ind0long  = false;
   bool ind0short = false;

   {
      int consecutiveBullish = 0;
      int consecutiveBearish = 0;
      double pipVal = pip * 28;

      for (int b = 1 + 2; b > 0; b--)
        {
         consecutiveBullish = Close(b) - Open(b) >= pipVal ? consecutiveBullish + 1 : 0;
         consecutiveBearish = Open(b) - Close(b) >= pipVal ? consecutiveBearish + 1 : 0;
        }

      ind0long  = consecutiveBullish >= 1;
      ind0short = consecutiveBearish >= 1;
   }
   double ind1val1 = iBearsPower(NULL,0,20,PRICE_CLOSE,1);
   double ind1val2 = iBearsPower(NULL,0,20,PRICE_CLOSE,2);
   bool ind1long  = ind1val1 > -0.0009 + sigma && ind1val2 < -0.0009 - sigma;
   bool ind1short = ind1val1 < -1*-0.0009 - sigma && ind1val2 > -1*-0.0009 + sigma;

   Signal signal = CreateEntrySignal(4, ind0long && ind1long, ind0short && ind1short, 251, 0, false);
   return (signal);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
Signal GetExitSignal_09()
  {
   double ind2upBand1 = iBands(NULL,0,31,1.25,0,PRICE_CLOSE,MODE_UPPER,1);
   double ind2dnBand1 = iBands(NULL,0,31,1.25,0,PRICE_CLOSE,MODE_LOWER,1);
   double ind2upBand2 = iBands(NULL,0,31,1.25,0,PRICE_CLOSE,MODE_UPPER,2);
   double ind2dnBand2 = iBands(NULL,0,31,1.25,0,PRICE_CLOSE,MODE_LOWER,2);
   bool ind2long  = Open[0] < ind2upBand1 - sigma && Open[1] > ind2upBand2 + sigma;
   bool ind2short = Open[0] > ind2dnBand1 + sigma && Open[1] < ind2dnBand2 - sigma;

   Signal signal = CreateExitSignal(4, ind2long, ind2short, 251, 0, false);
   return (signal);
  } 
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//|GBPUSD SIGNALS                                                    |
//+------------------------------------------------------------------+
Signal GetEntrySignal_10()
  {
   double ind0val1 = iStochastic(NULL,0,30,2,10,MODE_SMA,0,MODE_MAIN,1);
   double ind0val2 = iStochastic(NULL,0,30,2,10,MODE_SMA,0,MODE_SIGNAL,1);
   double ind0val3 = iStochastic(NULL,0,30,2,10,MODE_SMA,0,MODE_MAIN,2);
   double ind0val4 = iStochastic(NULL,0,30,2,10,MODE_SMA,0,MODE_SIGNAL,2);
   bool ind0long  = ind0val1 < ind0val2 - sigma && ind0val3 > ind0val4 + sigma;
   bool ind0short = ind0val1 > ind0val2 + sigma && ind0val3 < ind0val4 - sigma;

   Signal signal = CreateEntrySignal(0, ind0long, ind0short, 0, 125, false);
   return (signal);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
Signal GetExitSignal_10()
  {
   double ind1val1 = iMFI(NULL,0,33,1);
   double ind1val2 = iMFI(NULL,0,33,2);
   bool ind1long  = ind1val1 < 72 - sigma && ind1val2 > 72 + sigma;
   bool ind1short = ind1val1 > 100 - 72 + sigma && ind1val2 < 100 - 72 - sigma;

   Signal signal = CreateExitSignal(0, ind1long, ind1short, 0, 125, false);
   return (signal);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
Signal GetEntrySignal_11()
  {
   double ind0val1 = iOBV(NULL,0,PRICE_CLOSE,1);
   double ind0val2 = iOBV(NULL,0,PRICE_CLOSE,2);
   bool ind0long  = ind0val1 < ind0val2 - sigma;
   bool ind0short = ind0val1 > ind0val2 + sigma;
   double ind1val1 = iStdDev(NULL,0,17,0,MODE_SMA,PRICE_CLOSE,1);
   double ind1val2 = iStdDev(NULL,0,17,0,MODE_SMA,PRICE_CLOSE,2);
   bool ind1long  = ind1val1 < 0.0038 - sigma && ind1val2 > 0.0038 + sigma;
   bool ind1short = ind1long;

   Signal signal = CreateEntrySignal(1, ind0long && ind1long, ind0short && ind1short, 0, 24, false);
   return (signal);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
Signal GetExitSignal_11()
  {
   double ind2val1 = iRSI(NULL,0,42,PRICE_CLOSE,1);
   double ind2val2 = iRSI(NULL,0,42,PRICE_CLOSE,2);
   bool ind2long  = ind2val1 > 39 + sigma && ind2val2 < 39 - sigma;
   bool ind2short = ind2val1 < 100 - 39 - sigma && ind2val2 > 100 - 39 + sigma;

   Signal signal = CreateExitSignal(1, ind2long, ind2short, 0, 24, false);
   return (signal);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
Signal GetEntrySignal_12()
  {
   double ind0val1 = iStochastic(NULL,0,7,9,7,MODE_SMA,STO_LOWHIGH,MODE_MAIN,1);
   double ind0val2 = iStochastic(NULL,0,7,9,7,MODE_SMA,STO_LOWHIGH,MODE_MAIN,2);
   bool ind0long  = ind0val1 < 19 - sigma && ind0val2 > 19 + sigma;
   bool ind0short = ind0val1 > 100 - 19 + sigma && ind0val2 < 100 - 19 - sigma;
   double ind1upBand1 = iBands(NULL,0,9,1.83,0,PRICE_CLOSE,MODE_UPPER,1);
   double ind1dnBand1 = iBands(NULL,0,9,1.83,0,PRICE_CLOSE,MODE_LOWER,1);
   bool ind1long  = Open[0] < ind1dnBand1 - sigma;
   bool ind1short = Open[0] > ind1upBand1 + sigma;

   Signal signal = CreateEntrySignal(2, ind0long && ind1long, ind0short && ind1short, 0, 0, false);
   return (signal);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
Signal GetExitSignal_12()
  {
   double ind2val1 = iMFI(NULL,0,17,1);
   bool ind2long  = ind2val1 > 69 + sigma;
   bool ind2short = ind2val1 < 100 - 69 - sigma;

   Signal signal = CreateExitSignal(2, ind2long, ind2short, 0, 0, false);
   return (signal);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
Signal GetEntrySignal_13()
  {
   double ind0val1 = iBullsPower(NULL,0,48,PRICE_CLOSE,1);
   double ind0val2 = iBullsPower(NULL,0,48,PRICE_CLOSE,2);
   bool ind0long  = ind0val1 < -0.0002 - sigma && ind0val2 > -0.0002 + sigma;
   bool ind0short = ind0val1 > -1*-0.0002 + sigma && ind0val2 < -1*-0.0002 - sigma;
   double ind1val1 = iStdDev(NULL,0,19,0,MODE_SMA,PRICE_CLOSE,1);
   double ind1val2 = iStdDev(NULL,0,19,0,MODE_SMA,PRICE_CLOSE,2);
   bool ind1long  = ind1val1 < ind1val2 - sigma;
   bool ind1short = ind1long;
   double ind2val1 = iBullsPower(NULL,0,25,PRICE_CLOSE,1);
   bool ind2long  = ind2val1 > 0.0000 + sigma;
   bool ind2short = ind2val1 < -1*0.0000 - sigma;

   Signal signal = CreateEntrySignal(3, ind0long && ind1long && ind2long, ind0short && ind1short && ind2short, 61, 0, false);
   return (signal);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
Signal GetExitSignal_13()
  {
   double ind3val1 = iMA(NULL,0,17,0,MODE_SMA,PRICE_CLOSE,1);
   double ind3val2 = iMA(NULL,0,36,0,MODE_SMA,PRICE_CLOSE,1);
   bool ind3long  = ind3val1 > ind3val2 + sigma;
   bool ind3short = ind3val1 < ind3val2 - sigma;

   Signal signal = CreateExitSignal(3, ind3long, ind3short, 61, 0, false);
   return (signal);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
Signal GetEntrySignal_14()
  {
   double ind0val1 = iBearsPower(NULL,0,11,PRICE_CLOSE,1);
   bool ind0long  = ind0val1 > 0.0000 + sigma;
   bool ind0short = ind0val1 < -1*0.0000 - sigma;
   double ind1val1 = iBearsPower(NULL,0,27,PRICE_CLOSE,1);
   double ind1val2 = iBearsPower(NULL,0,27,PRICE_CLOSE,2);
   bool ind1long  = ind1val1 < -0.0006 - sigma && ind1val2 > -0.0006 + sigma;
   bool ind1short = ind1val1 > -1*-0.0006 + sigma && ind1val2 < -1*-0.0006 - sigma;

   Signal signal = CreateEntrySignal(4, ind0long && ind1long, ind0short && ind1short, 253, 0, false);
   return (signal);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
Signal GetExitSignal_14()
  {
   double ind2val1 = iForce(NULL,0,38,MODE_SMA,PRICE_CLOSE,1);
   double ind2val2 = iForce(NULL,0,38,MODE_SMA,PRICE_CLOSE,2);
   bool ind2long  = ind2val1 < 0 - sigma && ind2val2 > 0 + sigma;
   bool ind2short = ind2val1 > 0 + sigma && ind2val2 < 0 - sigma;

   Signal signal = CreateExitSignal(4, ind2long, ind2short, 253, 0, false);
   return (signal);
  }  

But what is here wrong why i do get different results?

Here the result.

Portfolio EA AUDUSD WITHOUT CODE CHANGING.

https://i.postimg.cc/sGdZk3HM/audusd-alone.png

AUDUSD WITH COD CHANGING ABOVE:

https://i.postimg.cc/jLRDPgpY/audusd-all.png

EURUSD without code changing:

https://i.postimg.cc/wRgj5MbQ/eurusd-alone.png

EURUSD WITH CODE CHANGING ABOVE:

https://i.postimg.cc/kDqSvgSH/eurusd-all.png


So what i do is only added the signals change the number and call them when i set in settings.