[ARCHIVE]Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Je ne peux aller nulle part sans toi - 5. - page 88
Bonjour à tous ! Pouvez-vous me dire s'il est possible d'implémenter une fonction de vitesse de changement de prix dans mql4 ? Par exemple, si le prix change plus rapidement que 30 pips par seconde, alors ne pas ouvrir une transaction (pour un EA) ... si possible, dites-moi le code ... merci.
artmedia70: В той функции идёт перебор ордеров для поиска последнего закрытого по тейку. Переработайте эту функцию для ускорения. Они у Кима все универсальные - значит от-туда можно много лишнего поубирать. Опять-таки, всё зависит от логики вашего эксперта.
borilunad: Merci beaucoup ! J'ai pensé à un opérateur à utiliser, mais il n'y a pas de cas avec "ou" pour la même action.
Artyom, désolé de vous déranger ! Qu'est-ce que je peux encore supprimer de la fonction et comment ? Je ne suis intéressé que par la dernière position, fermée sur la prise !
J'ai commenté tout ce qui n'était pas nécessaire, mais ça continue à ramper et à traîner... :((
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 19.05.2008 |//| Описание : Возвращает флаг закрытия последней позиции по тейку. |//+----------------------------------------------------------------------------+//| Параметры: |//| sy - наименование инструмента ("" - любой символ, |//| NULL - текущий символ) |//| op - операция (-1 - любая позиция) |//| mn - MagicNumber (-1 - любой магик) |//+----------------------------------------------------------------------------+//bool isCloseLastPosByTake(string sy="", int op=-1, int mn=-1) {bool isCloseLastPosByTake() {//int op=-1) {//, int mn=0) {//string sy="", datetime t;
double ocp, otp;
int dg, i, j=-1, k=OrdersHistoryTotal();
// if (sy=="0") sy=Symbol();for (i=0; i<k; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
// if (OrderSymbol()==sy || sy=="") {if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
// if (op<0 || OrderType()==op) {
// if (mn<0 || OrderMagicNumber()==mn) {if (t<OrderCloseTime()) {
t=OrderCloseTime();
j=i;
}
// }
// }
}
// }
}
}
if (OrderSelect(j, SELECT_BY_POS, MODE_HISTORY)) {
// dg=MarketInfo(sy, MODE_DIGITS);// if (dg==0) if (StringFind(OrderSymbol(), "JPY")<0) dg=5; else dg=3;
ocp=NormalizeDouble(OrderClosePrice(), 5);//dg);
otp=NormalizeDouble(OrderTakeProfit(), 5);//dg);if (ocp==otp) return(True);
}
return(False);
}
J'ai supprimé mes ordres en attente dans le testeur, on peut le voir dans les résultats, mais le journal indique ERR_INVALID_TICKET 4108 Numéro de ticket invalide.
bugorok: Bonjour à tous ! Pouvez-vous me dire s'il est possible d'implémenter une fonction de taux dans mql4 ? Par exemple, si le prix change plus vite que 30 pips par seconde, alors il ne faut pas ouvrir une transaction (pour un EA)... Si vous le pouvez, dites-moi le code... merci.
Essayez de regarder le code de cet EA, il a quelque chose de similaire implémenté.
externintKolSec = 4; //количество секунд, между измерениями скорости ценыexternintPunkts = 28; //количество пунктов, которые цена проходит за это время//ЗАКРЫТИЕ ПОЗИЦИИ, ЕСЛИ ЦЕНА ДЕЛАЕТ РЕЗКИЙ РЫВОК ПРОТИВ НЕЕ//-------------------------------------------------------------
J'ai supprimé mes ordres en attente dans le testeur, on peut le voir dans les résultats, mais le journal indique ERR_INVALID_TICKET 4108 Numéro de ticket invalide.
Dois-je l'ignorer ou mieux gérer la situation ?
Vous feriez mieux de vous en occuper. Peut-être que votre conseiller expert a essayé de supprimer non seulement ceux qui sont en attente, mais aussi ceux qui sont déjà ouverts ? Avant de supprimer, insérer Print("Je veux supprimer une commande avec ticket=",OrderTicket()," OrderType=",OrderType()) ; Pour les OrderType en attente de 2 à 5. Pour les ouverts, de 0 à 1.https://docs.mql4.com/ru/constants/trading
Artyom, désolé de vous déranger ! Qu'est-ce que je peux encore supprimer de la fonction et comment ? Je ne suis intéressé que par la dernière position, fermée sur la prise !
J'ai commenté tout ce qui n'est pas nécessaire, mais ça continue à ramper et à traîner... :((
Essayez de sélectionner un ordre à la fin de la liste et vérifiez son prix de clôture pour voir s'il correspond à sa prise.
Si vous n'avez pas de compte, veuillez vous inscrire
Autorisez l'utilisation de cookies pour vous connecter au site Web MQL5.com.
Veuillez activer les paramètres nécessaires dans votre navigateur, sinon vous ne pourrez pas vous connecter.
Vous êtes connecté. L'authentification à deux facteurs a été désactivée. Configurez-la à nouveau et scannez un nouveau code QR, ou continuez avec l'authentification à deux facteurs désactivée.
В той функции идёт перебор ордеров для поиска последнего закрытого по тейку. Переработайте эту функцию для ускорения. Они у Кима все универсальные - значит от-туда можно много лишнего поубирать. Опять-таки, всё зависит от логики вашего эксперта.
borilunad:
Merci beaucoup ! J'ai pensé à un opérateur à utiliser, mais il n'y a pas de cas avec "ou" pour la même action.
Artyom, désolé de vous déranger ! Qu'est-ce que je peux encore supprimer de la fonction et comment ? Je ne suis intéressé que par la dernière position, fermée sur la prise !
J'ai commenté tout ce qui n'était pas nécessaire, mais ça continue à ramper et à traîner... :((
Bonsoir ! Joyeuses fêtes à tous !
J'ai supprimé mes ordres en attente dans le testeur, on peut le voir dans les résultats, mais le journal indique ERR_INVALID_TICKET 4108 Numéro de ticket invalide.
Dois-je l'ignorer ou mieux gérer la situation ?
Bonjour à tous ! Pouvez-vous me dire s'il est possible d'implémenter une fonction de taux dans mql4 ? Par exemple, si le prix change plus vite que 30 pips par seconde, alors il ne faut pas ouvrir une transaction (pour un EA)... Si vous le pouvez, dites-moi le code... merci.
Essayez de regarder le code de cet EA, il a quelque chose de similaire implémenté.
https://www.mql5.com/ru/code
Bonsoir ! Joyeuses fêtes à tous !
J'ai supprimé mes ordres en attente dans le testeur, on peut le voir dans les résultats, mais le journal indique ERR_INVALID_TICKET 4108 Numéro de ticket invalide.
Dois-je l'ignorer ou mieux gérer la situation ?
Vous feriez mieux de vous en occuper. Peut-être que votre conseiller expert a essayé de supprimer non seulement ceux qui sont en attente, mais aussi ceux qui sont déjà ouverts ? Avant de supprimer, insérer Print("Je veux supprimer une commande avec ticket=",OrderTicket()," OrderType=",OrderType()) ; Pour les OrderType en attente de 2 à 5. Pour les ouverts, de 0 à 1.https://docs.mql4.com/ru/constants/trading
Merci !!!!
Y a-t-il un bushwhacker/aucun bushwhacker dans les réservoirs ? :-)
Artyom, désolé de vous déranger ! Qu'est-ce que je peux encore supprimer de la fonction et comment ? Je ne suis intéressé que par la dernière position, fermée sur la prise !
J'ai commenté tout ce qui n'est pas nécessaire, mais ça continue à ramper et à traîner... :((