Fehler 4305

 

Hallo,


kann mir mehr Sagen, warum ich hier den Fehler 4305 bekomme?

struct IndicatorLoad
  {

   int               HalfTrendM5h;
   double            HalfTrendM5[];

   int               RSXM5h;
   double            RSXM5[];

   int               MAFiboM5h;
   double            MAFiboM5up[];
   double            MAFiboM5dn[];


  };

IndicatorLoad Indi[];

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void SignalInit()
  {

   ArrayResize(Indi,SymbolsTotal(true),0);

   for(int idx=0; idx<SymbolsTotal(true); idx++)
     {

      string sym = SymbolName(idx,true);
      SymbolSelect((string)sym[idx],true);

      Indi[idx].HalfTrendM5h = iCustom(sym,PERIOD_M5,"HalfTrend-3",2,MODE_SMA);
      Indi[idx].RSXM5h      = iCustom(sym,PERIOD_M5,"PA adaptive RSX",2,0,PRICE_CLOSE);
      Indi[idx].MAFiboM5h   = iCustom(sym,PERIOD_M5,"MA_Fibo5",14,PRICE_TYPICAL,MODE_EMA,100,3);
      ArraySetAsSeries(Indi[idx].HalfTrendM5,true);
      ArraySetAsSeries(Indi[idx].RSXM5,true);
      ArraySetAsSeries(Indi[idx].MAFiboM5up,true);
      ArraySetAsSeries(Indi[idx].MAFiboM5dn,true);



     }
  }

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void SignalOnTick()
  {

   for(int idx=0; idx<SymbolsTotal(true); idx++)
     {
      string sym = SymbolName(idx,true);
      SymbolSelect((string)sym[idx],true);

      CopyBuffer(Indi[idx].HalfTrendM5h,3,0,15,Indi[idx].HalfTrendM5);             // Color Buffer  -  0 = up, 1 = dn
      CopyBuffer(Indi[idx].RSXM5h,1,0,2,Indi[idx].RSXM5);                          // Color Buffer  -  2 = up, 1 = dn
      CopyBuffer(Indi[idx].MAFiboM5h,1,0,2,Indi[idx].MAFiboM5up);                  // Upper Band
      CopyBuffer(Indi[idx].MAFiboM5h,2,0,2,Indi[idx].MAFiboM5dn);                  // Lower Band

     }

}

und zwar bei selektieren des Symbols kommt der mit jedem Tick

ich nehm ja nicht an, das dies passiert wenn bei manchen Währungen kein neuer Tick da ist. Dann würde es ja den letzen nehmen


Edit: der Link hat sich selbst gemacht

Die Grundlagen für Tests in MetaTrader 5
Die Grundlagen für Tests in MetaTrader 5
  • www.mql5.com
Die Vorstellung des automatischen Handels ist sehr reizvoll, da ein Handels-Roboter ununterbrochen arbeiten kann - 24 Stunden pro Tag und 7 Tage die Woche. Ein Roboter wird niemals müde, unsicher oder verschreckt, da er psychologische Probleme schlicht weg nicht kennt. Ihm genügt es, wenn die Handelsregeln ausreichend formalisiert und in...
 
  1. Du weißt, was 4305 bedeutet?

    ERR_MARKET_SELECT_ERROR

    4305

    Fehler beim Hinzufügung oder Löschung eines Symbols in MarketWatch

  2. Wo genau tritt der Fehler auf?
  3. Vielleicht sollte man das jew. Symbol überprüfen?
 
amando :

Hi,


can tell me more why I get error 4305 here?

when you select the symbol, it comes with every tick

I don't assume that this happens if there is no new tick for some currencies. Then it would take the last one


Edit: the link made itself

Was versuchen Sie mit dieser Linie zu tun?

       SymbolSelect (( string )sym[idx], true );

sym ist ein String und sym [idx] gibt ein Zeichen zurück. Es macht keinen Sinn, es in SymbolSelect () zu verwenden.

 
amando:

Hallo,


kann mir mehr Sagen, warum ich hier den Fehler 4305 bekomme?


struct IndicatorLoad
  {

   int               HalfTrendM5h;
   double            HalfTrendM5[];

   int               RSXM5h;
   double            RSXM5[];

   int               MAFiboM5h;
   double            MAFiboM5up[];
   double            MAFiboM5dn[];


  };

IndicatorLoad Indi[];


//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void SignalInit()

  {
   string sym[];
   
   ArrayResize(Indi,SymbolsTotal(true),0);
   ArrayResize(sym,SymbolsTotal(true),0);

   for(int idx=0; idx<SymbolsTotal(true); idx++)
     {

      sym[idx] = SymbolName(idx,true);
      SymbolSelect((string)sym[idx],true);

      Indi[idx].HalfTrendM5h = iCustom(sym[idx],PERIOD_M5,"HalfTrend-3",2,MODE_SMA);
      Indi[idx].RSXM5h      = iCustom(sym[idx],PERIOD_M5,"PA adaptive RSX",2,0,PRICE_CLOSE);
      Indi[idx].MAFiboM5h   = iCustom(sym[idx],PERIOD_M5,"MA_Fibo5",14,PRICE_TYPICAL,MODE_EMA,100,3);
      ArraySetAsSeries(Indi[idx].HalfTrendM5,true);
      ArraySetAsSeries(Indi[idx].RSXM5,true);
      ArraySetAsSeries(Indi[idx].MAFiboM5up,true);
      ArraySetAsSeries(Indi[idx].MAFiboM5dn,true);



     }
  }

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void SignalOnTick()
  {
   string sym[];
   ArrayResize(sym,SymbolsTotal(true),0);

   for(int idx=0; idx<SymbolsTotal(true); idx++)
     {
      sym[idx] = SymbolName(idx,true);
      SymbolSelect((string)sym[idx],true);

      CopyBuffer(Indi[idx].HalfTrendM5h,3,0,15,Indi[idx].HalfTrendM5);             // Color Buffer  -  0 = up, 1 = dn
      CopyBuffer(Indi[idx].RSXM5h,1,0,2,Indi[idx].RSXM5);                          // Color Buffer  -  2 = up, 1 = dn
      CopyBuffer(Indi[idx].MAFiboM5h,1,0,2,Indi[idx].MAFiboM5up);                  // Upper Band
      CopyBuffer(Indi[idx].MAFiboM5h,2,0,2,Indi[idx].MAFiboM5dn);                  // Lower Band

     }

}

Denke das sollte so gemeint sein oder amando ?

 
Christian:

Denke das sollte so gemeint sein oder amando ?

Danke Christian,

genau das war es ;-) Das Symbol muss auch in den Array

Grund der Beschwerde: