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

 

Wie erfahre ich, ob ein Symbol für ein Konto verfügbar ist, ohne dass ich es auf dem Marktplatz eröffnen muss?

 
leonerd:

Wie erfahre ich, ob ein Symbol für ein Konto verfügbar ist, ohne dass ich es auf dem Marktplatz eröffnen muss?

In der Regel finden sich auf der Website der EZG, auf der die Kontotypen beschrieben sind, auch Vertragsspezifikationen. Wenn die Spezifikation für jede Kontoart unterschiedlich ist, werden in den Listen der verfügbaren Instrumente nur diejenigen aufgeführt, die für die jeweilige Kontoart verfügbar sind. Einige Maklerfirmen zeigen in der Market Watch nicht nur die Symbole an, die gehandelt werden können, sondern auch andere Symbole. Sie sind für das Konto verfügbar, die Notierungen gehen, aber Sie können nicht handeln. Wenn Sie daran interessiert sind, wie Sie programmatisch alle verfügbaren Symbole auflisten können, verwenden Sie die Funktionen SymbolsTotal und SymbolName.

 

Es gibt eine Funktion.

double XX=0;

double x()
{
  XX++;

return(XX);
}


Jeder Funktionsaufruf ändert die Variable ХХ, und ХХ muss extern sein (gemäß meiner Logik), aber jeder Funktionsaufruf beginnt damit, dass ХХ 0 ist, und dementsprechend wird return(ХХ) seinen Wert zurückgeben. D.h. ich verstehe nicht, wie man die Variable XX extern macht und die Funktion "autonom", isoliert, aufrufen kann. Und zwar mit Hilfe von MQ4. Ich danke Ihnen!

 
Александр:

Es gibt eine Funktion.


Jeder Funktionsaufruf ändert die Variable XX, und ich brauche XX, um extern zu sein (durch die Logik, die ich will), aber jeder Funktionsaufruf begann mit XX als 0 und dementsprechend gab return(XX) seinen Wert zurück. D.h. ich verstehe nicht, wie man die Variable XX extern macht und die Funktion "autonom", isoliert, aufrufen kann. Und zwar mit Hilfe von MQ4. Ich danke Ihnen!

Der Ansatz, den Zähler zu erhöhen, ist völlig unverständlich. Warum nicht direkt erhöhen, wozu brauchen wir eine Funktion?

 
Александр:

Es gibt eine Funktion.


Jeder Funktionsaufruf ändert die Variable ХХ, und ХХ muss extern sein (nach der von mir gewünschten Logik), aber jeder Funktionsaufruf beginnt damit, dass ХХ 0 ist, und dementsprechend wird return(ХХ) seinen Wert zurückgeben. D.h. ich verstehe nicht, wie man die Variable XX extern macht und die Funktion "autonom", isoliert, aufrufen kann. Und zwar mit Hilfe von MQ4. Ich danke Ihnen!

Innerhalb der Funktion wird sie also auf Null gesetzt und das war's.

double XX=0;

double x()
{
  XX=0;
  XX++;
return(XX);
}
 
Alexey Viktorov:

Setzen Sie also innerhalb der Funktion den Wert auf Null, und das war's.

Es wird immer 1 zurückgegeben)

 
Vitaly Muzichenko:

Auf diese Weise wird immer 1 zurückgegeben)

So wie der Code dargestellt ist, wird er immer 1 zurückgeben. Meines Erachtens ist dies jedoch keine sehr gut vereinfachte Version der Funktion, weshalb ich diese Lösung vorgeschlagen habe.

Nehmen wir an, die Funktion hat eine while-Schleife und wir müssen feststellen, wie viele Iterationen der Schleife es gab.

Wenn nicht, warten wir auf die Klärung der Frage.

 

Das Problem ist, dass ich (um den aktuellen Wert zu speichern) eine externe Variable erstelle. Wenn ich die Funktion jedoch mehrmals und zu UNTERSCHIEDLICHEN Zeiten aufrufe, erhalte ich denselben Wert dieser Variablen. Und ich brauche mehrere autonome "Sets" der gleichen Funktion. Ich möchte aus offensichtlichen Gründen keine Schleifen verwenden. Eine Schleife ist ein perfektes Beispiel für das, was ich brauche. Es ist wie eine in sich geschlossene Funktion, die nur während der Schleife existiert.

 

Das Problem ist, dass ich (um den aktuellen Wert zu speichern) eine externe Variable erstelle. Wenn ich die Funktion jedoch mehrmals und zu UNTERSCHIEDLICHEN Zeiten aufrufe, erhalte ich denselben Wert dieser Variablen. Und ich brauche mehrere autonome "Sets" der gleichen Funktion. Ich möchte aus offensichtlichen Gründen keine Schleifen verwenden. Eine Schleife ist ein perfektes Beispiel für das, was ich brauche. Sie ist wie eine in sich geschlossene Funktion, die nur während einer Schleife existiert.


Das ist es, was ich brauche.

double XX=0;

double x()
{
  XX=0;
  XX++;
return(XX);
}
///////////////
int start()

{

 Print(" x() = ',x()); // Проверка в 10:00, вызывал функцию в 08:00.
 x() = 40;// условно конечно

///////////

 Print(" x() = ',x()); // Проверка в 10:00, здесь вызвал вызывал функцию раньше в 01:00.
 x() =70;// условно конечно

return(0);
}
 
Der einfachste Ausweg ist, mehrere identische Funktionen mit unterschiedlichen Namen zu haben (Schleifen nicht mitgezählt). Aber ich weiß nicht, wie oft ich es aufrufen muss, also möchte ich eine elegante Lösung.