[ARCHIV] Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 3. - Seite 479

 
costy_:

Wie können Sie antworten, ohne zu wissen, ob NumTimeFrames TimeFrames[i] leer ist oder nicht?

Schreiben Sie ausführlicher, wie bzw. was genau zu lesen ist, wenn es nichts gibt. Schreiben Sie den vollständigen Code, sonst werden Sie höchstwahrscheinlich "auf den Granit der Wissenschaft beißen" ,,,,)) if(true)continue; else return("Sleep("+7*1000*60*60+")");

Sie haben es richtig verstanden.


int TimeFrames[]={5,15,30,60}; 
int NumTimeFrames=ArraySize(TimeFrames);
int total_bars[]; ArrayResize(total_bars,NumTimeFrames);
string instrument = Symbol();

// пробегаем по задданым периодам
for(i=0; i<NumTimeFrames; i++)
  {
    // пробегаем по всем барам выбранного периода, ЕСЛИ на нем появились новые бары 
    if(total_bars[i]!=iBars(instrument,TimeFrames[i]))
     {


        // тут вычисления индиктора

        total_bars[i]=iBars(instrument,TimeFrames[i]); // запоминаем число баров на данном периоде
     }


Grundsätzlich, so wie ich es verstanden habe, können wir die Prüfung auf das Erscheinen neuer Balken überspringen.

Eigentlich lässt sich das auf eine einfache Frage reduzieren: "Auf welche Befehle und zu welchem Zeitpunkt lädt MT Angebote von Maklerfirmen herunter?

 
palladin:

Könnten Sie den Code zitieren, den Sie zum Testen Ihrer Aussage verwendet haben?


//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
   Print(iBars(Symbol(), PERIOD_D1));
//----
   return(0);
  }
//+------------------------------------------------------------------+
 
Reshetov:

Ich habe angenommen, dass Sie die Frage nicht verstanden haben.

Versuchen Sie dies:


int start()
  {
//----
   Print(iBars(Symbol(), PERIOD_M1));
//----
   return(0);
  }
//+------------------------------------------------------------------+


Запустите на периоде М5 и подождите минуту, в логе вы обнаружите, что с каждой минутой отображается одно и то же число! Хотя оно, очевидно, должно увеличиваться с каждой минутой)

 
palladin:

Ich habe angenommen, dass Sie die Frage nicht verstanden haben.

Versuchen Sie dies:



Запустите на периоде М5 и подождите минуту, в логе вы обнаружите, что с каждой минутой отображается одно и то же число! Хотя оно, очевидно, должно увеличиваться с каждой минутой)



Welche Nummer zeigen Sie an?

Welchen Zeitpunkt hat dieser iBars-Balken?

Gibt es eine Geschichte über die M1?
 

Reshetov ,Sergeev ,Costy_

danke


Ich habe es noch einmal überprüft, und es sieht so aus, als ob es doch funktioniert, und ich lag mit meiner Annahme falsch.

iBars scheint wirklich richtig zu funktionieren, nicht einmal auf dem aktuellen Diagramm


 
for(i=0;i<=OrdersTotal();i++)
    {
    if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) == false) break;
    if(OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber)
      {
      if(OrderType() == OP_BUYSTOP)
        {
        if(OrderOpenPrice() > priceBuy)
          {
          priceBuy = OrderOpenPrice();
          }
        }
      }
    } 
  if(TakePrices1 == false)
    {  
    bTakeProfit = priceBuy + (10*2)*Point;
    TakePrices1 = true;
    }
Dieser Teil wählt den höchsten Kaufauftrag aus, erhöht den Preis um 20 Pips und verschiebt den Take Profit auf dieses Niveau. Aber eigentlich sind es nicht 20 Pips, sondern 13 Pips. Warum 13, nicht 10, nicht 30, sondern 13? Woher kommt diese Zahl?
 
sss2019:
Dieser Teil wählt den höchsten Kaufauftrag aus, erhöht den Preis um 20 Pips und verschiebt den Take Profit auf dieses Niveau. Tatsächlich sind es aber nicht 20 Pips, sondern 13 Pips. Warum 13, nicht 10, nicht 30, sondern 13? Woher kommt diese Zahl?


20-Spred

Öffnen zum Bid, schließen zum Ask

 
Vinin:


20-Spred

Öffnen zum Bid, schließen zum Ask


Nein, der Take Profit wurde noch nicht ausgelöst. Dieser Code findet den höchsten ausstehenden Kaufauftrag und subtrahiert 20 Punkte von dessen Eröffnungskurs. Der Gewinn wird einfach auf 20 Punkte mehr verschoben. Es scheint, dass der Spread hier nicht berücksichtigt werden sollte. Außerdem ist der Spread auf 2 Punkte festgelegt und uns fehlen 7 Punkte.
 
Ich verstehe nicht, wo das Problem liegt. Wenn ich die Werte ausdrucke, scheint der Preis auf dem richtigen Niveau zu sein, aber wenn ich diesen Wert in die Order einfüge, bewegt sich der Take Profit immer noch nur um 13 Pips.
 

Tra ta ta