Fehler, Irrtümer, Fragen - Seite 1921

 

Kompilierungsfehler

template<typename T1, typename T2>
void f( T2 t )
{
        Print( typename( T1 ), ":", typename( T2 ), ":", t );
}
void OnStart()
{
        char ch = 5;
        f<int>( ch ); //(1) //error: 'f' - wrong template parameters count
}

Ein Datensatz wird erstellt

         f<int,char>( ch ); //(2)
die redundante Informationen und darüber hinaus Mehrdeutigkeit enthält, wenn ch nicht char ist. Darüber hinaus sind in Makros in der Regel keine Informationen über die Art der Variablen verfügbar (je nach Kontext).
 
A100:

Fehler bei der Kompilierung

Ist es möglich, dies bei den Profis zu tun?

 
Комбинатор:

Ist es in den Pluspolen erlaubt?

C++ kompiliert beide Varianten, aber (1) scheint korrekter und intuitiver zu sein. In (2) müssen wir auch die Typen im Auge behalten, was unbequem ist und statt einer Vereinfachung zu einer übermäßigen Verkomplizierung führt, was deutlich zu sehen ist, wenn <> mehrere Typenamen hat
 

keine Alarme verschwinden, alles versucht, alles gelesen, keine Alarme auf μl Website nur auf dem Terminal...


 
Vladimir Pastushak:

Die Warnungen wollen nicht verschwinden, ich habe alles versucht, ich habe alles gelesen, es gibt keine Warnungen auf der Website, nur auf dem Terminal...

Das war von Anfang an der Fall.

Es gab hier einen Thread, in dem herausgefunden wurde, welche Datei gelöscht werden muss, damit sie als gelesen markiert wird. Aber dann tauchen immer noch die "Geister" auf.

 
Hallo. Können Sie mir sagen, warum die Goldnotierungen in der Demo zunehmend fehlen?
 

Die Protokolldateien %AppData%\MetaQuotes\Terminal\...\MQL5\Logs\YYYYMMDD.log werden nicht zeitnah aktualisiert

Die Aktualisierung erfolgt nur: nach einem Neustart des Terminals oder nach Auswahl des Menüs Ansicht. Wenn Sie nicht neu starten oder auf Vorschau klicken, ist die entsprechende Datei leer.

Früher funktionierte alles (sogar die in MetaEditor geöffnete Datei YYYYYMMDD.log wurde innerhalb weniger Sekunden nach der Anzeige von Zeilen in der Registerkarte Experten aktualisiert), und es mussten keine zusätzlichen, nicht offensichtlichen Aktionen durchgeführt werden

 

Gute Nacht! Mein Expert Advisor hat RSI und STO, aber ich kann kein Kauf- oder Verkaufssignal bei einer neuen Kerze öffnen, und nicht bei der aktuellen!

Der Code sieht folgendermaßen aus:

void OnTick(){

for (int i=0; i<OrdersTotal(); i++)

if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
if (OrderSymbol()==Symbol() && Magic==OrderMagicNumber())
Rückkehr;

double RSI0 = iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, 0);
double RSI1 = iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, 1);

double STO0=iStochastic(NULL, 0, KPeriod, DPeriod, Slowing, MODE_SMA, STO_LOWHIGH, MODE_MAIN, 0);
double STO1=iStochastic(NULL, 0, KPeriod, DPeriod, Slowing, MODE_SMA, STO_LOWHIGH, MODE_MAIN, 1);

double STO2 = iStochastic(NULL, 0, KPeriod, DPeriod, Slowing, MODE_SMA, STO_LOWHIGH, MODE_SIGNAL, 0);
double STO3 = iStochastic(NULL, 0, KPeriod, DPeriod, Slowing, MODE_SMA, STO_LOWHIGH, MODE_SIGNAL, 1);

doppelt SL=0,TP=0;

if (RSI1 < RSIDownLevel && RSIDownLevel < RSI0 && STO2 < STO0){

if (takeprofit!=0) TP = NormalizeDouble(Ask + takeprofit*Point,Digits);
if (stoploss!=0) SL = NormalizeDouble(Ask - stoploss* Point,Digits);
if (OrderSend(Symbol(),OP_BUY, Lot,NormalizeDouble(Ask,Digits),Slippage,SL,TP,NUL L,Magic)==-1) Print(GetLastError())
}

if (RSI1 > RSIUpLevel && RSIUpLevel > RSI0 && STO3 > STO1){

if (takeprofit!=0) TP = NormalizeDouble(Bid - takeprofit*Point,Digits);
if (stoploss!=0) SL = NormalizeDouble(Bid + stoploss* Point,Digits);
if (OrderSend(Symbol(),OP_SELL,Lot,NormalizeDouble(Bi d,Digits),Slippage,SL,TP,NULL,Magic)==-1) Print(GetLastError())
}

zurück(0);
}


Ich muss noch einmal wiederholen, dass meine Order durch das Öffnen der aktuellen Kerze ausgelöst wird, und ich brauche die Order, um sie bei der nächsten Kerze zu öffnen! Bitte helfen Sie mir!!!

 
sviter-pro:

Gute Nacht! Mein Expert Advisor verfügt über RSI und STO, aber ich kann ihn nicht dazu bringen, sich bei einer neuen Kerze zu öffnen, wenn ein Kauf- oder Verkaufssignal ausgelöst wird, und nicht bei der aktuellen Kerze!

Auch hier wird meine Order bei der aktuellen Kerze ausgelöst, aber ich muss die Order bei der nächsten Kerze öffnen!!! Hilfe bitte!!!


//+------------------------------------------------------------------+
void OnTick()
  {

   for(int i=0; i<OrdersTotal(); i++)
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
         if(OrderSymbol()==Symbol() && Magic==OrderMagicNumber())
            return;

   double RSI0 = iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, 0);
   double RSI1 = iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, 1);

   double STO0=iStochastic(NULL, 0, KPeriod, DPeriod, Slowing, MODE_SMA, STO_LOWHIGH, MODE_MAIN, 0);
   double STO1=iStochastic(NULL, 0, KPeriod, DPeriod, Slowing, MODE_SMA, STO_LOWHIGH, MODE_MAIN, 1);

   double STO2 = iStochastic(NULL, 0, KPeriod, DPeriod, Slowing, MODE_SMA, STO_LOWHIGH, MODE_SIGNAL, 0);
   double STO3 = iStochastic(NULL, 0, KPeriod, DPeriod, Slowing, MODE_SMA, STO_LOWHIGH, MODE_SIGNAL, 1);

   double SL=0,TP=0;
   
   if(NewBar())
     {
      if(RSI1<RSIDownLevel && RSIDownLevel<RSI0 && STO2<STO0)
        {

         if(takeprofit!=0) TP=NormalizeDouble(Ask+takeprofit*Point,Digits);
         if(stoploss!=0) SL=NormalizeDouble(Ask-stoploss *Point,Digits);
         if(OrderSend(Symbol(),OP_BUY,Lot,NormalizeDouble(Ask,Digits),slippage,SL,TP,NUL L,Magic)==-1) Print(GetLastError());
        }

      if(RSI1>RSIUpLevel && RSIUpLevel>RSI0 && STO3>STO1)
        {

         if(takeprofit!=0) TP=NormalizeDouble(Bid-takeprofit*Point,Digits);
         if(stoploss!=0) SL=NormalizeDouble(Bid+stoploss *Point,Digits);
         if(OrderSend(Symbol(),OP_SELL,Lot,NormalizeDouble(Bi d,Digits),slippage,SL,TP,NULL,Magic)==-1) Print(GetLastError());
        }
     }

   return(0);
  }
//+------------------------------------------------------------------+
bool NewBar()
  {
   static datetime time=0;
   if(time==0)
     {
      time=Time[0];
      return false;
     }
   if(time!=Time[0])
     {
      time=Time[0];
      return true;
     }
   return false;
  }
//+------------------------------------------------------------------+
 
sviter-pro:

Gute Nacht! Mein Expert Advisor hat RSI und STO, aber ich kann es nicht so einrichten, dass wenn ein Kauf- oder Verkaufssignal ausgelöst wird, es sich auf einer neuen Kerze öffnet, und nicht auf der aktuellen!

Der Code sieht folgendermaßen aus:

Ich muss noch einmal wiederholen, dass meine Order durch das Öffnen der aktuellen Kerze ausgelöst wird, und ich brauche die Order, um sie bei der nächsten Kerze zu öffnen! Bitte helfen Sie mir!!!

Sie nehmen die Indikatorwerte der Balken 0 und 1.

Nehmen Sie anstelle von 0 und 1 die Werte von 1 bzw. 2.