[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 - 2. - page 132
Comment se fait-il que lorsque je joins ce code, il ouvre un nombre incroyablement élevé de transactions ?
Ce n'est pas possible, parce que dans le code :
double history(){
int time = 0;double profit = 0;//обьявляем необходимые нам переменные куда мы положим интересующие нас характеристики ордераfor(int i = OrdersHistoryTotal();i>=0;i--){// Перебираем все закрытые ордераif(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)){//если ордер с таким номером (i) в списке закрытых ордеров есть ( не путать с тикетом)if(OrderSymbol() == Symbol()){//если выбранный ордер был открыт по нашей валютной пареif(time<OrderCloseTime()){//(сравниваем его с хранящимся в пероеменной time)
time=OrderCloseTime();//если время закрытия ордера больше - ложим его в переменную
profit=OrderProfit();//и заодно запоминаем прибыль ордера
}
}
}
}
//по окончании этой процедуры в наших переменных будут сидет наибольшее время закрытия, и его профит. Или по нулям если история чистая.//теперь мы можем выставлять условия в зависимости от результата процедурыif(profit == 0 &&time == 0){//действия если история чистая
}
if(profit >= 0){//действия если последний ордер был прибыльным, или нулевым
}
if(profit < 0 ){//действия если последний ордер был убыточным
}
return(0);
}
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.
Alors je suppose que c'est tout :
C'est bien ça ?
Maintenant je comprends.
Merci.
il n'y a pas de telle fonction intégrée, vous devez l'écrire vous-même, j'ai montré un exemple ici:https://www.mql5.com/ru/forum/131277/page113
merci
Il n'existe pas de fonction intégrée de ce type, vous devez l'écrire vous-même, j'ai montré un exemple ici: https://www.mql5.com/ru/forum/131277/page113.
Et comment prescrire que le conseiller expert n'a que cette seule condition pour ouvrir des transactions.
alsu:
Alors vous n'avez pas besoin de size-1, sinon la première exécution indexera 0-1 et la taille du tableau sera nulle.
Alors ça devrait être comme ça :
Alors vous n'avez pas besoin de size-1, sinon l'indexation sera de 0-1 et la taille du tableau sera de zéro à la première exécution.
Alors ça se passe comme ça :
Il y a une initialisation au début du programme int size=1 ;
il n'existe pas de fonction intégrée de ce type, vous devez l'écrire vous-même, j'ai montré un exemple ici: https://www.mql5.com/ru/forum/131277/page113.
Pourquoi lorsque je joins ce code, il ouvre un nombre incroyablement élevé de transactions ?
Il y a une initialisation au début du programme int size=1 ;
Comment se fait-il que lorsque je joins ce code, il ouvre un nombre incroyablement élevé de transactions ?
Ce n'est pas possible, parce que dans le code :
pas d'échanges https://book.mql4.com/ru/trading/ordersend
ça ne peut pas être le même car dans le code :
pas d'échanges https://book.mql4.com/ru/trading/ordersend
J'ai inséré
if(profit == 0 &&time == 0){//actions si l'historique est propre
OrderSend(Symbol(),OP_SELL,0.1,Bid,3,0,Bid-6*Point) ;
retour ;
}
if(profit >= 0){// action si la dernière commande était profitable, ou nulle
OrderSend(Symbol(),OP_BUY,0.1,Ask,3,Bid-12*Point,Bid+12*Point) ;
retour ;
}
if(profit < 0 ){//actions if(profit < 0 ){/actions si la dernière commande n'était pas rentable
OrderSend(Symbol(),OP_SELL,0.1,Bid,3,Bid+15*Point,Bid-15*Point) ;
retour ;
}
retour(0) ;
}