[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 163
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 à tous...
Pourriez-vous me dire comment construire le chemin vers les fichiers d'historique de MetaTrader 4 ? Comme "c:\\n-gram files\N-metatrader 4\N- history\N-alpari-classic\N" ?
Merci beaucoup, Sergeev, je crois que j'ai trouvé...
Print("Terminal path: ", TerminalPath() + "\\history\\" + AccountServer() + "\\");
cette ligne sort le chemin correct même si l'éditeur se trompe dans les couleurs... Vous devriez probablement écrire le code dans le bloc-notes. Je plaisante.
Bonsoir à tous !
Dans le tutoriel de Sergey Kovalev, j'ai trouvé un expert - le trailing stop. Je l'ai copié dans MetaEditor, je l'ai compilé, mais le programme ne fonctionne pas. Veuillez me dire quelle en est la raison. Peut-être que je fais quelque chose de mal.
est-il écrit en mql ?)
donnez-moi juste le code.
//-------------------------------------------------------------------- // modifystoploss.mq4 // Conçu pour être utilisé comme exemple dans le tutoriel MQL4. //-------------------------------------------------------------------- extern int Tral_Stop=10 ; // Poursuite de la distance //--------------------------------------------------------------- 1 -- int start() // Fonction spéciale start { string Symb=Symbol() ; // Fin. tool //--------------------------------------------------------------- 2 -- for(int i=1 ; i<=OrdersTotal() ; i++) // Boucle d'ordre { if (OrderSelect(i-1,SELECT_BY_POS)==true) // S'il y a un suivant { // Analyse de l'ordre : int Tip=OrderType() ; // Type d'ordre if(OrderSymbol() !=Symb||Tip>1)continue;// Pas notre ordre double SL=OrderStopLoss() ; // SL de l'ordre sélectionné //------------------------------------------------------ 3 -- while(true) // Boucle de modification { double TS=Tral_Stop ; // Valeur initiale int Min_Dist=MarketInfo(Symb,MODE_STOPLEVEL);// Dist. minimale if (TS<Min_Dist) // Si la valeur de l'ordre est inférieure à la valeur autorisée, l'ordre sera exécuté. TS=Min_Dist ; // Nouvelle valeur de TS //--------------------------------------------------- 4 -- bool Modify=false ; // Non affecté à la modification switch(Tip) // Par type d'ordre { case 0 : // Ordre d'achat si (NormalizeDouble(SL,Digits)< // Si inférieur souhaité. NormalizeDouble(Bid-TS*Point,Digits)) { SL=Bid-TS*Point ; // puis le modifier string Text="Buy " ; // texte pour Buy Modify=true ; // assigné pour modifier } break ; // exit if case 1 : // Ordre de vente si (NormalizeDouble(SL,Digits)> // si demandé ci-dessus. NormalizeDouble(Ask+TS*Point,Digits)|| NormalizeDouble(SL,Digits)==0)//or égal à zéro { SL=Ask+TS*Point ; // puis le modifier Text="Sell " ; // Modify=true ; // assigné à modifier } } // Fin du commutateur if (Modify==false) // si non modifié break ; // exit while //--------------------------------------------------- 5 -- double TP =OrderTakeProfit() ; // TP de l'ordre sélectionné. double Price =OrderOpenPrice() ; // Prix de l'ordre sélectionné. int Ticket=OrderTicket() ; // Numéro de l'ordre sélectionné. Alert ("Modify ",Text,Ticket,". Waiting for reply...") ; bool Ans=OrderModify(Ticket,Price,SL,TP,0);//Modifiez-le ! //--------------------------------------------------- 6 -- if (Ans==true) // Cela a marché :) { Alert ("Order ",Text,Ticket," modified :)") ; break ; // De la boucle modifier. } //--------------------------------------------------- 7 -- int Error=GetLastError() ; // Il a échoué :( switch(Error) // Surmonter les erreurs { case 130:Alert("Mauvais arrêts. Essayez à nouveau.") ; RefreshRates() ; // Rafraîchir les données continue ; // Sur le prochain itération cas 136:Alert("Pas de prix. Attente d'un nouveau tick...") ; while(RefreshRates()==false) // Jusqu'au nouveau tick Sleep(1) ; // Retard dans la boucle continue ; // Itération suivante cas 146:Alert("Le sous-système de négociation est occupé.Essayez à nouveau") ; Sleep(500) ; // Solution simple RefreshRates() ; // Rafraîchir les données continue ; // Itération suivante // Erreurs critiques cas 2 : Alert("Erreur générale.") ; break ; // Interrupteur de sortie cas 5 : Alert("Ancienne version du terminal client.") ; break ; // Interrupteur de sortie cas 64 : Alert("Compte bloqué.") ; break ; // Exit switch case 133:Alert("Trading prohibited") ; break ; // Exit switch default : Alert("Error ",Error);//Error } break ; // End of modify loop } // End of modify loop //------------------------------------------------------ 8 -- } // End of order analysis //--------------------------------------------------------------- 9 -- return ; // Exit start() } //-------------------------------------------------------------- 10 --Bonsoir à tous !
Dans le tutoriel de Sergey Kovalev, j'ai trouvé un expert - le trailing stop. Je l'ai copié dans MetaEditor, je l'ai compilé, mais le programme ne fonctionne pas. Veuillez me dire quelle en est la raison. Peut-être que je fais quelque chose de mal.
Utilisez ça :
Dans les variables d'utilisateur, nous écrivons :
Dans EA Start, écrivez :
// ----------------------------- Тралим ордера ------------------------------------ TrailingRyn_b(TrailingStop,TrailingStep,Proskalz,MAGIC,WaitProfit,false);Après avoir commencé à écrire dans les sous-programmes personnalisés :
Les fonctions comme ModifError() sont mes fonctions personnalisées - elles affichent simplement un message d'erreur. Rédigez plutôt vos propres messages.
https://docs.mql4.com/ru/indicators/iBands