[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.
В той функции идёт перебор ордеров для поиска последнего закрытого по тейку. Переработайте эту функцию для ускорения. Они у Кима все универсальные - значит от-туда можно много лишнего поубирать. Опять-таки, всё зависит от логики вашего эксперта.
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... :((