![MQL5 - Langage des stratégies de trading intégré au terminal client MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
Bonjour, j'ai besoin de l'aide d'un expert en code de script... Je veux coder 2 séries d'ordres en attente comme ci-dessous...
ensemble 1
ordre en attente.
GBPUSD (achat stop) ,
EURUSD (achat stop),
AUDUSD (achat stop),
NZDUSD (achat stop),
USDJPY (stop à la vente),
USDCAD (stop à la vente),
USDCHF (stop de vente)
définir 2
ordre en attente.
GBPUSD ( sell stop ) ,
EURUSD ( sell stop ),
AUDUSD (stop de vente),
NZDUSD (stop à la vente),
USDJPY (achat stop),
USDCAD (achat stop),
USDCHF (achat stop)
Merci.
Voici le code du stop suiveur et le code d'achat, je pense que le problème peut se trouver ici, mais je n'en suis pas sûr.......
//Stop suiveur
if(UseTrailingStop && TrailingStop > 0) {
if((OrderOpenPrice() - Ask) > (Point * (TrailingStop+0.5))) {
if((OrderStopLoss() > (Ask + Point * (TrailingStop+0.5))) || (OrderStopLoss() == 0)) {
OrderModify(OrderTicket(), OrderOpenPrice(), Ask + Point * TrailingStop, OrderTakeProfit(), 0, DarkOrange) ;
if (!EachTickMode) BarCount = Bars ;
continuer ;
//Acheter
if (Order == SIGNAL_BUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
if(DecideToOpenTrade(OP_BUY) && TradeSlotsAvailable()) {
if (UseStopLoss) StopLossLevel = Ask - StopLoss * Point ; sinon StopLossLevel = 0.0 ;
if (UseTakeProfit) TakeProfitLevel = Ask + TakeProfit * Point ; sinon TakeProfitLevel = 0.0 ;
Ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, StopLossLevel, TakeProfitLevel, "Buy(#" + MagicNumber + ")", MagicNumber, 0, DodgerBlue) ;
if(Ticket > 0) {
if (OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES)) {
Print("Ordre BUY ouvert : ", OrderOpenPrice()) ;
if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Open Buy") ;
} else {
Print("Erreur lors de l'ouverture de l'ordre BUY : ", GetLastError()) ;
}
}
if (EachTickMode) TickCheck = True ;
if (!EachTickMode) BarCount = Bars ;
retour(0) ;
EA n'ouvre pas les transactions..... ? ?
J'ai un problème avec mon EA. Il ouvre des transactions sans problème lorsque je n'utilise qu'un stop suiveur, mais lorsque j'essaie d'utiliser un stop suiveur et un stoploss ensemble, il n'ouvre pas de transactions. Il fonctionne bien de cette façon sur les backtests, mais n'ouvre pas de transaction réelle sur le graphique. J'essaie d'utiliser un stop suiveur de 5 pips et un stoploss de 200 pips. Avez-vous des idées ? Je peux poster le codage du trade ouvert si nécessaire.
Merci !
Veuillez consulter l'onglet Experts pour les codes d'erreur
Je l'ai fait, il n'y a pas d'erreur. Il n'y a rien quand il est censé ouvrir une transaction lorsque j'ai un stop suiveur et un stoploss activés. Quand il s'agit seulement du trailing stop, toutes les transactions sont affichées dans l'onglet comme d'habitude.
temps en sec ou ms ?
Bonjour, je cherchais une chaîne de temps spécifique pour mt4 et j'ai trouvé ceci :
Ma question maintenant : ces 300, sont ils 300 secondes ou millisecondes ou quoi ?
Merci à tous
Les variables de date dans MT4 sont stockées en interne comme des valeurs entières longues, ou des valeurs entières de 4 octets (2^32), et elles représentent le nombre de secondes écoulées depuis l'époque.
Pour répondre à votre question, c'est 300 secondes.
Ce code fera-t-il ce dont j'ai besoin ?
Ce code me donnera-t-il le RSI en plus du CCI dont j'ai besoin pour ma stratégie ?
J'ai besoin que l'EA lise le RSI en utilisant les "données de l'indicateur précédent" du CCI.
double Buy1_1 = iCCI(NULL, 0, 10, PRICE_OPEN, Current + 0) ;
double Buy2_1 = iRSI(NULL, 0, 3, 7, Current + 0) ;
Retourner le haut/bas d'une plage de temps donnée ?
Bonjour à tous, je suis là depuis longtemps, mais c'est la première fois que je poste.
Je m'excuse si je poste ceci dans la mauvaise section..... J'essaie de déterminer un moyen de renvoyer le haut/bas d'une plage de temps spécifiée.
Je suis à l'aise avec la méthode suivante....
Mais ce que j'essaie de faire, c'est de spécifier une plage allant de, disons, 23h00 du jour précédent à 06h00 du jour courant, et de garder cette plage comme variable jusqu'à ce que 23h00 revienne.
Toute indication à ce sujet serait plus qu'utile. Merci d'avance.
Formatage des chaînes MQL4
J'ai essayé d'utiliser '\x20' et '\xA0' pour fournir des espaces à gauche afin de justifier les chaînes à droite. L'espacement qu'ils fournissent est inadéquat. Quelqu'un connaît-il une meilleure façon de procéder dans MQL4 ?