Utilisez-vousStopLimit dans vos transactions réelles ?
Il est clair queStopLimit ne fonctionne pas correctement dans le testeur.
Est-il judicieux de l'utiliser dans le cadre de transactions réelles ? Quels sont les avantages et les inconvénients ?
Quel est le problème avec le testeur ?
Apparemment, personne ne l'utilise,
l'ordre est ouvert à des prix inexistants :
Un exemple simple à vérifier :
//+------------------------------------------------------------------+ //| StopLimit_Test.mq5 | //+------------------------------------------------------------------+ #include <Trade\Trade.mqh> CTrade trade; input int Deviation = 100; //+------------------------------------------------------------------+ void OnTick() { MqlTick tick; SymbolInfoTick(_Symbol,tick); trade.SetTypeFilling(ORDER_FILLING_RETURN); double ticksise=SymbolInfoDouble(_Symbol,SYMBOL_TRADE_TICK_SIZE); if(OrdersTotal()==0) trade.OrderOpen( _Symbol, // символ ORDER_TYPE_BUY_STOP_LIMIT, // тип ордера 1.0, // объем ордера tick.ask+Deviation*ticksise, // цена исполнения tick.ask+10*ticksise, // цена стоплимита 0, // цена stop loss 0 // цена take profit ); } //+------------------------------------------------------------------+
Apparemment, personne ne l'utilise,
l'ordre est ouvert à des prix inexistants :
Un exemple simple à vérifier :
Un ordre BuyStopLimit fonctionne de cette façon :
- Un ordre BuyStop est placé au-dessus du prix (valeur du prix dans la structure de la demande de transaction = prix + distance de réglage de l'ordre stop).
- Lorsqu'un ordre BuyStop se déclenche, un ordre BuyLimit est placé en dessous du prix.
(au prix stoplimit dans la structure de la demande de transaction qui devrait être correctement calculée : stoplimit = prix - distance de réglage de l'ordre stop) - Lorsqu'un ordre d'achat limite se déclenche, une entrée sur le marché est effectuée au prix de l'ordre d'achat limite.
Exemple :
Un ordre BuyStopLimit fonctionne de cette façon :
- Nous fixons un ordre BuyStop au-dessus du prix (valeur du prix dans la structure de la demande de transaction = prix + distance de fixation de l'ordre stop).
- Lorsque le BuyStop est déclenché, un ordre BuyLimit est placé sous le prix .
(au prix stoplimit dans la structure de la demande de transaction qui devrait être correctement calculée : stoplimit = prix - distance de réglage de l'ordre stop) - Lorsqu'un ordre d'achat limite se déclenche, une entrée sur le marché est effectuée au prix de l'ordre d'achat limite.
Exemple :
LorsqueBuyLimit est inférieur au prix, cela fonctionne bien dans le testeur.
Lorsquela BuyLimit est supérieure au prix, elle doit s'ouvrir au prix Ask. Sur l'échange, sur le réel, ça marche comme ça.
Cela n'a pas desens d'utiliser StopLimit pour fixerBuyLimit en dessous du prix.
LorsqueBuyLimit est inférieur au prix, cela fonctionne bien dans le testeur.
Lorsquela BuyLimit est supérieure au prix, il doit s'ouvrir au prix Ask. Sur l'échange, sur le réel, ça marche comme ça.
Utiliser une StopLimite pour mettre la BuyLimit en dessous du prix n'a aucun sens.
Champ | Description |
action | Type d'opération commerciale. Lavaleur peut être une des valeurs de l'énumération ENUM_TRADE_REQUEST_ACTIONS. |
magie | Identifiant du conseiller expert. Permet d'organiser le traitement analytique des commandes commerciales. Chaque conseiller expert peut afficher son propre identifiant unique lorsqu'il envoie une demande de transaction. |
commander | Commander un billet. Requis pour la modification des ordres en cours |
symbole | Nom du symbole pour lequel la commande est passée. Non nécessaire pour la modification des ordres et la fermeture des positions. |
Volume | Volume demandé d'un marché en lots. La valeur réelle du volume lors de l'ouverture d'une position dépend du type d'ordre exéc uté. |
prix | Il s'agit du prix auquel l'ordre doit être exécuté. Le prix n'est pas requispour les ordres de marché du type "Exécution sur le marché" ( SYMBOL_TRADE_EXECUTION_MARKET ) avec le typeTRADE_ACTION_DEAL |
stoplimite | Prix auquel l'ordre Limit en attente sera placé une fois que le prix aura atteint la valeur du prix (cette condition est obligatoire). Jusqu'à ce moment, l'ordre en suspens n'est pas placé dans le système de négociation. |
sl | Prix auquel un ordre Stop Loss sera déclenché lorsque le prix du titre évolue dans une direction défavorable. |
tp | Prix auquel l'ordre Take Profit est déclenché par le mouvement du prix dans la direction favorable. |
déviation | Écart maximal acceptable par rapport au prix demandé, exprimé en points. |
type | Type de commande. La valeur peut être l'une des valeurs de l'énumération ENUM_ORDER_TYPE |
type_filling | Type d'ordre à exécuter. Lavaleur peut être l'une des valeurs deENUM_ORDER_TYPE_FILLING. |
type_temps | Type de commande_temps de remplissage. Lavaleur peut être une des valeurs deENUM_ORDER_TYPE_TIME |
expiration | Heure d' expirationde l'ordre en attente (pour les ordres ORDER_TIME_SPECIFIED) |
commentaire | Commentaire sur l'ordonnance |
position | Ticket to position. Ce formulaire doit être rempli lorsqu'un poste est modifié et fermé afin de l'identifier clairement. Cela correspond généralement au ticket de l'ordre qui a entraîné l'ouverture de la position. |
position_by | Un billet pour une contre-position. Utilisé lors de la fermeture d'une contre-position - ouverte pour le même instrument, mais dans la direction opposée. |
J'espère que vous savez ce qu'est un ordre limite. Et un ordre stop aussi, j'espère que vous n'avez pas de doutes.
Et voici ce qui est dit ici sur le fonctionnement d'un ordre StopLimit: lorsque le cours atteint le niveau d'un ordre Stop (et qu'il est placé au-dessus du prix d'achat), ce n'est qu'à ce moment-là qu'un ordre Limit sera placé (et il est placé en dessous du prix d'achat).
LorsqueBuyLimit est inférieur au prix, cela fonctionne bien dans le testeur.
Lorsquela BuyLimit est supérieure au prix, il doit s'ouvrir au prix Ask.Sur l'échange, sur le réel, ça marche comme ça.
Utiliser StopLimit pour mettre la BuyLimit en dessous du prix n'a aucun sens.
Je suis désolé, comment mettre l'ordre BuyLimit au-dessus du prix ?
Il ne devrait pas être réglé du tout dans ce scénario.
Si vous utilisez une classe de trading SB, il y a une vérification des paramètres erronés, et dans une telle situation, un ordre en attente n'est pas placé, mais un ordre au marché est ouvert.
Champ | Description |
action | Type d'opération commerciale. Lavaleur peut être l'une des valeurs de l'énumération ENUM_TRADE_REQUEST_ACTIONS. |
magie | Identifiant du conseiller expert. Permet d'organiser le traitement analytique des commandes commerciales. Chaque conseiller expert peut afficher son propre identifiant unique lorsqu'il envoie une demande de transaction. |
commander | Commander un billet. Requis pour la modification des ordres en cours |
symbole | Nom du symbole pour lequel la commande est passée. Non nécessaire pour la modification des ordres et la fermeture des positions. |
Volume | Volume demandé d'un marché en lots. La valeur réelle du volume lors de l'ouverture d'une position dépend du type d'ordre exéc uté. |
prix | Il s'agit du prix auquel l'ordre doit être exécuté. Le prix n'est pas requispour les ordres de marché du type "Exécution sur le marché" ( SYMBOL_TRADE_EXECUTION_MARKET ) avec le typeTRADE_ACTION_DEAL |
stoplimite | Prix auquel l'ordre Limit en attente sera placé une fois que le prix aura atteint la valeur du prix (cette condition est obligatoire). Jusqu'à ce moment, l'ordre en suspens n'est pas placé dans le système de négociation. |
sl | Prix auquel un ordre Stop Loss sera déclenché lorsque le prix du titre évolue dans une direction défavorable. |
tp | Prix auquel l'ordre Take Profit est déclenché par le mouvement du prix dans la direction favorable. |
déviation | Écart maximal acceptable par rapport au prix demandé, exprimé en points. |
type | Type de commande. La valeur peut être l'une des valeurs de l'énumération ENUM_ORDER_TYPE |
type_filling | Type d'ordre à exécuter. Lavaleur peut être l'une des valeurs deENUM_ORDER_TYPE_FILLING. |
type_temps | Type de commande_temps de remplissage. Lavaleur peut être une des valeurs deENUM_ORDER_TYPE_TIME |
expiration | Heure d' expirationde l'ordre en attente (pour les ordres ORDER_TIME_SPECIFIED) |
commentaire | Commentaire sur l'ordonnance |
position | Ticket to position. Ce formulaire doit être rempli lorsqu'un poste est modifié et fermé afin de l'identifier clairement. Cela correspond généralement au ticket de l'ordre qui a entraîné l'ouverture de la position. |
position_by | Un billet pour une contre-position. Il est utilisé pour fermer une position avec une contre-position - ouverte pour le même instrument, mais dans la direction opposée. |
J'espère que vous savez ce qu'est un ordre limite. Et un ordre stop aussi, j'espère que vous n'avez pas de doutes.
Et voici ce qui est dit ici sur le fonctionnement d'un ordre StopLimit: lorsque le cours atteint le niveau de l'ordre Stop (et qu'il est placé au-dessus du prix d'achat), dans ce cas seulement, un ordre Limit sera placé (et il est placé en dessous du prix d'achat).
Qu'est-ce qui vous fait penser que l'ordre BuyLimit doit nécessairement être en dessous du prix ?
Je parle du marché boursier, le forex n'est pas intéressant.
Je suis désolé, que faites-vous en plaçant l'ordre BuyLimit au-dessus du prix ?
Il ne devrait pas être réglé du tout dans cette situation.
Si vous utilisez la classe SB-trading, il y a une vérification des paramètres invalides et dans une telle situation, l'ordre en attente n'est pas ouvert, et la position est ouverte par un ordre au marché.
Je vous ai donné un exemple de code ci-dessus.
Il devrait être fixé et il l'est.
S'il était ouvert par le marché, il n'y aurait aucun problème dans le testeur ; il serait ouvert par le prix Ask. Mais il serait ouvert à un prix inexistant, vous pouvez le voir sur la photo ci-dessus.
p.s. Essayez vous-même le code ci-dessus dans un compte d'échange.la limite doit fixer le slippage d'un ordre au marché, pas la fixation d'un ordre à cours limité :))
Le "génial" stoplimit de la bibliothèque standard, pas de mots :))
la limite doit définir le slippage de l'ordre au marché, et non le paramètre de l'ordre limite :))
Le slippage est fixé par le paramètre de déviation dans la demande de transaction.
Et le niveau stoplimite est le niveau auquel l'ordre limite est fixé par rapport au niveau de l'ordre stop.
- www.mql5.com
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Vous acceptez la politique du site Web et les conditions d'utilisation
Utilisez-vousStopLimit dans vos transactions réelles ?
Il est clair queStopLimit ne fonctionne pas de manière adéquate dans le testeur.
Est-il judicieux de l'utiliser dans le cadre de transactions réelles ? Quels sont les avantages et les inconvénients ?