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

 
artmedia70:

Er wird noch eine Weile leben.


Und dann werden sich die Erben bilden und alles wird wieder normal werden


Ich bin nicht für eine Out-of-the-Box-Software-Lösung fragen, ich bitte um einige Richtung zu suchen - was zu beginnen mit, wenn OrdersHistoryTotal( ) nicht funktioniert. Aber das macht nichts. Ich habe noch eine Frage: Ich habe meinen Expert Advisor in zwei Alpari-Terminals getestet (Demo und Real mit geladenen Kursen und mit unterschiedlichem Ergebnis). Warum so etwas?
 
r772ra:
Zto, wo es zu sehen, besser, es herunterzuladen, obwohl zurückgeblieben.


hier ist ein Thread - auf Seite 9, wie man herunterlädt, wenn ich mich nicht irre.
 
ALXIMIKS:


Ich habe sie mit wissenschaftlichen Methoden gefunden:

Ersetzen Sie limit=Bars-counted_bars-5; durch limit=Bars-counted_bars-2;

Und stellen Sie ChartRedraw() vor alle Rückgaben.


Ja, die Moral von der Geschicht' ist folgende: Die Grenze sollte genau so gesetzt werden, dass es keine Ausführungsfehler gibt, man kann nicht zu viel )))) nehmen.
 
ALXIMIKS:

hier ist der Thread - auf Seite 9, wie man herunterlädt, wenn ich mich nicht irre.


Herzlichen Dank. Schauen wir uns das mal an.

Ja, Artikel 8 wurde gefunden.

 

Können Sie mir bitte sagen, wie ich den Indikator aus dem EA aufrufen kann? (vollständiger Aufruf, ich brauche eine Zeichnung, keine Puffer)

Und wie kann man dem EA auf einem Diagramm Platz zuweisen, ähnlich wie ein Indikator in einem separaten Fenster zugewiesen wird?

Ich würde mich freuen, es sowohl auf mt4 als auch auf mt5 zu implementieren - selbst wenn ich irgendwo hin umziehen muss.

 
ALXIMIKS:

Können Sie mir bitte sagen, wie ich den Indikator aus dem EA aufrufen kann? (vollständiger Aufruf, ich brauche eine Zeichnung, keine Puffer)

Und wie kann man dem EA in einem Diagramm Platz zuweisen, ähnlich wie einem Indikator in einem separaten Fenster?

Ich würde mich freuen, es sowohl auf mt4 als auch auf mt5 zu implementieren - zumindest wo es geht.


Vom EA aus sind nur die Puffer sichtbar, wenn ich mehr benötige, dann verschiebe ich einfach die Logik des Indikators im EA, oder verwende globale Variablen, um sie zu übertragen.

Und wie wäre es, dem EA auf dem Diagramm Platz zuzuweisen, ähnlich wie der Indikator in einem separaten Fenster zugewiesen wird?

Wie wäre es damit? Eine EA-Grafik in einem Unterfenster? Oder wie hier?

 
ALXIMIKS:

Können Sie mir bitte sagen, wie ich den Indikator aus dem EA aufrufen kann? (vollständiger Aufruf, ich brauche eine Zeichnung, keine Puffer)

Und wie kann man dem EA auf einem Diagramm Platz zuweisen, ähnlich wie ein Indikator in einem separaten Fenster zugewiesen wird?

Ich würde mich freuen, es sowohl auf mt4 als auch auf mt5 zu implementieren - zumindest wo es geht.

Bibliothek.

 //xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
 // 7. ФУНКЦИИ ДЛЯ УПРАВЛЕНИЯ ПРОГРАММАМИ MQL4.
 //xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
 // 7.1. Функция удаляет эксперт с указанного графика. В случае успеха функция возвращает TRUE, иначе - FALSE.
 bool ServiceDeleteExpert(int hwndChart); // Системный дескриптор окна графика, удаляемого эксперта.
 //===============================================================================================================================================
 // 7.2. ФУНКЦИЯ удаляет индикаторы по имени из списка загруженных индикаторов.
 void ServiceDeleteIndicatorsByName(int     hwndChart,         // Системный дескриптор окна, куда прикреплен индикатор.
                                    int     nWindow,           // Номер подокна для удаления индикаторов. Если -1, то удаляются индикаторы из всех подокон.
                                    string &asIndicatorName[], // Одномерный массив с именами удаляемых индикаторов.
                                    int     nNumberName);      // Количество имён индикаторов в массиве.
 //===============================================================================================================================================
 // 7.3. Функция удаляет скрипт с указанного графика. В случае успеха функция возвращает TRUE, иначе - FALSE.
 bool ServiceDeleteScript(int hwndChart); // Системный дескриптор окна графика, удаляемого скрипта.
 //===============================================================================================================================================
 // 7.4. Функция управляет диалоговым окном завершения скрипта и возвращает системный дескриптор диалогового окна завершения скрипта, если окно есть,
 //      иначе - NULL. Функция работает только с русской и английской локализациями.
 int ServiceDialogScript(int bInstruction); // Команда для диалогового окна завершения скрипта: TRUE - завершить скрипт, FALSE - не завершать скрипт.
 //===============================================================================================================================================
 // 7.5. Функция получает имена индикаторов из списка загруженных индикаторов.
 //      В случае успеха функция возвращает количество индикаторов в указанных подокнах параметром "nWindow", иначе ноль.
 int ServiceGetNamesIndicators(int     hwndChart,         // Системный дескриптор окна, куда прикреплен индикатор.
                               int     nWindow,           // Номер подграфика. Если -1, то считываются имена индикаторов из всех подокон.
                               string &asIndicatorName[], // Одномерный строковый массив для приёма имён индикаторов.
                                                          // Массив должен быть инициализирован разными значениями в каждой ячейке!
                                                          // Это особенность инициализации строковых массивов в MQL4.
                               int     nNumberName);      // Размер массива "asIndicatorName[]" для приёма имён индикаторов.
 //===============================================================================================================================================
 // 7.6. Функция возвращает TRUE, если окно свойств эксперта открыто, иначе - FALSE.
 bool ServiceIsPropertiesExpert(string sNameExpert); // Имя эксперта, для которого контроллируется открытие окна.
 //===============================================================================================================================================
 // 7.7. Функция открывает окно списка индикаторов. Функция ожидает открытия окна в течении 2,5 секунд. Если окно не появилось в течении этого времени,
 //      функция возвращает FALSE.
 bool ServiceListIndicators(int hwndChart); // Системный дескриптор окна графика, на котором вызывается окно списка индикаторов.
 //===============================================================================================================================================
 // 7.8. Функция загружает на указанный график пользовательский индикатор по его имени.
 void ServiceLoadCustomIndicator(int    hwndChart,      // Системный дескриптор окна графика, куда загружается индикатор.
                                 string sNameIndicator, // Имя загружаемого индикатора.
                                 int    bOK);           // Подтверждение запуска индикатора, при наличии диалогового окна свойств индикатора.
                                                        // TRUE - автонажатие на кнопку "OK" разрешено, FALSE - автонажатие на кнопку "OK" запрещено.
 //===============================================================================================================================================
 // 7.9. Функция загружает на указанный график эксперт по его имени.
 void ServiceLoadExpert(int    hwndChart,   // Системный дескриптор окна графика, куда загружается эксперт.
                        string sNameExpert, // Имя загружаемого эксперта.
                        int    bOK);        // Подтверждение запуска эксперта, при наличии диалогового окна свойств эксперта.
                                            // TRUE - автонажатие на кнопку "OK" разрешено, FALSE - автонажатие на кнопку "OK" запрещено.
 //===============================================================================================================================================
 // 7.10. Функция загружает на указанный график скрипт по его имени.
 void ServiceLoadScript(int    hwndChart,   // Системный дескриптор окна графика, куда загружается скрипт.
                        string sNameScript, // Имя загружаемого скрипта.
                        int    bOK);        // Подтверждение запуска скрипта, при наличии диалогового окна свойств скрипта. Скрипт может не иметь окна свойств!
                                            // При использовании функции для загрузки скрипта из скрипта на текущем графике параметр не работает из-за
                                            // невозможности одновременной работы двух скриптов на одном графике.
                                            // TRUE - автонажатие на кнопку "OK" разрешено, FALSE - автонажатие на кнопку "OK" запрещено.
 //===============================================================================================================================================
 // 7.11. Функция загружает на указанный график стандартный индикатор по его имени.
 void ServiceLoadStdIndicator(int    hwndChart,      // Системный дескриптор окна графика, куда загружается индикатор.
                              string sNameIndicator, // Имя загружаемого индикатора.
                              int    bOK);           // Подтверждение запуска индикатора, при наличии диалогового окна свойств индикатора.
                                                     // TRUE - автонажатие на кнопку "OK" разрешено, FALSE - автонажатие на кнопку "OK" запрещено.
 //===============================================================================================================================================
 

Guten Abend.

Ich habe dieses Problem...

Der EA öffnet während des Tests jeweils einen Auftrag und schließt ihn zum richtigen Zeitpunkt.

Wenn ich es auf einem realen Konto laufen lasse, werden die offenen Aufträge nicht geschlossen, und dann öffne ich sie in die entgegengesetzte Richtung und in dieselbe Richtung, und die Aufträge stapeln sich.

Ich weiß nicht, warum das so ist.

Der Expert Advisor funktioniert auf diese Weise:

   if (условие на открытие продажи)          
      {                                                                                                                                          
      if (Ticket2 > 0)                                                
         {
         OrderClose(Ticket2, Lot, Bid, 2, Red);   // закрытие покупки          
         Ticket2=0;                                               
         }
      if (Ticket1 == 0)                                        
         Ticket1=OrderSend(Symbol(), OP_SELL, Lot, Bid, 2, 0, 0);   
      }
   if (условие для покупки)            
      {
      if (Ticket1 > 0)                                            
         {
         OrderClose(Ticket1, Lot, Ask, 2, Red);         // закрытие продажи        
         Ticket1=0;                                                
         }
      if (Ticket2 == 0)                                         
         Ticket2_RSI=OrderSend(Symbol(), OP_BUY, Lot, Ask, 2, 0, 0);    
      }
 
waroder:

Guten Abend.

Ich habe dieses Problem...

Der EA öffnet während des Tests jeweils einen Auftrag und schließt ihn zum richtigen Zeitpunkt.

Wenn ich es auf einem realen Konto laufen lasse, werden die offenen Aufträge nicht geschlossen, und dann öffne ich sie in die entgegengesetzte Richtung und in dieselbe Richtung, und die Aufträge stapeln sich.

Ich weiß nicht, warum das so ist.

Der Expert Advisor funktioniert auf diese Weise:

Ist das Stück Code, in dem diese Tickets erstellt werden, geheim?
 
evillive:
Ist das Codefragment, in dem diese Aufträge ausgeführt werden, nicht geheim?


ich habe gerade geschrieben, wie sie gemacht werden)

Der Auftrag kann an eine beliebige Bedingung geknüpft werden, z. B. an einen Indikator oder an das Erreichen eines bestimmten Kursniveaus.

Auf dem Testgerät passiert genau das, aber auf dem echten Gerät werden die Aufträge nicht geschlossen, sondern zusätzlich von oben geöffnet.