
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
Ce n'est pas toi qui as besoin d'une pause.
Globalement, il y a deux façons de procéder :
1) l'analyse de l'environnement (aspirer l'historique des transactions, vérifier la position ouverte ou le volume de la position) ;
2) l'analyse des transactions.
Le premier fonctionne plus lentement. Mais il est plus fiable. Nous avons besoin d'un compromis. Peut-être devons-nous examiner la stratégie et en dépendre.
Oui, FORTS a un ticker à part entière, donc il ne faut pas travailler avec les ticks mais avec l'événement BookEvent.
Il est étrange que Vasily Sokolov n'ait pas fait de commentaire sur ce sujet. Son point de vue est intéressant...
Quoi qu'il en soit, l'essentiel, à mon avis, est le suivant.
Globalement, il y a deux façons de procéder :
1) l'analyse de l'environnement (aspirer l'historique des transactions, vérifier la position ouverte ou le volume de la position) ;
2) l'analyse des transactions.
Le premier fonctionne plus lentement. Mais il est plus fiable. Nous avons besoin d'un compromis. Peut-être devons-nous examiner la stratégie et en dépendre.
Oui, FORTS a un ticker à part entière, donc il ne faut pas travailler avec les ticks mais avec l'événement BookEvent.
Il est étrange que Vasily Sokolov n'ait pas fait de commentaire sur ce sujet. Son point de vue est intéressant...
Quoi qu'il en soit, l'essentiel, à mon avis, est le suivant.
Globalement, il y a deux façons de procéder :
1) l'analyse de l'environnement (aspirer l'historique des transactions, vérifier la position ouverte ou le volume de la position) ;
2) l'analyse des transactions.
Le premier fonctionne plus lentement. Mais il est plus fiable. Nous avons besoin d'un compromis. Peut-être devons-nous examiner la stratégie et en dépendre.
Oui, FORTS a un ticker à part entière, donc il ne faut pas travailler avec les ticks mais avec l'événement BookEvent.
Il est étrange que Vasily Sokolov n'ait pas fait de commentaire sur ce sujet. Son point de vue est intéressant...
c'est-à-dire que je peux y transférer complètement ma stratégie ?
J'ai travaillé une fois sur cet ordre et j'ai écrit la classe CiOnTrade :
Donc, la solution optimale que j'ai trouvée était de traiter les états. Et il y en avait tellement :
{
TRADE_STATE_NONE=0, // "ничего"
TRADE_STATE_ORDERS=1, // "только ордера"
TRADE_STATE_POSITION=2, // "только позиция"
TRADE_STATE_ALL=3, // "все"
};
2) "Commandes uniquement" - il s'agit de l'état lorsque les commandes sont passées.
3) "Position uniquement" est l'état dans lequel les ordres sont entièrement exécutés.
4) "Tous" est l'état où les ordres n'ont pas été complètement exécutés et où il y a déjà une position sur le marché.
Il fallait donc traiter chaque état. Oui, d'ailleurs, j'admets qu'il y a aussi des états intermédiaires. Donc ma classe pourrait être améliorée.
A propos, une question s'est posée : l'événementBookEvent peut-il être utilisé de la même manière que le Tick ou le Timer ?
c'est-à-dire que je peux y transférer complètement ma stratégie ?
Oui ! Mais considérez que le verre est plus susceptible de générer des événements. Par conséquent, vous avez besoin d'un filtre pour éliminer les événements inutiles. Par exemple, les prix n'ont pas changé, mais seulement les volumes de certaines offres...
L'essentiel, à mon avis, est le suivant.
Globalement, il y a deux façons de procéder :
1) l'analyse de l'environnement (aspirer l'historique des transactions, vérifier la position ouverte ou le volume des positions) ;
2) l'analyse des transactions.
Lepremier fonctionne plus lentement. Mais il est plus fiable. Il doit y avoir un compromis. Nous devons peut-être envisager la stratégie et en dépendre.
Je suppose que l'information sur l'accord n'est pas encore arrivée. Ici (marqué en rouge), vous comptez sur la chance. Et c'est une dame capricieuse :-))
{
MqlTradeRequest Request;
MqlTradeResult Results;
ZeroMemory(Request);
ZeroMemory(Results);
Request.price=SymbolInfoDouble(_Symbol,SYMBOL_BID);
Request.action=TRADE_ACTION_DEAL;
Request.type=ORDER_TYPE_SELL;
Request.symbol=symbol;
Request.volume=volume;
Request.deviation=deviation;
Request.comment=comment;
Request.type_filling=filling;
bool res=false;
res=OrderSend(Request,Results);
if(res)
{
if(Results.deal>0) return(true);
else return(false);
}
return(false);
}
Même avecORDER_STATE_FILLED, Results.order peut avoir un problème - Results.deal est zéro. La reproduction à 100% de cette situation est réalisée sur le serveur FXOpen-MT5.
Je recommande d'ouvrir plusieurs démos sur différents serveurs et d'obtenir la pleine fonctionnalité du code. Je l'ai fait pour MT4 biblique. C'est pourquoi il n'y a pas de problème avec le sous-jeu.
OrderSend+Sleep(0) n'est pas plus lent que OrderSend+OnTradeTransaction. Je l'ai mesuré. Par conséquent, je n'utilise pas la deuxième variante pour les transactions asynchrones.
La variante OrderSend+Sleep(0) est temporaire, car c'est un défaut des développeurs (ne l'utilisez pas comme exemple :) ).
Quand il sera corrigé, seul OrderSend restera