Friday, February 3, 2017

Forex Erreur 130

OrderSend Erreur 130 Erreur d'ouverture Long Order: 130 Voici le code, qui a été modifié à partir d'un conseiller expert qui peut ouvrir des métiers sans erreur. Donc je ne sais pas pourquoi Im recevant cette erreur. If (BarCloseltBollingerLarge ampamp trendlt0) Le prix de clôture est inférieur à la ligne supérieure de Bollinger si (trendlt0) Tendance est vers le bas ticketOrderSend (Symbol (), OPBUY, Lots, Ask, 3, Ask-TrailingStop, 0, quotCounter Trend: Long Order Placedquot, 16384 , 0, Vert) Ouvrir Ordre long si (ticketgt0) si (OrderSelect (ticket, SELECTBYTICKET, MODETRADES)) print (quotBUY ordre ouvert. Quot, OrderOpenPrice () (0) return (0) Vérifiez que votre valeur d'arrêt est correcte, et si toujours un problème, Normalized. Print (quot ---------------------------------- stop value est quot, Ask-TrailingStop) ticketOrderSend (Symbol ( ), OPBUY, Lots, Ask, 3, Ask-TrailingStop, 0, quotCounter Trend: Long Order Placedquot, 16384,0, Green) Open Long order Votre Ask pourrait être dire 1.340 sur l'EURUSD par exemple. Quelle est la valeur de votre TrailingStop. Il doit être quelque chose comme 0.0010 ou 0.0020 ou 0.0011 ou 0.133 ou etecetera. Si vous voulez que TrailingStop soit un nombre entier qu'un utilisateur entre, par exemple 10 par exemple, alors vous devez le faire 0.0010 d'abord afin de soustraire 0.0001s et non des entiers tels que 10, 20, Il de demander. Vous pouvez le faire de la façon suivante: TrailingStop Point. Point sur l'EURUSD 0.0001. Vous voudrez peut-être changer votre code à la suivante: Ask - (TrailingStop Point), qui est le même que Ask-TrailingStop Point. Ci-dessous le code d'un de mes scripts, donc vous pouvez voir comment on peut le faire. Ouvrir Commande Achat J'espère que cela fonctionne. Fixing Error 130 - MT4 Ce ne sont pas des solutions au problème. Je comprends quel est le problème, je ne sais pas comment le code pour le résoudre. Je reçois l'erreur 130 en raison du fait que mon prix ouvert sur mon arrêt d'achat est de se rapprocher de mon prix actuel. Si le prix continue d'augmenter ne sera jamais comblé. Qu'est-ce que je me demande s'il y a un moyen d'augmenter le prix ouvert par montant X quand cela se produit jusqu'à ce qu'il soit rempli Les deux liens et des centaines de ces 62000 liens contiennent la solution, mais vous me dites qu'ils ne. Comment se fait-il qu'il vous dise la solution. Il est juste devant vos yeux. Le problème semble être que vous avez besoin de quelqu'un pour faire le travail pour vous. Bonne chance, mais ce n'est pas la façon d'apprendre à coder. Un conseil pour vous: Pour éviter l'erreur 130 pour votre commande buystop, procédez comme suit: a) obtenez le Stoplevel de votre courtier b) comparez le prix de marché (Ask) Stoplevel à votre BuyStop-price calculé. Si Stoplevel Buffer-x, puis le OrderSend fonctionnera sans obtenir d'erreur 130 Buffer-x doit être défini par vous-même et lorsqu'il est appliqué, il doit être en points, pas Dans Pips. Inscrit avril 2016 Statut: Junior Member 1 Message Bonjour J'ai cette ea codé ci-dessous s'il vous plaît n'importe qui m'aider à propos de cette erreur bruyante 130 ltinvalid stopsgt ---------------------- -------------------------------------------- soubra2003v2.0.mq4 Copyright 2016, soubra2003 mql5enuserssoubra2003 ---------------------------------------------- -------------------- propriété copyright quotCopyright 2016, soubra2003v2.0quot lien de propriété quotonesoubraquot propriété version quot2.00quot description de la propriété quot - Cette EA commercera comme ci-dessous description: quot property Description quot 1) Condition d'achat: L'ordre en attente sera fixé comme prix plus élevé de prev. Bougie Distance par user. quot description de la propriété quot 2) Condition de vente: L'ordre en suspens sera fixé comme prix inférieur de prev. Bougie - Distance par user. quot propriété description quot 3) Mises à jour des ordres buysell en attente sera habituellement avec chaque nouvelle bougie open. quot description de la propriété quot 4) Quoi de neuf: Trailing Stop, Break Even amp Gestion de l'argent. quot propriété stricte inclure ltstdlib Chaîne d'entrée. mqhgt sep3 quot --------------------- Paramètres de Mgmt d'argent -------------------- - quot Options MM gtgtgtgtgtgtgtgt input bool MM false Entrée gestion de fonds double CalcAmount 100 Montant pour AUTO Entrée de lot double CalcLot 0.01 Auto Taille du lot chaque Quantité entrée double LotSize 0.10 Taille du lot (fixe) chaîne d'entrée sep1 quot --------- ------------ Paramètres de négociation --------------------- Quot Options de négociation gtgtgtgtgtgtgtgt Entrée double orderdistance 10 Distance (Après Prev. Baisse Précédente Bas) extern double buystoploss 50 Acheter Stop Loss extern double sellstoploss 50 Vendre Stop Loss extern double buytakeprofit 100 Acheter Take Profit extern double selltakeprofit 100 Vendre Take Profit entrée int Slippage 5 chaîne d'entrée sep2 quot --------- ------------ Break Even ampli T. Stop --------------------- quot Break Even ampli T. Arrêt gtgtgtgtgtgtgtgt input bool BreakEven True Break Even Entrée d'état double BreakEvenStart 5.0 Break Even Start entrée double BreakEvenValue 1.0 Break Even Valeur entrée bool TrailingStop true Trailing Stop Entrée d'état double TrailingStopVal 10.0 Trailing Arrêt valeur chaîne d'entrée sep4 quot -------------- ------- Un autre Paramètres --------------------- quot Une autre option gtgtgtgtgtgtgtgt input string tradescommentquotsoubra2003Version 2.0quot Métiers Commentaire couleur d'entrée buyarrowcolor clrBlue Acheter Arrow Couleur couleur d'entrée sellarrowcolor clrRed Vendre Flèche couleur couleur d'entrée deletearrowcolor clrYellow Supprimer en attente Order Arrow couleur entrée couleur modifyarrowcolor clrWhite Modifié Order Arrow couleur int --- slippage5 int buymagicnumber821454145 int sellmagicnumber192545451 à double tradepointPoint deux prevcdlhigh doubles prevcdllow doubles buyprice doubles sellprice int buyticketno int sellticketno lots double double StopSprdLevel MarketInfo (Symbole (), MODESTOPLEVEL) MarketInfo (Symbole (), MODESPREAD) à double BrokerMinLot MarketInfo (symbole (), MODEMINLOT) à double BrokerMaxLot MarketInfo (symbole (), MODEMAXLOT) prevcdlhigh High1 prevcdllow Inf1 buypriceprevcdlhighorderdistancetradepoint sellpriceprevcdllow-orderdistancetradepoint si (buystoplossgt0) buystoplossbuyprice-buystoplosstradepoint d'autre buystoplossNULL si (buytakeprofitgt0) buytakeprofitbuypricebuytakeprofittradepoint autre buytakeprofitNULL si (sellstoplossgt0) sellstoplosssellpricesellstoplosstradepoint autre sellstoplossNULL si (selltakeprofitgt0) selltakeprofitsellprice-selltakeprofittradepoint autre selltakeprofitNULL if (NewBar ()) closeall () closeall () if (buycounter ()) RefreshRates () int tktbuy OrderSend ( (Tktbuylt0) Imprimer (quotOrder a échoué avec l'erreur: quot, ErrorDescription (GetLastError ())) else Imprimer (quotOrdre placé avec succèsquot) ) Si (sellcounter ()) RefreshRates () int tktsell OrderSend (Symbole (), OPSELLSTOP, Lots, sellprice, slippage, sellstoploss, selltakeprofit, tradescomment, sellmagicnumber, NULL, sellarrowcolor) if (tktselllt0) Imprimer (quotOrder failed with error: quot , ErrorDescription (GetLastError ())) else Imprimer (quotOrdre placé avec succèsquot) Commentaire (quot Précédent Candle High quot, NormalizeDouble (prevcdlhigh, Digits), quot Ordre d'achat en attente Devrait être quot, NormalizeDouble (quotnquot, Bas quot, NormalizeDouble (prevcdllow, Digits), quot Pending Sell Order Devrait être quot, NormalizeDouble (sellprice, Digits), quotnquot, quot ---------------------- -------------------------- quot, quotnquot, quotnquot, quotnquot, Quot, Quotnquot, quot, Quotnquot, quotnquot, quotnquot, quot, quotnquot, quot, quotnot, quotnquot ------------------------------------ Quotnquot, quot, quotnquot, quot, Broker, Stop, quot, AccountStopoutLevel (), quotnquot, quot Broker Stop Niveau quot, StopSprdLevel, quotnquot, quot Broker Max Lot permis quot, BrokerMaxLot, quotnquot, quot Courtier Min Lot admis quot, BrokerMinLot) --- BuyTrailingStop () for (int cnt10 cnt1ltOrdersTotal () CNT1) int ticketselectOrderSelect (CNT1, SELECTBYPOS) if (OrderStopLoss () NULL ampamp OrderType () ltOPSELL ampamp OrderSymbol () Symbole () ampamp OrderMagicNumber () buymagicnumber) if (OrderType () OPBUY) if (TrailingStop ampamp TrailingStopValgt0) RefreshRates () bool ticketmodify OrderModify (OrderTicket (), OrderOpenPrice (), OrderStopLoss () (TrailingStopValtradepoint), OrderTakeProfit (), 0, modifyarrowcolor) si (ticketmodify ) Print (quotTStop: L'ordre ne peut pas être modifié. quot, ErrorDescription (GetLastError ())) else Imprimer (quotTrailing arrêt Done. quot) SellTrailingStop () for (int cnt20 cnt2ltOrdersTotal () cnt2) int ticketselectOrderSelect (cnt2, SELECTBYPOS) if (OrderStopLoss () NULL ampamp OrderType () ltOPSELL ampamp OrderSymbol () OrderModify (OrderTicket (), OrderOpenPrice (), OrderStopLoss () - (TrailingStopValtradepoint), OrderTakeProfit () () OrderMagicNumber () sellMagicNumber () sellMagicnumber) if (OrderType () OPSELL) if (TrailingStop ampamp TrailingStopValgt0) , 0, modifyarrowcolor) if (ticketmodify) Print (quotTStop: Ordre ne peut pas être modifié, quot, ErrorDescription (GetLastError ())) else Imprimer (quotTrailing Stop Done. quot) BuyBreakEven () for (int cnt3 0 cnt3 lt OrdersTotal ) Int ticketSelect OrderSelect (cnt3, SELECTBYPOS) if (OrderType () lt OPSELL ampamp OrderSymbol () symbole () ampamp OrderMagicNumber () buymagicnumber) if (OrderType () OPBUY) if (BreakEvenStart gt 0 ampamp BreakEven) RefreshRates () int ticketmodify OrderModify (OrderTollet (), OrderOpenPrice (), OrderOpenPrice () (BreakEvenValuetradepoint), OrderTakeProfit (), 0, modifyarrowcolor) if (ticketmodify) Print (quotBreak Even: L'ordre ne peut pas être modifié, quot, ErrorDescription (GetLastError () (Cnt4, SELECTBYPOS) if (OrderType () lt OPSELL ampamp OrderSymbol () Symbole () ampamp OrderMagicNumber () sellmagicnumber) If (OrderType () OPSELL) if (BreakEvenStart gt 0 ampamp BreakEven) RefreshRates () int ticketmodify OrderModify (OrderTicket (), OrderOpenPrice (), OrderOpenPrice () - (BreakEvenValue tradepoint), OrderTakeProfit (), 0, ) Print (quotBreak Even: L'ordre ne peut pas être modifié, quot, ErrorDescription (GetLastError ())) else Print (quotBreak Even Placed Successfuly. quot) -------------------- ---------------------------------------------- Expert Fonction de rapprochement - -------------------------------------------------- --------------- void closeall () pour (int i0 iltOrdersTotal () i) int selectOrderSelect (i, SELECTBYPOS, MODETRADES) si (OrderSymbol () Symbol ()) if (OrderType ) OPBUYSTOP OrderType () OPSELLSTOP) if (OrderMagicNumber () buymagicnumber OrderMagicNumber () sellmagicnumber) bool deleteOrderDelete (OrderTicket (), deletearrowcolor) if (delete) Print (quotOrder n'a pas pu être supprimé, Err Desc: quot, ErrorDescription (GetLastError) ) Autrement Imprimer (quotOrder a été Removed. quot) Comment battre l'erreur Ordersend Error 130 dans MetaTrader 4 Par la demande populaire, des stratégies éprouvées sur la façon de battre chaque pire cauchemar algorithmique 8217s 8211 Erreur 130 D'où vient cette erreur Que signifie-t-il pour votre Expert Advisor Comment pouvez-vous trouver la partie de votre code qui est à l'origine de l'erreur Nous abordons tout cela et more8230 Pour commencer, une définition formelle de notre ami, MQL4 Documentation: That8217s droit C'est tout ce que vous obtenez de MetaQuotes. Et le reste 8230 Go figure L'erreur de commande 130 est brièvement mentionnée dans d'autres sections de la documentation. Cependant, il n'ya pas de guide complet de ce que 8220Invalid Stops8221 signifie réellement et comment faire face à ce problème, peut-être, le plus commun dans la programmation Forex. Mais pas un soucis pourquoi j'ai écrit cet article. Let8217s passer à travers ce ensemble Le tueur silencieux So8230 vous avez lancé votre conseiller expert and8230 rien ne se passe. Pas de commandes BUY, pas de commandes SELL, pas d'ordres en attente, pas même de messages d'erreur dans le logs8230. Juste le silence. Vous décidez d'attendre quelques heures jours semaines, et rien ne change vraiment 8211 les cartes vont de haut en bas, mais vous don8217t voir tout profit. Cela peut aller sur forever8230 La vraie raison est simple 8211 you8217re effectivement obtenir ERRINVALIDSTOPS (qui est le terme technique correct pour le problème), mais vous ne pouvez le voir. That8217s parce que 130 est un tueur silencieux. Un assassin à froid de votre cerveau et un calme intérieur Il n'y a aucun moyen de récupérer cette erreur par le biais des journaux des experts-conseils ou même des journaux terminaux. La seule façon de l'attraper est d'ajouter les mécanismes de sécurité appropriés dans votre code. Voici un exemple que vous pouvez adapter à votre code: Ce que nous faisons ici, c'est prendre le numéro du ticket et que OrderSend () retourne et vérifier s'il est inférieur à zéro. Si oui, alors c'est un signal de MetaTrader 4 nous disant qu'il y avait un problème avec la demande. Le code d'erreur est ensuite imprimé sur l'écran en utilisant Alert () et la fonction GetLastError () intégrée. Ce code donnera une fenêtre pop-up comme dans l'image ci-dessus en haut de cet article. Remarque: vous pouvez utiliser Print () au lieu d'Alert () pour rediriger directement le message vers le journal EA8217s au lieu de l'afficher à l'écran. Le noyau de l'erreur de commande 130 Les arrêts non valides sont le vrai nom du coupable dont nous traitons aujourd'hui. Alors qu'est-ce que les arrêts invalides dans MetaTrader 4 signifie réellement Pour un ordre de marché (ACHETER ou VENDRE) des arrêts invalides signifie que le StopLoss andor TakeProfit que vous avez demandé n'étaient pas possible de définir pour votre commande. Par conséquent, étant donné qu'une demande ne peut être exécutée que partiellement, l'ordre n'a pas été exécuté du tout Pour une commande en attente (ACHETER STOP, ACHETER LIMIT, VEND STOP ou LIMITE DE VENTE), des arrêts invalides signifient que (1) (Comme ci-dessus) OU (2) l'émission était avec le prix d'entrée que vous avez spécifié pour la commande elle-même Comme nous pouvons le voir, l'issue est toujours avec un (ou beaucoup) des prix que votre robot de Forex a spécifié dans sa demande à Le serveur de commerce. Maintenant que nous savons que notre ennemi 8211 let8217s le battre 1) StopLoss amp TakeProfit sont les prix Il ya plusieurs causes possibles de ERRINVALIDSTOPS, et l'un des plus fréquents parmi les débutants est de spécifier le StopLoss et TakeProfit en pips plutôt que les niveaux de prix réels. Comme ceci: Cependant, soyez prudent Certains EA8217s ont déjà des modules qui détecteront le nombre de chiffres après la décimale et régleront automatiquement vos paramètres d'entrée pour vous. Dans ces situations, multiplier les entrées par 10 peut effectivement conduire à des performances erronées. Note: Je prévois poster un article distinct où nous discuterons de la façon de créer nos propres modules pour détecter le nombre de chiffres après la décimale 3) ECN courtiers ECN comptes ont leurs propres spécificités. L'un d'entre eux est 8211 lors de la négociation par l'intermédiaire d'un courtier ECN vous ne serez pas en mesure de définir un StopLoss andor TakeProfit avec votre ordre de marché (ACHETER ou VENDRE). Si vous essayez de faire ce 8211 vous obtiendrez l'erreur 130. Cependant, bien sûr, vous devez définir un StopLoss (et peut-être TakeProfit) pour votre commande, et cela doit être fait dès que possible après la commande a été exécutée. Essayez ce code: Vous pouvez ajouter cette fonction à votre code (à la fin) et l'utiliser au lieu de OrderSend () dans votre code principal. Cette fonction ajoute une étape supplémentaire dans le processus d'envoi d'un ordre de marché. Tout d'abord, il envoie la demande d'exécuter une ordonnance de marché enlever le StopLoss et TakeProfit. Ensuite, il modifie l'ordre du marché nouvellement ouvert en ajoutant le SL et le TP souhaités. Il ya, bien sûr, un risque que l'ordre sera exécuté, mais la modification échouera. Toutefois, dans ce cas, la fonction informera rapidement le commerçant que le StopLoss et TakeProfit n'ont pas été définies. N'hésitez pas à modifier cette fonction en fonction de vos besoins et de votre style commercial. 4) Stop-Levels Les Stop-Levels sont un mécanisme permettant aux courtiers de se protéger contre certains risques liés à la volatilité et à la liquidité. En termes simples, vous ne serez pas en mesure de régler votre StopLoss ou TakeProfit OU toute commande en attente plus proche d'un nombre prédéterminé de Pips au prix du marché actuel. Pour savoir ce que le niveau d'arrêt est pour une paire de devises spécifiques, vous devez appuyer sur CTRLU sur votre clavier, sélectionnez la paire de devises souhaitées et cliquez sur le bouton 8220Properties8221 comme illustré ci-dessous: Dans cet exemple, le niveau d'arrêt pour AUDUSD est de 3 pips . Cela signifie que vous ne serez pas en mesure de définir le StopLoss pour votre commande plus proche de 3 pips au prix auquel la commande sera ouverte. Cela signifie également que toute commande en attente devra être fixée à au moins 3 pips du prix courant du marché. Si vous essayez de briser ces règles et de définir un StopProduit StopLoss ou un ordre en attente dans la plage Niveau d'arrêt, alors il obtiendra Erreur 130 8220Invalide Stops8221. Donc, il suffit de se soucier du niveau d'arrêt de la monnaie où vos EA8217s sont le commerce 8211 don8217t spécifier excessivement petits paramètres StopLoss et TakeProfit. Il est également intéressant de noter que les paires de devises plus exotiques peuvent avoir des niveaux d'arrêt beaucoup plus importants. Par exemple, pour AUDNZD le Stop Level avec le même courtier que dans l'exemple ci-dessus est de 20 Pips. Pour GBPSEK (Livre britannique contre Couronne suédoise) 8211 it8217s 100 Pips. 5) Normalization de doubles Avec certains courtiers vous trouverez que pour une raison inconnue les prix Ask et Bid sont passés sur le commerçant avec des chiffres négligeables supplémentaires après la décimale. Par exemple: Au lieu de 1.1606 le courtier vous donnerait 1.160600001 Maintenant, ce phénomène n'a aucun effet sur le commerce manuel, d'ailleurs puisque le terminal MT4 est câblé pour afficher un certain nombre de chiffres après le point décimal (soit 4 ou 5) 8211 vous ne Être en mesure de remarquer toute différence du tout Cependant, ces 8216nombrementnible8217 chiffres après la décimale peut avoir un effet dramatique sur Expert Advisors causant 823082308230 that8217s droit Notre vieil ami, OrderSend Error 130 Here8217s une stratégie que je personnellement utiliser pour protéger mes robots de ce problème: Petit truc propre vous permet de normaliser (en termes simples 8211 Round) les prix que vous saisissez dans la fonction OrderSend (). De cette façon, vous coupez tous les 8216nombrements négligeables8217 après la virgule. Conclusion Aujourd'hui, nous avons vu qu'il pouvait y avoir plusieurs causes (au moins 5) à l'erreur 130. Bien que cela soit tout à fait peu, les questions sous-jacentes sont toutes triviales et peuvent être corrigées en quelques minutes. Par conséquent, l'erreur 130 ne devrait pas être redouté Si vous avez rencontré ce coupable, it8217s juste une question de passer par la liste ci-dessus, trouver la situation qui s'applique à vous et l'application de la solution prescrite. J'espère que vous avez trouvé cet article utile Faites-moi savoir si vous avez des questions en utilisant la section commentaires ci-dessous. Qu'attendez-vous POUR COMMENCER AVEC L'ADDÉMIE FOREX TRADING 2014-2017 ForexBoat. Tous droits réservés Forexboat Pty Ltd (ABN: 29 609 855 414) Représentant autorisé par l'entreprise (AR 001238951) de HLK Group Pty Ltd (ACN: 161 284 500) titulaire d'une licence australienne de services financiers (AFSL n ° 435746). Les informations ou conseils contenus dans ce site Web sont de nature générale et ne constituent pas des conseils personnels ou d'investissement. Nous n'accepterons aucune responsabilité pour toute perte ou dommage, y compris, mais sans s'y limiter, les pertes de profits qui pourraient résulter directement ou indirectement de l'utilisation de ces informations ou de leur dépendance. Vous devriez rechercher des conseils financiers indépendants avant d'acquérir un produit financier. Toutes les transactions portant sur des valeurs mobilières et des produits financiers ou des instruments financiers comportent des risques. N'oubliez pas que les résultats de performance passés ne sont pas nécessairement indicatifs de résultats futurs. Les informations sur ce site peuvent être consultées dans le monde entier mais elles ne sont pas destinées aux résidents d'un pays ou d'une juridiction où une telle distribution ou utilisation serait contraire à la législation ou à la réglementation locale. Forexboat Pty Ltd n'est pas enregistré auprès de n'importe quel régulateur américain, y compris la National Futures Association (8220NFA8221) et Commodity Futures Trading Commission (8220CFTC8221) donc les produits et services offerts sur ce site n'est pas destiné aux résidents des États-Unis. Remplissez ce formulaire et cliquez sur le bouton ci-dessous pour démarrer votre formation gratuite


No comments:

Post a Comment