AutoGraf Series 4 - MQL-Funktionen. - Seite 32

 
Integer писал(а) >>
Welches Skript?

Ich habe sie gefunden und einen Blick darauf geworfen. Jeder hier muss nach dem Prinzip "Stell dich nicht unter den Pfeil" handeln, das Selbstbewusstsein des Autors haut einen einfach um, da kann man nicht hingehen.

 
ForexTools >> :
Ich habe alle meine Beiträge gelöscht, die nichts mit der AG-Diskussion zu tun haben. Ich rufe andere "Trittbrettfahrer" dazu auf, dasselbe zu tun - lasst uns die Arbeit anderer respektieren: es ist nicht dort sauber, wo (Moderatoren) sauber machen, sondern dort, wo (Nutzer) keinen Müll hinterlassen ;)

Danke an sabluk für das Verständnis und die Unterstützung meiner "Initiative". Vielleicht werden andere unserem Beispiel folgen?

 

Die neue Version von AG Serie 4 - AutoGraf 4.90207 wurde veröffentlicht.

Es wurden Änderungen vorgenommen:
1. Option zum Stummschalten von Zecken hinzugefügt.
2. Der Fehler bei der Verwaltung der Instrumente 17 und 20 wurde behoben (wenn der AG- oder AT-Modus deaktiviert war, wurde das Instrument nicht gelöscht, wenn der Marktpreis des Instruments den Ausübungspreis erreichte; jetzt wird es automatisch gelöscht).
Laden Sie die neue Version hier herunter: http://autograf.dp.ua/Pages/4/421.htm.

 

AutoGraf 4 hat der Innovation des 5. Zeichens gut standgehalten.(http://forum.alpari-idc.ru/thread44876.html)


Es funktioniert einfach wie zuvor. Es sind keine Änderungen erforderlich (weil es richtig geschrieben ist - das Programm verwendet keine Variablenwerte, die numerisch definiert sind - alles ist auf Variablen aufgebaut, die aktualisiert werden, wenn sie sich auf dem Server ändern, insbesondere Point, Digits, StopLevel usw.). )

Die natürlichen Änderungen, die in den Einstellungen des Expert Advisors vorgenommen werden müssen, betreffen die voreingestellten Werte der Preisparameter. Zum Beispiel, SL (StopLoss in Pips) = 25, jetzt müssen wir es auf 250 oder einen beliebigen Wert nach dem Ermessen des Benutzers, aber nicht weniger als 100 (nämlich nicht kleiner als der aktuelle Wert von StopLevel Mindestabstand) setzen. Verfahren Sie in gleicher Weise mit den anderen Parametern.

Nach der Einstellung der Parameter (im Fenster "Experteneinstellungen") wird empfohlen, die Einstellungen (dort) zu speichern. Außerdem empfiehlt es sich, eine neue Vorlage zu erstellen: Schaltfläche Vorlagen - Speichern unter.

===

Filmleute haben einmal gefilmt, wie ein altes Haus gesprengt wurde.
Sie haben den Sprengstoff in... Bumm! Das Haus steht. Sie pflanzten mehr. Bumm! Das Erdgeschoss stürzt ein. Der gesamte obere Teil (4 Stockwerke) stürzte nicht ein, das Haus sackte nur um ein Stockwerk ab. Beim 5. Versuch gelang es schließlich, ihn zu sprengen.

Die Baufirma kaufte das Filmmaterial für viel Geld und warb mit der Qualität ihrer Arbeit, indem sie den Film zeigte:)

 

Meine Damen und Herren!

Bitte beantworten Sie die Frage.

Wie unterscheidet die Anwendung, dass die AT-Funktion Anweisungen (z. B. an das Terminal) an sie gibt und nicht selbst handelt?

Исполнение функции АТ связано с двумя основными возможностями.

Die erste ist, dass die AT-Funktion selbst handeln kann - sie bildet Handelsaufträge und sendet sie an den Server. In diesem Fall kann die Funktion keine von der Anwendung empfangenen Daten verarbeiten (oder einige von ihnen bearbeiten), aber sie kann ihre eigenen Berechnungen durchführen und dabei alle Funktionen der Sprache MQL4 nutzen, einschließlich der Adressierung des Terminals für die Bearbeitung von Aufträgen, das Abrufen aktueller Kurse, die Berechnung von Handelskriterien, die Verwaltung grafischer Objekte usw.

Die zweite Funktion ist direkt mit der Anwendung AutoGraf 4 verbunden. Mit dieser Funktion kann die AutoGraf 4-Anwendung angewiesen werden, alle erforderlichen Werkzeuge mit voreingestellten Einstellungen auf bestimmten Aufträgen oder einem Preisdiagramm zu installieren, die allgemeinen Einstellungen der Anwendung zu ändern, Werkzeuge zu löschen, Meldungen an den Benutzer anzuzeigen usw. (Ausgabeparameter). (Ausgabeparameter).

 

Meine Damen und Herren!

Bitte beantworten Sie eine Frage.

Im obigen Beispiel für die Funktion Custom Auto Trade in "Beispiel 2. Öffnen und Schließen von Marktaufträgen": Marktaufträge werden geöffnet, aber ich denke, dass schwebende Aufträge geschlossen werden.

//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж
// AG_AT.mq4                                             Пример 0 (инструментов нет)
// Пользовательская функция Автоматической Торговли.
// Используется при построении функции автоматической торговли для приложения AutoGraf 4
// Сергей Ковалёв, Днепропетровск, sk@autograf.dp.ua, ICQ 64015987, http://autograf.dp.ua
//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж 0 жж
#property library   
 
#import "AG_Lib.ex4"
   int AG_Magic_Number();                          // Вычисление MN 
   int AG_Message(string& Message[], string _Text);// Запись сообщений в массив Message[]
#import "AG_Trade_Criterion.ex4"
   int AG_Trade_Criterion_1();                     // Ф-ия определен. торгов. критериев 1
   int AG_Trade_Criterion_2();                     // Ф-ия определен. торгов. критериев 2
#import
//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж 1 жж
.......
//================================================================================== 7 ==
/*
                                       // Cнять блок комментариев с Примера 2
                                       // и закомментировать Пример 1
                                       // Пример 2. Открытие и закрытие рыночных ордеров.
   int Crit = AG_Trade_Criterion_2();  // Вызов функции вычисления торговых критериев
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   if (OrdersTotal()==0)               // Если нет ордеров, то интересуемся ..
      {                                // .. критериями открытия
      switch(Crit)                     // В этом блоке рассматриваются критерии открытия
         { 
         case 10:                      // Торговый критерий = Открыть_Buy
            MN = AG_Magic_Number();    // Вычисление MagicNumber (рекомендуется)
                                       // Открытие ордера Buy:
            OrderSend(Symbol(),OP_BUY, 0.1,Ask,2,Bid-100*Point,Bid+40*Point,Comm,MN); 
            break;
         case 20:                      // Торговый критерий = Открыть_Sell
            MN = AG_Magic_Number();    // Вычисление MagicNumber (рекомендуется)
                                       // Открытие ордера Sell:
            OrderSend(Symbol(),OP_SELL,0.1,Bid,2,Ask+100*Point,Ask-40*Point,Comm,MN);
         }
      }
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   if (OrdersTotal()==1)               // По стратегии возможен только 1 рыночный ордер
      {
      switch(Crit)                     // В этом блоке рассматриваются критерии закрытия
         {
         case 11:                      // Торговый критерий = Закрыть_Buy
            if (NormalizeDouble(Order[1][6],0) == 0.0)            // Если тип ордера Buy
               {                                      
               int _Ord_Ticket = NormalizeDouble(Order[1][4],0);  // Номер ордера
               double _Ord_Lots = NormalizeDouble(Order[1][5],2); // Полное закрытие
               OrderClose(_Ord_Ticket, _Ord_Lots, Bid, 2);        // Закрыть ордер Buy
               }
            break;
         case 21:                      // Торговый критерий = Закрыть_Sell
            if (NormalizeDouble(Order[1][6],0) == 1.0)      // Если тип ордера Sell
               {
               _Ord_Ticket = NormalizeDouble(Order[1][4],0);// Номер ордера
               _Ord_Lots = NormalizeDouble(Order[1][5],2);  // Будем закр.ордер полностью
               OrderClose(_Ord_Ticket, _Ord_Lots, Ask, 2);  // Закрыть ордер Sell
               }
         }
      }
*/
//================================================================================== 8 ==
   return(1);
   }
//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж Конец модуля жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж 10 жж
if (NormalizeDouble(Order[1][6],0) == 0.0)            // Если тип ордера Buy
и
if (NormalizeDouble(Order[1][6],0) == 1.0)            // Если тип ордера Sell 

Oder habe ich vielleicht etwas falsch verstanden?

Общее количество ордеров в приложении AutoGraf 4 не должно превышать 30. Нумерация ордеров в приложении AutoGraf 4 начинается с 1. Нулевой индекс в первом измерении массива Order[][] для учёта параметров ордеров не используется. Поэтому массив Order[][] в первом измерении имеет размерность 31. Каждая строка в массиве соответствует одному ордеру и содержит значения следующих параметров ордеров:

[0][0] - Gesamtzahl der Aufträge;

[][0] - nicht verwendet;

[1][1] - OpenPrice - Preis der Eröffnung (Einstellung) eines Auftrags (absoluter Preiswert);

[][2] - StopLoss des Auftrags (absoluter Kurswert);

[][3] - TakeProfit-Auftrag (absoluter Kurswert);

[][4] - NumberOrders Nummer der Bestellung;

[][5] - Anzahl der Lose der Bestellung;

[][6] - Art der Bestellung (0=B, 1=S, 2=BL, 3=SL, 4=BS, 5=SS,Trades);

[][7] - MagicNumber - Die magische Zahl der Bestellung;

[][8] - 0/1 Kommentar Tatsache;

[][9] - PrOld- Anfangspreis der Auftragseröffnung (absoluter Preiswert).


Aus dem Handbuch:

Art der Operation für die Funktion OrderSend(). Er kann einen der folgenden Werte annehmen:

Konstante Wert Beschreibung
OP_BUY0Kaufen
OP_SELL1Verkaufen
OP_BUYLIMIT2BUY LIMIT schwebende Order
OP_SELLLIMIT3Ausstehender SELL LIMIT-Auftrag
OP_BUYSTOP4Ausstehender BUY STOP-Auftrag
OP_SELLSTOP5Ausstehender SELL STOP-Auftrag

D.h. sein sollte:

if (NormalizeDouble(Order[1][0],0) == 0.0)            // Если тип ордера Buy
и
if (NormalizeDouble(Order[1][1],0) == 1.0)            // Если тип ордера Sell 
 

Meine Damen und Herren!

Bitte beantworten Sie meine Frage.

Warum wird in den EA-Eigenschaften der Name meiner Strategie "L_1" nicht gespeichert?


Bei der Installation von AG_exp. habe ich es aufgeschrieben, es wird in der Zeile angezeigt, aber es wird nicht in den Eigenschaften festgehalten?

 

Meine Damen und Herren!

Bitte beantworten Sie eine Frage.

Wie kann man beim Beenden einer Anwendung oder nach deren Deinstallation grafische Objekte löschen, die von der Anwendung nicht unterstützt werden? Zum Beispiel wie OBJ_ARROW?

 
LeonidSB писал(а) >>

Das heißt, es sollte so sein:

if (NormalizeDouble(Order[1][0],0) == 0.0)            // Если тип ордера Buy
и
if (NormalizeDouble(Order[1][1],0) == 1.0)            // Если тип ордера Sell 

Nein, nicht richtig. Sehen Sie sich noch einmal die Tabelle (Bestellbeispiel) auf http://autograf.dp.ua/Pages/2/26/267/2674.htm an.

Auf dieser Seite wird auch beschrieben, wie die Array-Indizes den im Array enthaltenen Parametern entsprechen. Bitte beachten Sie, dass es sich hier um einen Index in der zweiten Array-Dimension Order[][] handelt.

[0][0] - Gesamtzahl der Aufträge;

[][0] - nicht verwendet;

[][1] - OpenPrice - Preis, zu dem die Order eröffnet (gesetzt) wird (absoluter Preiswert);

[][2] - StopLoss des Auftrags (absoluter Kurswert);

[][3] - TakeProfit-Auftrag (absoluter Kurswert);

[][4] - NumberOrders Nummer der Bestellung;

[][5] - Anzahl der Lose der Bestellung;

[][6] - Art der Bestellung (0=B, 1=S, 2=BL, 3=SL, 4=BS, 5=SS, Trades);

[][7] - MagicNumber - Die magische Zahl der Bestellung;

[][8] - 0/1 Kommentar Tatsache;

[][9] - PrOld- ursprünglicher Preis bei der Eröffnung des Auftrags (absoluter Preiswert).

---------------

Der Parameter "Order type" entspricht dem 6. Index in der zweiten Dimension des Arrays Order[][].

if (NormalizeDouble(Order[1][6],0) == 0.0)            // Если тип ордера Buy
и
if (NormalizeDouble(Order[1][6],0) == 1.0)            // Если тип ордера Sell 
 
LeonidSB писал(а) >>

Meine Damen und Herren!

Bitte beantworten Sie meine Frage.

Warum wird in den EA-Eigenschaften der Name meiner Strategie "L_1" nicht gespeichert?

Wenn ich AG_exp. einstelle, schreibe ich es auf, es wird in der Zeile angezeigt, aber es wird nicht in den Eigenschaften gespeichert?

Wenn Sie alles richtig machen, sollten Sie es nicht vergessen.

Sie bleibt so lange gespeichert, bis Sie den Expert Advisor aus dem Fenster entfernen.

Sie können eine von zwei Möglichkeiten wählen, wenn Sie sie beim nächsten Mal nicht erneut eingeben möchten:

1. Speichern Sie den Expert Advisor, den Sie auf Vorlagen eingestellt haben. Starten Sie einen neuen Ladevorgang mit einer neuen Vorlage.

2. Speichern Sie die Einstellungen des Expert Advisors (Schaltfläche "Speichern" im Fenster "Einstellungen"), und laden Sie die Einstellungen, wenn Sie den Expert Advisor das nächste Mal laden (Schaltfläche "Laden" im Fenster "Einstellungen").

Die Reihenfolge der Anbringung von Strategien finden Sie hier: http://autograf.dp.ua/Pages/2/26/267/26711/26711_2.htm.

LeonidSB schrieb :>>

Oh je!

Bitte beantworten Sie die Frage.

Wie kann man beim Beenden einer Anwendung oder nach deren Deinstallation grafische Objekte löschen, die von der Anwendung nicht unterstützt werden? Wie OBJ_ARROW?

Wählen Sie das Objekt aus und löschen Sie es (drücken Sie auf Entf).
Wenn Sie programmatisch vorgehen, können Sie ObjectsDelete() oder ObjectsDeleteAll() verwenden.