Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 6. - page 316

 
artmedia70:

Il va vivre un moment.


Puis les héritiers se formeront et tout reviendra à la normale.


Je ne demande pas une solution logicielle prête à l'emploi, mais plutôt une orientation à rechercher - par quoi commencer si la fonction OrdersHistoryTotal( ) ne fonctionne pas. Mais peu importe. J'ai une autre question. J'ai testé mon Expert Advisor dans deux terminaux Alpari (démo et réel avec des cotations chargées et avec des résultats différents). Pourquoi une telle chose ?
 
r772ra:
Zto, où le voir, mieux vaut le télécharger, mais c'est débile.


voici un fil de discussion - à la page 9 comment télécharger, si je ne me trompe pas.
 
ALXIMIKS:


Je l'ai trouvé par la méthode scientifique :

Remplacez limit=Bars-counted_bars-5 ; par limit=Bars-counted_bars-2 ;

Et mettez ChartRedraw() devant tous les retours.


Oui, la morale est la suivante : la limite doit être fixée exactement pour qu'il n'y ait pas d'erreurs d'exécution, on ne peut pas prendre trop de )))).
 
ALXIMIKS:

voici le fil de discussion - à la page 9 comment télécharger, si je ne me trompe pas.


Merci beaucoup. Jetons un coup d'œil.

Oui, l'article 8 a été trouvé.

 

Pouvez-vous me dire comment appeler l'indicateur depuis l'EA ? (appel complet, j'ai besoin d'un dessin, pas de tampons)

Et comment allouer de l'espace pour l'EA sur un graphique, de la même manière qu'un indicateur est alloué dans une fenêtre séparée ?

Je serais heureux de le mettre en œuvre à la fois sur mt4 et mt5 - même si je dois déménager.

 
ALXIMIKS:

Pouvez-vous me dire comment appeler l'indicateur depuis l'EA ? (appel complet, j'ai besoin d'un dessin, pas de tampons)

Et comment allouer de l'espace pour l'EA sur un graphique, de la même manière qu'un indicateur est alloué dans une fenêtre séparée ?

Je serais heureux de le mettre en œuvre à la fois sur mt4 et sur mt5 - au moins où aller.


Depuis l'EA, seuls les tampons sont visibles, si j'ai besoin de plus, il suffit de déplacer la logique de l'indicateur dans l'EA, ou d'utiliser des variables globales pour les transférer.

Et pourquoi ne pas allouer de l'espace à l'EA sur le graphique, de la même manière que l'indicateur est alloué dans une fenêtre séparée ?

Que pensez-vous de ça ? Un graphique EA dans une sous-fenêtre ? Ou comme ici?

 
ALXIMIKS:

Pouvez-vous me dire comment appeler l'indicateur depuis l'EA ? (appel complet, j'ai besoin d'un dessin, pas de tampons)

Et comment allouer de l'espace pour l'EA sur un graphique, de la même manière qu'un indicateur est alloué dans une fenêtre séparée ?

Je serais heureux de le mettre en œuvre à la fois sur mt4 et sur mt5 - au moins où aller.

Bibliothèque.

 //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" запрещено.
 //===============================================================================================================================================
 

Bonsoir.

J'ai ce problème...

L'EA ouvre un ordre à la fois pendant le test et le ferme au bon moment.

Lorsque je l'exécute sur un compte réel, les ordres ouverts ne sont pas fermés, puis je les ouvre dans le sens inverse, ainsi que dans le même sens, et les ordres s'empilent.

Je ne sais pas pourquoi cela arrive.

Le conseiller expert fonctionne de cette manière :

   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:

Bonsoir.

J'ai ce problème...

L'EA ouvre un ordre à la fois pendant le test et le ferme au bon moment.

Lorsque je l'exécute sur un compte réel, les ordres ouverts ne sont pas fermés, puis je les ouvre dans le sens inverse, ainsi que dans le même sens, et les ordres s'empilent.

Je ne sais pas pourquoi cela arrive.

Le conseiller expert fonctionne de cette manière :

Le morceau de code où ces billets sont fabriqués est-il secret ?
 
evillive:
Le fragment de code où ces ordres sont exécutés n'est-il pas secret ?


je l'ai écrit comme ils sont faits)

L'ordre peut être conditionné par n'importe quoi, que ce soit un indicateur ou un prix atteignant un certain niveau.

Sur le testeur, c'est ce qui se passe, mais sur le vrai, les ordres ne sont pas fermés et sont en plus ouverts par le haut.