[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 287
En général, il est temps pour les développeurs de MT de créer une section dans la documentation et d'expliquer en détail le problème et la nécessité d'utiliser la normalisation.
Il n'y a qu'un modeste exemple sans emphase dans la documentation pour cette situation :
int i = 1 / 2.0; // выражение приводится к типу double, затем приводится к целевому типу int, результат: 0
Lorsque l'ordre 3 (Vente) est fermé, l'ordre 1 (Achat) sémaphorise toujours qu'il a été fermé sur le Stop Loss et donc 2 ordres en ligne sont placés, parce que Total=1.
c'est à dire que je cherche une solution à ce problème, c'est à dire quoi remplacer total 1 pour se débarrasser d'un tel effet
Pouvez-vous me dire si le script peut ouvrir des ordres non seulement dans la fenêtre du graphique auquel il est attaché, mais aussi sur d'autres paires de devises, s'il est correctement prescrit sur quelles autres paires de devises vous devez ouvrir ?
CreAndr: Pouvez-vous me dire si le script peut ouvrir des ordres non seulement dans la fenêtre du graphique auquel il est attaché, mais aussi sur d'autres paires de devises, s'il est correctement prescrit sur quelles autres paires de devises vous devez ouvrir ?
Non, ce que vous avez mis en évidence sera rendu par l'outil actuel. Les offres, demandes, chiffres, etc. doivent être demandés à MarketInfo en spécifiant explicitement l'outil.
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.
2011.03.30 08:40:21 USDCAD,M1 : 3 4 4.00000000 ask=0.9729 bid=0.9725
cela fonctionne comme suit
ça marche comme ça !
Merci !
En général, il est temps pour les développeurs de MT de créer une section dans la documentation et d'expliquer en détail le problème et la nécessité d'utiliser la normalisation.
Il n'y a qu'un modeste exemple sans emphase dans la documentation pour cette situation :
Section "Approche par type" https://docs.mql4.com/ru/basis/types/casting
A FoxUA.
Lorsque l'ordre 3 (Vente) est fermé, l'ordre 1 (Achat) sémaphorise toujours qu'il a été fermé sur le Stop Loss et donc 2 ordres en ligne sont placés, parce que Total=1.
c'est à dire que je cherche une solution à ce problème, c'est à dire quoi remplacer total 1 pour se débarrasser d'un tel effet
Pouvez-vous me dire si le script peut ouvrir des ordres non seulement dans la fenêtre du graphique auquel il est attaché, mais aussi sur d'autres paires de devises, s'il est correctement prescrit sur quelles autres paires de devises vous devez ouvrir ?
peut-être
peut-être
//--------------------------------------------------------------------
extern double TakeProfit = 1000;
extern double Lots = 0.01;
extern double StopLoss = 500.0;
extern int MagNum = 1974;
int slip = 100;
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int start()
{
//::::Открытие и выставление ордеров
OrderSend("EURUSD",OP_BUY,Lots,NormalizeDouble(Ask,Digits),slip,NormalizeDouble(Bid - StopLoss*Point,Digits),NormalizeDouble(Ask + TakeProfit * Point,Digits),"CleverEA",MagNum,0,Green);
OrderSend("GBPUSD",OP_BUY,Lots,NormalizeDouble(Ask,Digits),slip,NormalizeDouble(Bid - StopLoss*Point,Digits),NormalizeDouble(Ask + TakeProfit * Point,Digits),"CleverEA",MagNum,0,Green);
OrderSend("USDJPY",OP_SELL,Lots,NormalizeDouble(Bid,Digits),slip,NormalizeDouble(Ask + StopLoss*Point,Digits),NormalizeDouble(Bid - TakeProfit * Point,Digits),"CleverEA",MagNum,0,Red);
OrderSend("USDCHF",OP_SELL,Lots,NormalizeDouble(Bid,Digits),slip,NormalizeDouble(Ask + StopLoss*Point,Digits),NormalizeDouble(Bid - TakeProfit * Point,Digits),"CleverEA",MagNum,0,Red);
return (0);
}
mais cette option, va-t-elle fonctionner ou non ?
OrderSend("EURUSD",OP_BUY,Lots,NormalizeDouble(Ask,Digits),slip,NormalizeDouble(Bid - StopLoss*Point,Digits),NormalizeDouble(Ask + TakeProfit * Point,Digits)," CleverEA",MagNum,0,Green);
mais cette option, va-t-elle fonctionner ou non ?
Non, ce que vous avez mis en évidence sera rendu par l'outil actuel. Les offres, demandes, chiffres, etc. doivent être demandés à MarketInfo en spécifiant explicitement l'outil.
//--------------------------------------------------------------------
extern double TakeProfit = 1000;
extern double Lots = 0.01;
extern double StopLoss = 500.0;
extern int MagNum = 1974;
int slip = 100;
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int start()
{
//::::Открытие и выставление ордеров
OrderSend("EURUSD",OP_BUY,Lots,NormalizeDouble(Ask,Digits),slip,NormalizeDouble(Bid - StopLoss*Point,Digits),NormalizeDouble(Ask + TakeProfit * Point,Digits),"CleverEA",MagNum,0,Green);
OrderSend("GBPUSD",OP_BUY,Lots,NormalizeDouble(Ask,Digits),slip,NormalizeDouble(Bid - StopLoss*Point,Digits),NormalizeDouble(Ask + TakeProfit * Point,Digits),"CleverEA",MagNum,0,Green);
OrderSend("USDJPY",OP_SELL,Lots,NormalizeDouble(Bid,Digits),slip,NormalizeDouble(Ask + StopLoss*Point,Digits),NormalizeDouble(Bid - TakeProfit * Point,Digits),"CleverEA",MagNum,0,Red);
OrderSend("USDCHF",OP_SELL,Lots,NormalizeDouble(Bid,Digits),slip,NormalizeDouble(Ask + StopLoss*Point,Digits),NormalizeDouble(Bid - TakeProfit * Point,Digits),"CleverEA",MagNum,0,Red);
return (0);
}
Mais cette option fonctionnera-t-elle ou non ?
Il ne le fera pas. Vous devez utiliser la fonction MarketInfo https://docs.mql4.com/ru/common/MarketInfo.
il y a des exemples de votre problème sur la page