Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 6. - Seite 688

 
vld:
Ich sprach über das Terminal-Datenfenster, der Rest ist mehr oder weniger klar)

Sie möchten also das Datum und die Uhrzeit der Kerze sowie den Indikatorwert sehen, wenn Sie mit der Maus darüber fahren?
 
AlexeyVik:

Sie möchten das Datum und die Uhrzeit der Candlestick- und Indikator-Messwerte sehen?

Ein Gimmick, aber was soll's)

Ich kann das Datum und die Uhrzeit der Kerze sehen, wenn ich mit dem Mauszeiger über die Kerze fahre. Indikatorwerte der Zeitintervallgrenze, an der ich mich befinde,

Die Anzahl der Tage, usw., Balken des Zeitintervalls und bis zu seinem Ende (sie wird in Sekunden gezählt und angezeigt).

Ja, und das habe ich durch Daten von Zitaten Time[0], Time[Bars-1].

Um unnötiges Ruckeln zu vermeiden)

 
vld:

Ein Gimmick, aber was soll's)

Ich kann das Datum und die Uhrzeit der Kerze sehen, wenn ich mit dem Mauszeiger über die Kerze fahre. Indikatorwerte der Zeitintervallgrenze, an der ich mich befinde,

Die Anzahl der Tage, usw., Balken des Zeitintervalls und bis zu seinem Ende (es wird in Sekunden gezählt und angezeigt).

Ja, und das habe ich durch Daten von Zitaten Time[0], Time[Bars-1].

So dass ohne unnötiges Ruckeln)


Ich verstehe es nicht, aber es ist kein Gag, sondern eine Überraschung des Unverständnisses.
 

Die Funktion start() war früher vom Typ int. Jetzt ist es ein ungültiger Typ. So etwas gibt es. Früher war es bequem, die Funktion start() zu beenden, wenn sie fehlschlug. Aber jetzt ist es nicht mehr so bequem. Ich habe eine der alten Eulen genommen, wo man sehen kann, wie ich vorher geschrieben habe:

void OnTick()
{
//---
   if (gdt_lastBarTime != Time[0])      // Если открылся новый бар, отрабатываем требуемые действия
   {
      int signal = GetGeneralSignal();
   
      if (signal != SIGNAL_NO)
          if (!Trade(signal))
              return (0);
          
      // Блок управления позициями   
      for (int li_Ord = OrdersTotal()-1; li_Ord >= 0; li_Ord--)
      {
         if (!OrderSelect(li_Ord, SELECT_BY_POS)) continue;
         if (OrderMagicNumber() != ii_Magic) continue;
         if (OrderSymbol() != Symbol()) continue;
       
          SPos.gi_CurTicket = OrderTicket();
          SPos.gi_Type = OrderType();
       
          // Блок модификации ордеров       
          if (id_SL != 0 || id_TP != 0)
          {
             if (OrderStopLoss() == 0 && OrderTakeProfit() == 0)
             {
                OrdersModifyer (ticket);
             }
          }
          // Блок перевода ордеров в б.у.
          if (OrderStopLoss() <= gd_PriceBU)
          {
             if (OrderType() > 1) continue;
             MovingStopLossToBU();
          }
          // Блок траала открытых ордеров
          if (OrderStopLoss() > gd_PriceBU)
          {
             TrailingStop();
          }

          // Удаление просроченных отложенных ордеров
          if (OrderOpenPrice() < Time[0])
          {
             DeletePendingOrders();
          }
      }
      
      gdt_lastBarTime = Time[0];     // На текущем баре все необходимые действия..
                                     // .. успешно выполнены
   }
}

Grundsätzlich steuere ich mit der Variablegdt_LastBarTime die Eröffnung eines neuen Balkens. Früher war das anders. Ich habe es so geschrieben:

if (gdt_lastBarTime == Time[0]) return (0)

Ich habe alle weiteren Operationen übersprungen. Wie lässt sich das jetzt besser umsetzen? Denn es gibt keine Möglichkeit, einen Wert zurückzugeben. Es stellt sich heraus, dass, wenn ich die Bedingung eingegeben habe, was auch immer dort passiert, die Funktion zum Ende kommt und die Variable gdt_lastBarTime einen neuen Wert erhält. Der Punkt ist, dass es nicht möglich ist, bei jedem Tick Anfragen an das Terminal zu senden. Daher müssen wir diesen Fall genauer eingrenzen. Und wenn die Funktion nicht beendet werden kann, wie z. B. bei einer int- oder booleschen Funktion, bedeutet dies, dass sie trotzdem funktioniert.

 
hoz:

Die Funktion start() war früher vom Typ int. Jetzt ist es ein ungültiger Typ. So etwas gibt es. Früher war es bequem, die Funktion start() zu beenden, wenn sie fehlschlug. Aber jetzt ist es nicht mehr so bequem. Ich habe eine der alten Eulen genommen, wo man sehen kann, wie ich vorher geschrieben habe:

Grundsätzlich steuere ich mit der Variablegdt_LastBarTime die Eröffnung eines neuen Balkens. Früher war das anders. Ich habe es so geschrieben:

Ich wollte keine weiteren Operationen mehr durchführen. Wie lässt sich das jetzt besser umsetzen? Denn es gibt keine Möglichkeit, einen Wert zurückzugeben. Es stellt sich heraus, dass, wenn ich die Bedingung eingegeben habe, was auch immer dort passiert, die Funktion zum Ende kommt und die Variable gdt_lastBarTime einen neuen Wert erhält. Der Punkt ist, dass es nicht möglich ist, bei jedem Tick Anfragen an das Terminal zu senden. Daher müssen wir diesen Fall genauer eingrenzen. Und wenn die Funktion nicht beendet werden kann, wie z. B. bei einer int- oder booleschen Funktion, bedeutet dies, dass sie trotzdem funktioniert.

Was ist falsch daran, keine Parameterzu haben ?
 
evillive:
Rückgabe ohne Parameter nicht zufriedenstellend ist?
Das ist der Punkt, an dem ich aufgehört habe.
 

Es ist eine Frage über die Verwendung von Indikatorpuffern aufgetaucht - nehmen wir an, zwei Puffer in einem separaten Fenster zeichnen ein Histogramm. Die erste zeigt einige Nennwerte und die zweite zeigt Spitzenwerte.
Ist es möglich, die Verwendung des zweiten Puffers durch externe Indikatoren (Assistenten usw.) programmatisch zu unterbinden, d. h. ihn nur für die Anzeige der erforderlichen Werte auf dem Diagramm zu verwenden, aber nicht für externe Indikatoren sichtbar zu machen, die vom Benutzer auf dem Diagramm überlagert werden?

 
atztek:

Ist es möglich, die Verwendung des zweiten Puffers durch externe Indikatoren (Assistenten usw.) programmatisch zu unterbinden, so dass er nur zur Anzeige der erforderlichen Werte auf dem Diagramm verwendet wird, aber für externe Indikatoren, die vom Benutzer auf dem Diagramm überlagert werden, nicht sichtbar ist?

Nein. Alles, was sichtbar ist, kann programmatisch ausgelesen werden.
 
TheXpert:
Nein. Alles, was sichtbar ist, kann programmatisch gezählt werden.

Ich verstehe.
Ich danke Ihnen!
 

Ist es möglich, ein zweidimensionales Array zu erstellen, indem man die Größe der zweiten Dimension auf eine Variable statt auf eine Konstante setzt?

Grund der Beschwerde: