Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 663

 
new-rena:

5 Pfund für eine Antwort?

)

Ich warte...

Nun, wenn die Frage individuelle Arbeit erfordert und das Ergebnis ein fertiger Code ist, ist alles möglich...
 

Nachmittags. Der Indikator muss Daten von einem anderen Indikator erhalten, beim Laden des Indikators wird die Geschichte angezeigt, neue Werte werden nicht aktualisiert, bitte beraten, was ist der Fehler in der Schleife oder irgendwo anders:

//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,   // Количество просчитанных баров
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
   int limit;
   int counted_bars = IndicatorCounted();
   if(counted_bars<0) return(-1);
   if(counted_bars>0) counted_bars--;
   limit = Bars - counted_bars - 500;
   for (int i=limit; i>=0; i--)
   {
     Buf_1[i]=iCustom(Symbol(), 0,"ATR", 0, i);//При подстановке любого индикатора нет обновления!!!
   }
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+
 

Eine solche Situation, ich bekomme einen Fehler - können Sie mir helfen, zu verstehen, warum ein Fehler auftritt - in MQL5 können Sie nicht den Wert der Benutzereingabe-Variable ändern?

Schlupf" - Konstante kann nicht geändert werden Kamikadze_MA-may.mq5 67 7

extern int Slippage    = 10;                       // Проскальзывание

int init()
  {
//3,5 знаков
   if(MarketInfo(Symbol(),MODE_DIGITS)==3 || MarketInfo(Symbol(),MODE_DIGITS)==5)
     {
      Slippage*=10;
     }
   return(INIT_SUCCEEDED);
  }

  }

 
-Aleks-:

Eine solche Situation, bekomme ich einen Fehler - können Sie mir helfen, zu verstehen, warum der Fehler auftritt - in MQL5 können Sie nicht den Wert einer Variablen durch den Benutzer eingegeben ändern?

Schlupf" - Konstante kann nicht geändert werden Kamikadze_MA-may.mq5 67 7

extern int Slippage    = 10;                       // Проскальзывание

int init()
  {
//3,5 знаков
   if(MarketInfo(Symbol(),MODE_DIGITS)==3 || MarketInfo(Symbol(),MODE_DIGITS)==5)
     {
      Slippage*=10;
     }
   return(INIT_SUCCEEDED);
  }

  }

So etwas gibt es nicht in 5

MarktInfo

Ich weiß nichts über Slippage)

 
new-rena:

Dieser ist nicht in der 5pc.

MarktInfo

Was soll's - warum schreibt er es nicht in die Fehlerliste...

Welche Art von Analogie sollte ich verwenden?

 
-Aleks-:

Oh, Mist - warum schreibt er es nicht als Fehler...

Welche Art von Analogie sollte ich verwenden?

In demselben Thread ging es letztes Wochenende um den Wechsel zu 5-circa.

Von meinem Beitrag und zurück lesen Sie alle Beiträge auf 2-3 Seiten

https://www.mql5.com/ru/forum/6343/page662#comment_2930149

Вопросы от начинающих
Вопросы от начинающих
  • www.mql5.com
Форум трейдеров MQL5.community
 
new-rena:

Im gleichen Thread ging es am vergangenen Wochenende um die Umstellung auf 5k.

Von meinem Beitrag und zurück lesen Sie alle Beiträge auf 2-3 Seiten

https://www.mql5.com/ru/forum/6343/page662#comment_2930149

Ja, ja, ich habe den Artikel bereits geöffnet - danke. MarketInfoMQL4 Funktion eingefügt, aber das Ergebnis ist negativ.... Vielleicht habe ich es an die falsche Stelle gesetzt...

 
-Aleks-:

Ja, ich habe diesen Artikel bereits geöffnet - vielen Dank. Ich habe MarketInfoMQL4 Funktion eingefügt, aber das Ergebnis ist negativ.... Ich habe es vielleicht an die falsche Stelle gesetzt...

MarketInfo(Symbol(),MODE_DIGITS) ist (int)SymbolInfoInteger(Symbol(),SYMBOL_DIGITS)

Sie sollten sich besser mit den Tiefen der Substitution in Funktionen befassen

Sie wird eleganter und näher an MQL5 sein.

Nehmen Sie sich also Zeit.

Sie benötigen keine Bibliotheken und fremden Funktionen. Sie sollten lernen, in reinem MQL5 zu schreiben.

 
-Aleks-:

Eine solche Situation, ich bekomme einen Fehler - können Sie mir helfen, zu verstehen, warum ein Fehler auftritt - in MQL5 können Sie den Wert der Benutzereingabe-Variable nicht ändern?

Schlupf" - Konstante kann nicht geändert werden Kamikadze_MA-may.mq5 67 7

extern int Slippage    = 10;                       // Проскальзывание

int init()
  {
//3,5 знаков
   if(MarketInfo(Symbol(),MODE_DIGITS)==3 || MarketInfo(Symbol(),MODE_DIGITS)==5)
     {
      Slippage*=10;
     }
   return(INIT_SUCCEEDED);
  }

  }

Ja, die Eingabeparameter können nicht geändert werden. Um ehrlich zu sein, verstehe ich nicht, warum dieser Wert in Übereinstimmung mit 3/5-stelligen Anführungszeichen geändert werden sollte? Sie stellen diesen Wert in den Eingabeparametern ein. Kann man nicht einfach 100 schreiben (wenn 3/5 Ziffern) und sich nicht die Mühe machen?
 
new-rena:

MarketInfo(Symbol(),MODE_DIGITS) ist (int)SymbolInfoInteger(Symbol(),SYMBOL_DIGITS)

Sie sollten sich besser mit den Tiefen der Substitution in Funktionen befassen

Sie wird eleganter und näher an MQL5 sein.

Nehmen Sie sich also Zeit.

Sie benötigen keine Bibliotheken und fremden Funktionen. Sie sollten lernen, in reinem MQL5 zu schreiben.

Übrigens, die Funktion von MarketInfoMQL4() führt zu einem Fehler - wie kann man ihn beheben? (das Erlernen von zwei Sprachen wird mein Gehirn zum Kochen bringen - ich muss in der Lage sein, zu überprüfen, wie die Ideen auf dem Aktienmarkt funktionieren, ohne tiefes Coding)

'(' - Name erwartet Kamikadze_MA-may.mq5 332 17
'::' - Name erwartet Kamikadze_MA-may.mq5 332 17


double MarketInfoMQL4(string symbol,
                      int type)
  {
   switch(type)
     {
      case MODE_LOW:
         return(SymbolInfoDouble(symbol,SYMBOL_LASTLOW));
      case MODE_HIGH:
         return(SymbolInfoDouble(symbol,SYMBOL_LASTHIGH));
      case MODE_TIME:
         return(SymbolInfoInteger(symbol,SYMBOL_TIME));
      case MODE_BID:
        {
         MqlTick last_tick;
         SymbolInfoTick(symbol,last_tick);
         double Bid=last_tick.bid;
         return(Bid);
        }
      case MODE_ASK:
        {
         MqlTick last_tick;
         SymbolInfoTick(symbol,last_tick);
         double Ask=last_tick.ask;
         return(Ask);
        }
      case MODE_POINT:
         return(SymbolInfoDouble(symbol,SYMBOL_POINT));
      case MODE_DIGITS:
         return(SymbolInfoInteger(symbol,SYMBOL_DIGITS));
      case MODE_SPREAD:
         return(SymbolInfoInteger(symbol,SYMBOL_SPREAD));
      case MODE_STOPLEVEL:
         return(SymbolInfoInteger(symbol,SYMBOL_TRADE_STOPS_LEVEL));
      case MODE_LOTSIZE:
         return(SymbolInfoDouble(symbol,SYMBOL_TRADE_CONTRACT_SIZE));
      case MODE_TICKVALUE:
         return(SymbolInfoDouble(symbol,SYMBOL_TRADE_TICK_VALUE));
      case MODE_TICKSIZE:
         return(SymbolInfoDouble(symbol,SYMBOL_TRADE_TICK_SIZE));
      case MODE_SWAPLONG:
         return(SymbolInfoDouble(symbol,SYMBOL_SWAP_LONG));
      case MODE_SWAPSHORT:
         return(SymbolInfoDouble(symbol,SYMBOL_SWAP_SHORT));
      case MODE_STARTING:
         return(0);
      case MODE_EXPIRATION:
         return(0);
      case MODE_TRADEALLOWED:
         return(0);
      case MODE_MINLOT:
         return(SymbolInfoDouble(symbol,SYMBOL_VOLUME_MIN));
      case MODE_LOTSTEP:
         return(SymbolInfoDouble(symbol,SYMBOL_VOLUME_STEP));
      case MODE_MAXLOT:
         return(SymbolInfoDouble(symbol,SYMBOL_VOLUME_MAX));
      case MODE_SWAPTYPE:
         return(SymbolInfoInteger(symbol,SYMBOL_SWAP_MODE));
      case MODE_PROFITCALCMODE:
         return(SymbolInfoInteger(symbol,SYMBOL_TRADE_CALC_MODE));
      case MODE_MARGINCALCMODE:
         return(0);
      case MODE_MARGININIT:
         return(0);
      case MODE_MARGINMAINTENANCE:
         return(0);
      case MODE_MARGINHEDGED:
         return(0);
      case MODE_MARGINREQUIRED:
         return(0);
      case MODE_FREEZELEVEL:
         return(SymbolInfoInteger(symbol,SYMBOL_TRADE_FREEZE_LEVEL));

      default: return(0);
     }
   return(0);
  }