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

 
artmedia70:
Dies ist das Senden einer Handelsanfrage an den Server.


Autsch.

Ich meinte OrderSelect.


khorosh:
Wenn Sie sich über die KimIV-Funktionen informieren, werden Sie feststellen, dass die meisten von ihnen dazu dienen, Informationen über offene oder geschlossene Aufträge abzurufen.

Wieder einmal bin ich beim Durchstöbern der Seiten des Tutorials auf ein Missverständnis bezüglich der Verwendung der Funktion "Auftragsbuchhaltung" gestoßen. Ich beschloss zu fragen.
Die KimIV-Funktionen sind schwer zu begreifen, aber ich werde jedes Detail berücksichtigen (auch wenn es irrational ist).
Oh, das Beispiel mit dem PC, dem Fernseher und dem Telefon - ein sehr gutes Beispiel. Jetzt habe ich über den Aufbau meines Fernsehers nachgedacht und bin zu dem Schluss gekommen, dass ich sehr gut weiß, wie mein Fernseher aufgebaut ist (als meine Eltern mich vor drei Jahren dabei erwischt haben, wie ich ihn auseinandergenommen habe, bekam ich zum ersten Mal Zugang zum Internet).
 
Link_x:

Ups.

Ich meinte OrderSelect.


Wieder einmal bin ich beim Durchblättern der Seiten des Tutorials auf ein Missverständnis bei der Verwendung der Funktion OrderSelect() gestoßen. Ich beschloss zu fragen.
KimIV-Funktionen sind schwer zu begreifen, aber man sollte jedes Detail berücksichtigen (auch wenn es irrational ist).
Oh, das Beispiel mit dem PC, dem Fernseher und dem Telefon - ein sehr gutes Beispiel. Jetzt habe ich über den Aufbau meines Fernsehers nachgedacht und bin zu dem Schluss gekommen, dass ich sehr gut weiß, wie mein Fernseher aufgebaut ist (als meine Eltern mich vor drei Jahren dabei erwischten, wie ich den Fernseher auseinander nahm, bekam ich zum ersten Mal Zugang zum Internet).

Der Code und die Logik von Igor sind sehr leicht zu verstehen. Viel Unnötiges für die Universalität, aber immerhin. Zeigen Sie mir, was Sie nicht verstehen, und ich werde es Ihnen sagen.

OrderSelect() - wählt die Bestellung aus. Dies ist das erste, was Sie tun sollten, wenn Sie mit Aufträgen arbeiten.

 
artmedia70:

Der Code und die Logik von Igor sind sehr leicht zu verstehen. Viel Unnötiges für die Universalität, aber immerhin. Zeigen Sie mir, was Sie nicht verstehen, und ich werde es Ihnen sagen.

OrderSelect() - wählt die Bestellung aus. Dies ist der erste Schritt bei der Arbeit mit Aufträgen.



Das ist großartig! "Los geht's!" :)

"Ziegelstein Nummer eins".
Meine Vorstellung von den Bedeutungen der Komponenten:
int GetTypeLastClosePos(string sy="", int mn=-1) {                            // Обозначение пользовательской функции, строковой переменной, а так же числовой переменной.
  datetime t;                                                                 // Установление переменной, связанной со временем. 
  int      i, k=OrdersHistoryTotal(), r=-1;                                   // Обозначение числовой переменной, переменной, использующей исторические все данные, утверждение значения r.
  if (sy=="0") sy=Symbol();                                                   //  Если строковая переменная равняется "0", то она имеет случайное значение.
  for (i=0; i<k; i++) {                                                       // Начало  выяснения типа позиции, при обстоятельствах: i < K, а так будет всегда.
   if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {                         // Поиск ордера из истории закрытых ордеров с "билетом" i, точным номером позиции. Если ордер найден, то
      if ((OrderSymbol()==sy || sy=="") && (mn<0 || OrderMagicNumber()==mn)){ // задается инструмент, по которому был открыт ордер как sy и его уникальный номер как mn. Это еще не все.
        if (OrderType()==OP_BUY || OrderType()==OP_SELL) {                    // Тип ордера определяется как покупка или продажа заданного значения sy инструмента.
          if (t<OrderCloseTime()) {                                           // Если время закрытия ордера определено, тогда определяются две переменные:
            t=OrderCloseTime();                                               // переменная t в качестве  времени закрытия идентифицированного ордера,
            r=OrderType();                                                    //  переменная r в качестве типа определенного ордера.
          }                                                                   //  Хватит.
        }                                                                     // Достаточно.
      }                                                                       // Полно, я доволен!
    }                                                                         // Остановись!
  }                                                                           // Стой, ****!
  return(r);                                                                  // Остановка дейст вия функции с выводом значения переменной r.
}                                                                             // Конец. 
.
In diesem Code konnte ich keine Variable finden, die den Wert des Typs des letzten, abgeschlossenen Auftrags angibt.

Es ist mir klar, wie man die Funktionen von Igor, der in lokalen Kreisen verehrt wird, analysiert.
Darf ich mein Verständnis dieser Komponenten darlegen, und Sie, als intelligente Programmierer, werden mein Verständnis dieser Funktionen korrigieren? ><
 
artmedia70:

Igor 1 hat sehr zugänglichen Code und Logik. Eine Menge 2 - unnötig für die Universalität, aber dennoch. Zeigen Sie mir, was Sie 3 - nicht verstehen, und ich sage es Ihnen.

4 - OrderSelect() - wählt eine Bestellung aus. Dies ist der erste Schritt bei der Arbeit mit Aufträgen.


Punkt für Punkt antworten, tut mir leid.
1 - ein Programmiergenie?
2 - um fair zu sein, ist nichts überflüssig, außer Fäkalien und andere Zerfallsprodukte (offene Meinung, bereit zu debattieren, aber in einem anderen Thread :) ).
3 - jetzt ergibt alles einen Sinn. :)
4 - so wahr. Ich weiß, ich habe mich etwas "vertan" und mit der Funktion "OrderSend" getippt.

Vielen Dank für Ihren Beitrag zur Vorlage "Function-Brick parsing". :)
 
Sepulca:


Ja zum Makler, natürlich)))

Das Terminal kümmert sich nicht.... Gibt Ihnen die letzten bekannten Daten...


Der Server verfügt über nur vier Funktionen. Öffnen, Ändern und Schließen (Löschen) eines Auftrags
 
Link_x:
Punkt für Punkt antworten, tut mir leid.
1 - ein Programmiergenie?
2 - um fair zu sein, ist nichts überflüssig, außer Fäkalien und andere Zerfallsprodukte (offene Meinung, bereit zu diskutieren, aber in einem anderen Thread :) ).
3 - jetzt ergibt alles einen Sinn. :)
4 - so wahr. Ich weiß, ich habe mich etwas "vertan" und mit der Funktion "OrderSend" getippt.

Vielen Dank für Ihren Beitrag zur Vorlage "Function-Brick parsing". :)

Zunächst einmal müssen wir uns mit dem Begriff "Funktion" vertraut machen. Dann kann man sich mit der Frage beschäftigen, was sie bewirken und wie man sie einsetzt.
 
Zur Erinnerung!
Bevor Sie sich Gedanken über Ihre Unfähigkeit machen, den Code zu verstehen, sollten Sie "versuchen, den Fernseher auseinander zu nehmen".
О-у, насчет примера с ПК, телевизором, телефоном - очень хороший пример. 
Сейчас порассуждал о строении своего телевизора и пришел к выводу, 
что хорошо знаю, как устроен мой телевизор (года три назад "горел желанием" его разобрать, 
именно в тот момент, когда мои родители застали меня за разбиранием телевизора, 
я впервые получил доступ в интернет). 
 
Link_x:

Perfekt! "Jetzt geht's los! :)

"Ziegelstein Nummer eins".
Meine Darstellung der konstituierenden Werte:
.
In diesem Code konnte ich die Variable nicht finden, die den Wert des Typs der letzten, abgeschlossenen Bestellung angibt.

Es ist mir klar, wie man die Analyse der Funktionen von Igor, der in diesen Kreisen verehrt wird, durchführen kann.
Darf ich mein Verständnis dieser Komponenten darlegen, und Sie, als intelligente Programmierer, mein Verständnis dieser Funktionen korrigieren? ><

Die Auftragsart in der Variablen r. Beim letzten Operator wird der Wert dieser Variablen der Funktion selbst zugewiesen, was bedeutet, dass Sie diese Variable im Prinzip nicht benötigen. Der Typ des letzten abgeschlossenen Auftrags ist der Wert der Funktion, z.B. können Sie diesen Wert sehen, wenn Sie ihn mit dem Operator Comment() auf dem Bildschirm anzeigen

Comment("Typ=",GetTypeLastClosePos("", -1);

oder im Journal mit dem Operator Print()

Print("Typ=",GetTypeLastClosePos("", -1);
 
evillive:

Ersetzen Sie MA-Variablen durch Indikatorvariablen im EA-Code (alle drei Sätze):

dann ersetzen Sie die MA-Aufrufzeilen durch den J2JMA-Aufruf:


evillive, versucht zu ersetzen, wie Sie sagten, aber anscheinend auch dies erfordert mehr Wissen, Kompilieren gibt "53 Fehler, 18 Warnung(en)", Ergebnis beigefügt. evillive, kann ich Sie bitten, diese Ersetzungen vorzunehmen, wenn Sie Zeit haben.
 
khorosh:

Die Auftragsart in der Variablen r. In der letzten Anweisung wird der Wert dieser Variablen der Funktion selbst zugewiesen, was bedeutet, dass Sie diese Variable im Prinzip nicht benötigen. Der Typ des letzten abgeschlossenen Auftrags ist der Wert der Funktion. Sie können diesen Wert zum Beispiel sehen, wenn Sie ihn mit dem Operator Comment() auf dem Bildschirm ausgeben

oder in das Journal mit dem Operator Print()


Hier ein Beispiel für eine praktische Anwendung einer benutzerdefinierten Funktion:
GetTypeLastClosePos

.
Ich danke Ihnen.
Sie müssen also den Namen der Funktion eingeben, um sie zu verwenden, und die Variable "r" selbst wird so gesetzt, dass sie den Wert dieser Funktion bestimmt!
Hier ist eine kleine Entdeckung für mich! ^^
Nochmals vielen Dank, Juri. :)


Zur endgültigen Klärung ist dies möglich:

if(GetTypeLastClosePos == OP_BUY)
?


Grund der Beschwerde: