[ARCHIV]Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht daran vorbei. Ohne dich kann ich nirgendwo hingehen - 5. - Seite 196

 
hoz:

http://photoload.ru/data/c4/9a/b1/c49ab15e130c84a1ca9c51711fcf423a.jpg Ich verstehe die Logik der Indikatoren immer noch nicht. Nehmen Sie zum Beispiel einen Standardindikator für den gleitenden Durchschnitt.

Das steht am Anfang:

Alles ist logisch, der nächste Schritt ist der Aufruf der vom Benutzer ausgewählten Funktion... aus dem Fenster, das beim Dehnen auf dem Indikator-Chart erschienen ist. Oder?

Es gibt ein Stück Code in INIT, das ich auskommentiert habe:

Im DataWindow steht jedoch der Name. Hier ist ein Bildschirmfoto:

Es stellt sich die Frage. Warum braucht INIT dieses Stück Code überhaupt?


Löschen Sie das Diagramm aus dem Fenster (überhaupt) und führen Sie es erneut aus, dann verschwindet der Name. Die Reinitialisierung von Unterfenstern geht nur so.
 
alsu:

Entfernen Sie das Diagramm aus dem Fenster (ganz) und führen Sie es erneut aus, dann verschwindet der Name. Die Reinitialisierung von Unterfenstern geht nur so.

In der Tat. Es ist jetzt alles klar.
 
TarasBY:
Der einfachste Weg, Ihren Text zu verstehen, besteht darin, sich jede einzelne Codezeile bewusst zu machen (durch Signieren). Und es ist sehr wahrscheinlich, dass eine Epiphanie kommt!
P.S. Es ist auch eine gute Idee zu lernen, wie man Code in seinen Beitrag einfügt, indem man auf die Schaltfläche "SRC" drückt.

Danke, ich werde das berücksichtigen.
 

Hallo!

Haben Sie gesehen, eine halbautomatische Fibonacci-Gleichung Expert Advisor, ich zeichnen und es Trades. Es half mir mit bi und Fibonacci-Code in MQ4 eingebettet.

Ich danke Ihnen.

 
Können Sie mir sagen, wie ich die Umwandlung einer Pending Order in eine Market Order zeitlich einordnen kann?
 
Bitte erläutern Sie die Frage selbst im Code-Kommentar
 { int buys=0,sells=0;
 {
  
    for (int i=0;i>OrdersTotal();i++)                            //цикл перебора ордеров ????
  {
   if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false)break;     // если есть ордер ????
      if(OrderSymbol()==Symbol() && OrderMagicNumber()==MAGIC)   // определяем принадлежность ордера к инструменту и маджику  ????
      {
         if(OrderType()==OP_BUY)  buys++;               // что означает buys++  ????????? присвоивает переменной новое значение?
         if(OrderType()==OP_SELL) sells++;             // и sell++     ?????????????
        }
        }
 
novator:
Bitte erläutern Sie die Frage in den Code-Kommentaren

Die Variable, die die Kaufaufträge akkumuliert, wird um 1 erhöht (Programmiererkram)
 
YOUNGA:

die Variable, die die Kaufaufträge akkumuliert, wird um 1 erhöht (Programmiererkram)
Ich danke Ihnen,
d.h. wenn es mehr Aufträge als 0 gibt, wird die Funktion beendet ?
 {
   int buys=0,sells=0;
//----
   for(int i=1;i>OrdersTotal();i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
      if(OrderSymbol()==Symbol() && OrderMagicNumber()==MAGICMA)
        {
         if(OrderType()==OP_BUY)  buys++;
         if(OrderType()==OP_SELL) sells++;
        }
     }
//---- 
   if(buys>0) return(buys);
   else       return(-sells);
 

Hallo!

Wie kann ich den Code so ändern, dass er nicht nur nach Höchst- und Tiefstwerten innerhalb eines Tages sucht, sondern auch nach einem bestimmten Intervall innerhalb einiger Tage?

Hier ist, was ich habe:

if(StartStunde<=EndStunde)

{

delta=(EndHour*3600+EndMinute*60)-(StartHour*3600+StartMinute*60);

timeStart=iTime(NULL,PERIOD_D1,0)+StartHour*3600+StartMinute*60;

timeEnd =timeStart+delta;

}

if(StartStunde>EndStunde)

{

delta=(1440*60-(StartHour*3600+StartMinute*60))+(EndHour*3600+EndMinute*60);

timeEnd=iTime(NULL,PERIOD_D1,0)+EndHour*3600+EndMinute*60;

timeStart =timeEnd-delta;

 
Legeo777:

Hallo!

Wie kann ich den Code so ändern, dass er nicht nur nach Höchst- und Tiefstwerten innerhalb eines Tages sucht, sondern auch nach einem bestimmten Intervall innerhalb einiger Tage?

Hier ist, was ich habe:

if(StartStunde<=EndStunde)

{

delta=(EndHour*3600+EndMinute*60)-(StartHour*3600+StartMinute*60);

timeStart=iTime(NULL,PERIOD_D1,0)+StartHour*3600+StartMinute*60;

timeEnd =timeStart+delta;

}

if(StartStunde>EndStunde)

{

delta=(1440*60-(StartHour*3600+StartMinute*60))+(EndHour*3600+EndMinute*60);

timeEnd=iTime(NULL,PERIOD_D1,0)+EndHour*3600+EndMinute*60;

timeStart =timeEnd-delta;


Meiner Meinung nach ist es einfacher, das Standard-Zeitreihen-Array und die for-Anweisung zu verwenden.