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
voici ma fonction pour mt4 ecn, ndd, stp ...
Pas une seule erreur en un an
//+----------------------------------------------------------------------------+
//| Fonction d'ouverture de commande (BeerGod) |
//+----------------------------------------------------------------------------+
//| Paramètres : |
//| sy - nom de l'instrument ("" - symbole actuel) |
//| op - opération |
| //| ll - lot |
//| sl - niveau d'arrêt |
//| tp - take level |
//| mn - Numéro magique |
//+----------------------------------------------------------------------------+
bool OpenPosition(string sy, int op, double ll, double sl=0, double tp=0, int MagicNumber=0)
{
double MinLl = MarketInfo(Symbol(),MODE_MINLOT) ;
double MaxLl = MarketInfo(Symbol(),MODE_MAXLOT) ;
ll = NormalizeDouble(ll,2) ;
si (ll < MinLl) ll = MinLl ; sinon ll = ll ;
si (ll > MaxLl) ll = MaxLl ; sinon ll = ll ;
if (op == 0) // Ouverture d'un BUY
{
// Vérifier si des fonds libres sont disponibles
if((AccountFreeMarginCheck(sy,OP_BUY,ll)<=0) || (GetLastError()==134))
{
Print(sy," ",ll," Il est impossible d'ouvrir l'ordre Acheter, pas assez d'argent.") ;
retour(0) ;
}
RefreshRates() ;
// Ouvrir une commande
int ticketbuy = OrderSend(sy,OP_BUY,ll,MarketInfo(sy,MODE_ASK),Slippage,0,0,Comments,MagicNumber,0,BuyColor) ;
if(ticketbuy<0)
Print(sy," OpenPosition. OrderSend Buy fail #",GetLastError()) ;
sinon
Print(sy," OpenPosition. OrderSend Buy successfully") ;
// Sommeil (Pause) ;
// Modifier l'ordre (fixer le take profit et le stop loss)
si (sl !=0 || tp !=0)
{
//--- Les prix SL et TP calculés doivent être normalisés.
double BSLoss = NormalizeDouble(MarketInfo(sy,MODE_ASK)-sl*MarketInfo(sy,MODE_POINT),(int)MarketInfo(sy,MODE_DIGITS))
double BTProfit = NormalizeDouble(MarketInfo(sy,MODE_ASK)+tp*MarketInfo(sy,MODE_POINT),(int)MarketInfo(sy,MODE_DIGITS)) ;
//--- Si la valeur d'entrée est zéro, remplacer le prix de modification par zéro.
si (sl == 0) BSLoss = 0 ;
si (tp == 0) BTProfit = 0 ;
bool resbuy = OrderModify (ticketbuy,OrderOpenPrice(),BSLoss,BTProfit,0,StopColor) ;
si(!resbuy)
Print(sy," OpenPosition. OrderModify Buy fail #",GetLastError()) ;
sinon
Print(sy," OpenPosition. OrderModify Buy successfully") ;
}
}
si (op == 1) // Ouvrir la vente.
{
// Vérifier la disponibilité des fonds libres
if((AccountFreeMarginCheck(sy,OP_SELL,ll)<=0) || (GetLastError()==134))
{
Print(sy," ",ll," Il est impossible d'ouvrir l'ordre Vendre, pas assez d'argent.") ;
retour(0) ;
}
RefreshRates() ;
// Ouvrir une commande
int ticketsell = OrderSend(sy,OP_SELL,ll,MarketInfo(sy,MODE_BID),Slippage,0,0,Comments,MagicNumber,0,SellColor) ;
si(ticketsell<0)
Print(sy," OpenPosition. OrderSend Sell fail #",GetLastError()) ;
sinon
Print(sy," OpenPosition. OrderSend Sell successfully") ;
// Sommeil (Pause) ;
// Modifier l'ordre (fixer le take profit et le stop loss)
si (sl !=0 || tp !=0)
{
//--- Les prix SL et TP calculés doivent être normalisés.
double SSLoss = NormalizeDouble(MarketInfo(sy,MODE_BID)+sl*MarketInfo(sy,MODE_POINT),(int)MarketInfo(sy,MODE_DIGITS))
double STProfit = NormalizeDouble(MarketInfo(sy,MODE_BID)-tp*MarketInfo(sy,MODE_POINT),(int)MarketInfo(sy,MODE_DIGITS)) ;
//--- Si la valeur d'entrée est zéro, remplacer le prix de modification par zéro.
si (sl == 0) SSLoss = 0 ;
si (tp == 0) STProfit = 0 ;
bool ressell = OrderModify (ticketsell,OrderOpenPrice(),SSLoss,STProfit,0,StopColor) ;
si(!ressell)
Print(sy," OpenPosition. OrderModify Sell fail #",GetLastError()) ;
sinon
Print(sy," OpenPosition. OrderModify Sell successfully") ;
}
}
retour(Vrai) ;
}
//Fin
P.S. Modérateurs, le code ne peut pas être inséré via le bouton.
Je donne des leçons gratuites (sans frais) sur l'insertion de code sur Skype :)
Je donne des leçons gratuites (sans frais) en ligne sur l'insertion de code sur Skype :)
Je donne des leçons gratuites (sans frais) en ligne sur l'insertion de code sur Skype :)
Merci !
Fait, si vous avez des questions sur le code écrire, également disponible en personne ou sur Skype
prêt, si vous avez des questions sur le code, envoyez un e-mail ou Skype
L'alerte est lancée avec le message suivant : pas de prix. Nous attendons un nouveau tic...
J'avais un compte de démonstration qui fonctionnait bien et j'ai ouvert une transaction du premier coup. J'ai besoin de plus de détails.