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 ?
Remplacez limit=Bars-counted_bars-5 ; par limit=Bars-counted_bars-2 ;
EtmettezChartRedraw() 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 )))).
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?
//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" запрещено.//===============================================================================================================================================
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);
}
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 ?
Il va vivre un moment.
Puis les héritiers se formeront et tout reviendra à la normale.
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.
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 )))).
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.
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.
Que pensez-vous de ça ? Un graphique EA dans une sous-fenêtre ? Ou comme ici?
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.
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 :
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 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.