Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 690

 
Guten Abend.
 if(count==0)comment+="No symbols for trading!";
      Comment(comment);
      MqlTick tick;
      tick.ask=SymbolInfoDouble(structPairs.name,SYMBOL_ASK);
      tick.bid=SymbolInfoDouble(structPairs.name,SYMBOL_BID);
      tick.time=TimeCurrent();
      Trade(false,structPairs, tick, Orders, inputs);
Was besagt dieses Stück Code? Wann erscheint sie? Alle Paare in der Liste sind vorhanden und der gesamte Verlauf ist geladen.
 
Darirunu:
Guten Abend, was besagt dieses Stück Code? Wann erscheint sie? Alle Paare sind in der Liste und die gesamte Historie ist geladen.

Passwort für Investoren?

 
Darirunu:
Guten Abend, was besagt dieses Stück Code? Wann erscheint sie? Alle Paare in der Liste sind vorhanden und der gesamte Verlauf ist geladen.
Wenn ein Zähler 0 ist (ich vermute, es ist das Ergebnis eines früheren Laufs), wird dem Kommentar eine Zeile hinzugefügt
No symbols for trading!

der Rest ist Business as usual...

 
Taras Slobodyanik:

Dankeschön

Prüfen, dass sich kein Objekt auf der zweiten Leiste befindet

         for(int jj=i;jj<obj_total;jj++)
           {
            nameARs=ObjectName(jj);
            if(ObjectType(nameARs)!=OBJ_RECTANGLE) continue;
            if(StringFind(nameARs,"QUADRO",0)!=-1)
              {

               time_ars=ObjectGetInteger(0,nameARs,OBJPROP_TIME);//break;

              }
           }
         //===---===
         if(time_ars!=Time[i+2])
           {
           //....
           }
Wie stelle ich sicher, dass sich keine Objekte auf den zehn Balken befinden?
 

Indikator.

Berechnen Sie für jeden Balken die Summe der bullischen Balkengrößen und die Summe der bearischen Balkengrößen

Schreiben Sie die Differenz dieser Summen in den Puffer.

Was ist hier falsch?

int counted_bars=IndicatorCounted(),
       limit;
 
   if(counted_bars>0)
      counted_bars--;
   
   limit=Bars-counted_bars;
   
   double up_sum=0, down_sum=0;
   for(int i=0;i<limit;i++)
   {
      for(int f = 0; f < Period; f++){
         if(close[f] - open[f] > 0) up_sum += close[f] - open[f];
         if(close[f] - open[f] < 0) down_sum += MathAbs(close[f] - open[f]);
      }
      PVTBuffer[i]=up_sum-down_sum;
   }
 
Roman Sharanov:

Indikator.

Berechnen Sie für jeden Balken die Summe der bullischen Balkengrößen und die Summe der bearischen Balkengrößen

Schreiben Sie die Differenz dieser Summen in den Puffer.

Was ist hier falsch?

Übertragung

double up_sum=0, down_sum=0;

innerhalb des ersten Zyklus - vor der Ankündigung des zweiten Zyklus.

 
Roman Sharanov:

Indikator.

Berechnen Sie für jeden Balken die Summe der bullischen Balkengrößen und die Summe der bearischen Balkengrößen

Schreiben Sie die Differenz dieser Summen in den Puffer.

Was ist hier falsch?

Versuchen Sie, die Variablenup_sum=0, down_sum=0 zurückzusetzen;

vor der zweiten, internen Schleife.

int counted_bars=IndicatorCounted(),
       limit;
 
   if(counted_bars>0)
      counted_bars--;
   
   limit=Bars-counted_bars;
   
   double up_sum, down_sum;
   for(int i=0;i<limit;i++)
   {
    up_sum=0; 
    down_sum=0;
      for(int f = 0; f < Period; f++){
         if(close[f] - open[f] > 0) up_sum += close[f] - open[f];
         if(close[f] - open[f] < 0) down_sum += MathAbs(close[f] - open[f]);
      }
      PVTBuffer[i]=up_sum-down_sum;
   }

Wie diese

 
Alekseu Fedotov:

Versuchen Sie,up_sum=0, down_sum=0 zu setzen;

vor der zweiten, internen Schleife.

Wie diese

tat dies, und ja, es macht Sinn, aber jetzt wird es überhaupt nicht mehr angezeigt

 
Ghabo:

Dankeschön

Prüfen, dass sich kein Objekt auf der zweiten Leiste befindet

Wie prüfe ich, dass sich keine Objekte auf den zehn Balken befinden?

Wenn Sie wissen, wie Sie den genauen Namen eines Objekts erstellen können, brauchen Sie nicht alle Objekte im Diagramm durchzugehen.
Es genügt, diese (angenommenen) Namen durchzugehen.

for(int i=0;i<10;i++)
   {
   if (ObjectFind(0,"QUADRO"+Time[i])<0)
      Print("Нет объекта на баре № ",IntegerToString(i));
   else
      Print("Найден oбъект на баре № ",IntegerToString(i));
   }
 
Roman Sharanov:

Das habe ich getan, und ja, es macht Sinn, aber jetzt wird es überhaupt nicht mehr angezeigt.

Ja, so auch hier, reparieren Sie es.

In der inneren Schleife

for(int f = 0+i; f < Period+i; f++)

Grund der Beschwerde: