Thursday 23 March 2017

Semaphores Forex

MetaTrader 5 - Systèmes de négociation Systèmes de négociation simples utilisant des indicateurs de sémaphore Introduction Les indicateurs de sémaphore ou de signal sont des détecteurs simples qui indiquent les moments d'entrée ou de sortie du marché. Dans le cas où il ya un signal d'entrée à la barre actuelle, une étiquette appropriée apparaît sur un diagramme de symbole. Cette étiquette peut alors être utilisée comme condition pour effectuer un accord. Il ya beaucoup d'indicateurs de ce genre, mais l'essence même du système commercial initial basé sur de tels indicateurs n'a pas changé du tout. Par conséquent, il est une bonne idée de le mettre en œuvre sous la forme la plus simple et universelle. Cela permettra d'utiliser davantage le résultat obtenu en travaillant avec des indicateurs similaires sans modifications considérables. Fig. 1. Indicateur de signal de sémaphore ASCtrend Fig.2. Signal de négociation pour effectuer un accord en utilisant l'indicateur de signal de sémaphore ASCtrend Échantillons d'indicateurs de signal de sémaphore typique Il existe actuellement de nombreux indicateurs de ce type dans Code Base. Dans cet article je vais vous fournir quelques liens vers les pages Web appropriées: En plus des indicateurs de signal sémaphore, il ya un groupe d'indicateurs de tendance sémaphore: Fig.3. Indicateur de tendance du sémaphore Fig.4. Signe de négociation pour la réalisation d'un accord en utilisant Heiken Ashi Indicateur de tendance de sémaphore lissé Les systèmes de négociation utilisant ces indicateurs ont un code légèrement différent pour obtenir des signaux de négociation, tandis que le code Expert Advisor reste presque inchangé. Les exemples de code typique des indicateurs de tendance du sémaphore contiennent de nombreux indicateurs de ce type. Dans cet article, je vais vous fournir quelques liens vers les pages Web appropriées: Données de base pour la création d'un système de négociation: Indicateur de sémaphore avec les paramètres d'entrée qui doivent être présents dans le conseiller expert La liste des paramètres de négociation Expert Advisor supplémentaires: Part des ressources financières d'un dépôt utilisées dans une opération d'une taille de Stop Loss et Take Profit (les commandes en attente ne doivent pas être utilisées en cas de valeurs nulles) slippage (différence maximale admissible entre les prix fixés et les prix réels) Les signaux de négociation recevront des autorisations pour ouvrir des autorisations de positions longues et courtes pour la fermeture forcée de positions longues et courtes en fonction de signaux indicateurs. Bien sûr, il serait beaucoup plus commode de donner des ordres pour la réalisation de transactions en utilisant les fonctions commerciales universelles. Ces fonctions sont assez complexes et elles doivent être regroupées dans un fichier de bibliothèque séparé pour rendre le code d'application aussi simple que possible. Le code du conseiller expert mettant en œuvre le système de négociation sémaphore: Le code pour la réalisation d'une telle idée est assez simple et clair, mais certains détails doivent être précisés. La période de graphique utilisée par un indicateur de signal et un conseiller expert est fixée dans la variable d'entrée InpIndTimeframe du conseiller expert. Par conséquent, la modification d'un graphique, à laquelle un expert-conseil est situé, ne modifie pas ce paramètre pour le conseiller expert. La fonction IsNewBar () nécessaire pour déterminer le moment d'une arrivée de nouvelle barre est implémentée en tant que classe placée dans le fichier TradeAlgorithms. mqh. Cela permet d'utiliser n'importe quel nombre de telles fonctions dans le code facilement en définissant une variable CIsNewBar statique individuelle pour chacun d'eux. Les variables UpSignalTime et DnSignalTime sont utilisées pour stocker et transférer l'heure, après quoi il est possible d'effectuer la transaction suivante après la précédente, aux fonctions de négociation. Dans notre cas, cette fonction est utilisée pour éviter d'effectuer plusieurs transactions dans la même direction à la même barre (lors de la transaction, la fonction de négociation stocke l'heure de la fin de la barre actuelle et n'effectue pas de nouvelles transactions dans la même direction jusqu'à moment). Le bloc recherchant le dernier sens de négociation pour obtenir des signaux pour des positions de fermeture dans la fonction OnTick () est nécessaire pour recevoir des positions fermant des signaux sur les barres sans signaux commerciaux. Dans le cas d'un fonctionnement normal d'Expert Advisor, il n'y a pas besoin d'eux. Mais en cas d'échec de la connexion Internet, il est tout à fait possible qu'un nouveau signal de trading soit manqué. Ce n'est guère une bonne idée d'entrer dans le marché post factum, mais il serait judicieux de fermer les positions ouvertes. Utiliser le système de négociation avec d'autres indicateurs de signal de sémaphore Maintenant, s'il est nécessaire d'utiliser ce code avec un autre indicateur de signal de sémaphore, les actions suivantes doivent être effectuées: Remplacer les données d'indicateur précédent par les paramètres nécessaires de la nouvelle dans un Expert Advisor Paramètres d'entrée Modifiez le code d'obtention de la poignée d'indicateur dans le bloc OnInit () Déterminez les indices des tampons indicateurs utilisés pour stocker les signaux de négociation d'achat et de vente à partir du code indicateur et entrez-les de manière appropriée dans les appels de fonction CopyBuffer () bloc. Dans ce cas, les tampons de zéro et de premier indicateur sont utilisés. Changer l'initialisation de la variable de point de départ du calcul de données (minratestotal) dans un Expert Advisor en fonction du code indicateur Changer le bloc Recherche du dernier sens de négociation pour obtenir des signaux pour fermer des positions dans OnTick ) Fonctionnent selon le code d'indicateur. Utiliser le système de négociation avec d'autres indicateurs de tendance du sémaphore Lorsque vous utilisez ce système de négociation avec l'indicateur de tendance du sémaphore, le code Expert Advisor a changé un peu dans le bloc pour déterminer les signaux pour les transactions de fonction OnTick (). Par exemple, le code apparaîtra comme suit pour le conseiller expert basé sur l'indicateur FiboCandles: Dans ce cas, les signaux de négociation sont reçus à partir d'un seul tampon indicateur de couleur (contenant des indices de couleur). Les données dans ce tampon ne peuvent avoir que deux valeurs: 0 - pour le marché ascendant et 1 - pour le descendant. La recherche du dernier sens de la négociation pour obtenir des positions clôture le code de bloc de signaux est devenue aussi simple que possible, car une direction de tendance à n'importe quelle barre peut être reçue directement à partir de la cellule appropriée du tampon indicateur. Au bloc Performing deals, les fonctions de fermeture des positions se font en premier, suivies des fonctions d'ouverture. Dans le cas contraire, il ne sera possible de fermer les offres que sur une seule barre, vous ne pourrez pas les ouvrir simultanément lors des tests en mode Open uniquement. Par conséquent, les résultats commerciaux seront sérieusement perturbés. Essais du système de négociation Avant de procéder aux essais du système de négociation, un détail important doit être précisé. Dans le cas où la valeur de la variable d'entrée SignalBar est égale à zéro, le Expert Advisor obtiendra des transactions effectuant des signaux à partir de la barre actuelle. Mais le signal de barre actuel n'est pas fiable en indiquant le changement de la tendance qui s'est déplacée contre ce signal à la barre précédente. Les signaux sur la barre actuelle peuvent apparaître et disparaître, alors qu'une tendance peut se déplacer contre de tels signaux pendant un temps assez long. Cela peut être facilement vu, si un Expert Advisor est testé sur tous les ticks avec visualisation activée et SignalBar variable étant égal à zéro. La visualisation de l'opération d'indicateur ASCtrend présente une preuve très claire de ce fait dans un tel cas. Encore une fois, seul le mode Tout tick est adapté à une optimisation Expert Advisor avec un signal reçu de la barre actuelle. Dans le cas où il doit être reçu de toute autre barre déjà fermée, le mode Ouvrir seulement les prix est assez. Cela accélère considérablement l'analyse du comportement du système commercial sans aucune perte sérieuse dans sa qualité. Par conséquent, il est préférable de ne pas utiliser les signaux de la barre actuelle pour tester et optimiser de tels systèmes de trading. Donc, testez le Expert Advisor avec les paramètres par défaut sur EURUSD depuis le début de l'année jusqu'au début décembre: Fig.5. Test des résultats de ExpASCtrend Expert Advisor avec les paramètres par défaut sur EURUSD H1 Après avoir modifié un peu les paramètres du Expert Advisor dans le Strategy Tester, nous pouvons trouver assez facilement la combinaison des paramètres Expert Advisor pour les données historiques existantes: Fig.6. Test des résultats d'ExpASCtrend Expert Advisor après optimisation avec de meilleurs paramètres sur EURUSD H1 Le processus d'optimisation du système de trading n'a pas de particularités, c'est pourquoi je ne vais fournir qu'un seul lien vers l'article décrivant ce processus en détail: MQL5: Guide to Testing Et l'optimisation des conseillers experts dans MQL5. Bien sûr, il serait naïf de s'attendre à certains bénéfices exceptionnels d'un tel système commercial simple. Mais il est tout à fait possible d'obtenir de bons résultats dans le cas où ce système semi-automatique est habilement manipulé et est régulièrement accordé en fonction du comportement actuel du marché. Par exemple, il ya eu une tendance à la hausse sur le graphique EUR12 H12 en 2011 de janvier à mai. Et il a été facilement détectable aux premiers stades: Fig.7. EURUSD H12 chart (JanvierMai 2011) Il serait intéressant de tester le Expert Advisor sur cet intervalle de temps avec les paramètres par défaut, la possibilité d'acheter seulement et l'utilisation de seulement 5 d'un dépôt (MM0.05). Voici les résultats de l'Expert Advisor avec de tels paramètres testés sur le graphique H1: Fig.8. Résultats d'essai d'ExpASCtrend Expert Advisor avec paramètres par défaut sur EUR / USD H1 pour janvier / mai 2011 (seulement positions longues, MM0.05) Bien entendu, dans ce cas, un opérateur est entièrement responsable de la sélection d'une direction de transaction. Mais si nous gardons à l'esprit qu'il devrait être fait à l'aide de grands tableaux de temps, nous aurons à peine faire face à des difficultés. Modification du module de négociation pour l'utiliser avec un autre indicateur Cet article aurait pu être terminé ici, mais MetaEditor a acquis la possibilité de générer des conseillers experts basés sur des modules de trading prêts à l'emploi. Le processus de création de tels modules considérant tout le matériel présenté ici est assez complexe et nécessite une étude distincte. Par conséquent, je vais me concentrer sur les modules de négociation déjà créés qui sont complètement analogues aux systèmes de négociation que j'ai suggéré. Et seulement après cela je vais passer aux détails de ces modules de modification en fonction des indicateurs de signal spécifiques évitant inutile de déconnexion. Supposons que nous possédions déjà la collection de modules de trading pour les systèmes de signaux sémaphores (MySignals. zip) et que nous souhaitons créer un module analogue pour chaque indicateur. Soit BykovTrendSignal. mq5 indicateur, qui est un indicateur typique de signal de sémaphore. Tout d'abord, nous devrions trouver l'analogue le plus précis de l'indicateur de cette collection (Indicators. zip). Visuellement nous déterminons que le premier indicateur de cet article (ASCtrend) est le plus semblable à lui. Par conséquent, nous allons utiliser le module de négociation de cet indicateur pour la modification. Compte tenu de son utilisation dans le code de programme requis, l'indicateur lui-même (BykovTrend) dispose d'un ensemble de paramètres d'entrée: Et nous avons besoin des indices des tampons indicateurs utilisés pour stocker les signaux pour effectuer des transactions. Dans notre cas, ce sont: 0 - pour les signaux de vente et 1 - pour les signaux d'achat. Maintenant que nous savons quel module doit être utilisé pour la modification, nous le copions dans le dossier MQL5IncludeExpertSignalMySignals avec le nom de fichier BykovTrendSignal. mqh, puis l'ouvrons dans MetaEditor. Il ya une expression régulièrement rencontrée ASCtrend (le nom de l'indicateur précédent) dans le code utilisé. Il devrait être remplacé par le nom du nouvel indicateur - BykovTrend. Pour ce faire, appuyer simultanément sur les touches Ctrl et H et apporter les modifications nécessaires: Fig.9. Remplacer le nom de l'indicateur dans le code du module de négociation La prochaine étape de notre travail est la plus méticuleuse. Nous devons remplacer tout ce qui concerne les paramètres d'entrée des indicateurs dans le code du module de négociation. Le processus est très similaire à ce qui a été énoncé dans l'article Assistant MQL5: Comment créer un module de signaux commerciaux. Tout d'abord, nous devrions faire quelques changements dans le bloc commenté de signaux MQL5 Assistant de négociation description de la classe: Les deux indicateurs contiennent la même variable d'entrée RISK, par conséquent, il peut être laissé. Mais dans ces indicateurs, sa valeur par défaut est différente. En fait, cette différence n'est pas critique et peut rester inchangée. La ligne de commentaire sur la variable SSP a été ajoutée: Et le lien vers l'indicateur Code Base a été remplacé: Maintenant, tout ce qui se rapporte aux changements de paramètres d'entrée devrait être reflété dans la description de la classe des signaux de négociation CBykovTrendSignal. Nous avons la ligne de la nouvelle déclaration de variable de classe mSSP globale dans les paramètres de paramètres: et la ligne des nouveaux paramètres SSP () Paramètres de la méthode d'installation déclaration: Tout ce qui concerne la variable d'entrée RISK dans le module de signaux commerciaux que nous créons est équivalent à l'entrée Module et, par conséquent, il n'y a pas de changements dans les blocs de modules de négociation actuels et autres. Maintenant, nous passons au constructeur de classe CBykovTrendSignal :: CBykovTrendSignal (). L'initialisation d'une nouvelle variable doit être ajoutée dans ce bloc: Vérification de la nouvelle variable pour l'exactitude doit être effectuée dans CBykovTrendSignal :: ValidationSettings () Paramètres paramètres de vérification de bloc: Ensuite, nous pouvons passer à BykovTrend indicateur d'initialisation bloc - BykovTrendSignal :: InitBykovTrend ). Le nouvel indicateur a un nombre différent de variables d'entrée et, par conséquent, la dimension pour le tableau des paramètres d'entrée déclarés sera également différente: Dans notre cas, nous avons besoin d'une dimension pour le nom de la chaîne indicateur et de deux autres pour ses paramètres d'entrée. Maintenant nous devons initialiser une nouvelle cellule des matrices des paramètres d'entrée, en indiquant le type de la variable qui sera stockée dans celle-ci: Après cela changer le nombre de variables d'entrée par 3 dans ce bloc dans l'appel pour l'initialisation de l'indicateur: Des indicateurs tampon dans l'indicateur reste le même et égal à deux, par conséquent, il n'est pas nécessaire de modifier quoi que ce soit dans la ligne d'initialisation du nombre de tampons indicateur dans notre cas: ASCtrend et BykovTrend indicateurs ont deux buffers indicateur chacun. Les fonctions des tampons sont complètement similaires. Le tampon zéro est utilisé pour stocker des signaux de vente, tandis que le tampon ayant un indice 1 est utilisé pour stocker des signaux d'achat. Ainsi, il n'est pas nécessaire de modifier quoi que ce soit dans les blocs de fonctions pour la transmission des signaux de négociation CBykovTrendSignal :: LongCondition () et CBykovTrendSignal :: ShortCondition () et le travail sur la modification du module de signaux commerciaux peut être considéré comme complet. Mais en général, tous les indicateurs de sémaphore sont différents et, par conséquent, ces blocs pour différents indicateurs de sémaphore peuvent différer considérablement les uns des autres. MySignals. zip trading module archive et l'archive appropriée Indicators. zip contiennent suffisamment d'exemples pour créer différents indicateurs. Après un examen, il est possible de connaître les détails du processus de remplacement et les versions de code possibles pour cela. Maintenant, je voudrais me concentrer sur la variable d'entrée IndTimeframe du module de signaux commerciaux. Cette variable permet de télécharger un intervalle de temps approprié à l'indicateur. Toutefois, le conseiller expert généré fonctionne selon le délai auquel il a été affecté. Cela signifie que l'intervalle de temps d'entrée IndTimeframe ne doit jamais dépasser une période du graphique sur lequel le conseiller expert fonctionne afin de fournir le fonctionnement normal du module. Enfin, je voudrais révéler une autre particularité de la création de signaux de trading modules. Parfois, les énumérations personnalisées sont implémentées dans le code d'indicateur de base en tant que types pour les variables d'entrée du module. Par exemple, l'énumération personnalisée SmoothMethod est utilisée comme type de variable MASMethod pour l'indicateur CandlesSoothed: Dans ce cas, les variables d'entrée de ce type et tous les éléments associés dans le module de signaux commerciaux (CandlesSmoothedSignal. mqh) doivent être modifiés en variables int ou uint. De plus, la procédure inverse d'énumérations personnalisées allant jusqu'à des paramètres d'entrée Expert Advisor et le remplacement des types de variables d'entrée nécessaires (ExpMCandlesSmoothed Expert Advisor) doit être effectuée pour la facilité d'utilisation de ces variables d'entrée dans le code déjà généré de l'Expert terminé Conseiller: Dans notre cas, cela a été fait avec la variable d'entrée SignalMASMethod. Vous pouvez accélérer considérablement la modification du code si vous ouvrez les deux versions de code (ASCtrendSignal. mqh et BykovTrendSignal. mqh) simultanément dans l'éditeur (en plaçant une sur le côté gauche et l'autre sur le côté droit) et comparez les deux versions de code avec soin. Conclusion J'ai placé une quantité suffisante de conseillers experts basés sur le système de négociation sémaphore dans l'archive Experts. zip joint à cet article pour permettre aux créateurs débutants Expert Advisors de comprendre facilement toutes les caractéristiques de l'écriture d'un tel code ou du moins de travailler avec des conseillers experts En utilisant des indicateurs assez populaires. Tous les conseillers experts ci-joints sont en outre présentés comme des modules de négociation pour ceux qui veulent utiliser le générateur de stratégies de négociation comme une base pour leurs propres systèmes de négociation. Ces modules sont situés dans MySignals. zip, alors que les systèmes de négociation basés sur eux peuvent être trouvés dans Expertsez. zip. Les indicateurs utilisés dans les experts sont placés dans Indicators. zip. Les chemins d'extraction des fichiers sont les suivants: Experts. zip: MQL5Experts Expertsez. zip: MQL5Experts MySignals. zip: MQL5IncludeExpertSignalMySignals Indicators. zip: MQL5Indicators SmoothAlgorithms. mqh: Incluez TradeAlgorithms. mqh: Include. Redémarrez MetaEditor, ouvrez la fenêtre Navigateur, cliquez avec le bouton droit sur l'étiquette MQL5 et sélectionnez Compiler dans le menu contextuel. SmoothAlgorithms. mqh fichier est nécessaire pour la compilation de certains indicateurs de Indicators. zip, tandis que TradeAlgorithms. mqh fichier est nécessaire pour la compilation de tous les experts Advisors d'Experts. zip. Semafor Trend Trading Inscrit mai 2011 Statut: Membre 47 Messages Je suis commerçant d'environ 7 ans. J'ai traversé de nombreux systèmes à la recherche du Saint Graal jusqu'à ce que je réalise qu'il n'y a rien de tel que je ne me qualifie pas d'expert, mais avec l'aide de ce forum, et beaucoup d'autres en cours de route (principalement John Thomas de Kitsap et Dredding82 pour Montrant comment puissant Semafors peut être) je suis confiant et réussi. Avant de poster, connaître les règles: 1. Semafors repeindre (je sais cela). Alors s'il vous plaît ne pas commenter à ce sujet repeindre, ils ne sont que des guides. 2. C'est ce qui fonctionne pour moi, et ce n'est que des informations qui espèrent aider d'autres commerçants là-bas. 3. Soyez courtois et respectueux les uns des autres. C'est un fil amical, dans lequel nous pouvons apprendre ensemble. 4. Je ne vous donne pas de signaux commerciaux et ne sera pas responsable de tout gain et / ou de pertes que vous encourez la négociation de ce système. C'est simplement un partage des choses que j'ai trouvé qui ont travaillé pour moi. Sur les bonnes choses. J'ai appris à le simplifier. Voici les outils dont vous avez besoin: 1. 3LevelZZSemafor (Les fils de Dredding82s en ont un bon) (Vous pouvez le trouver ici: forexfactoryshowthread. phpt308231) 2. Un indicateur de pivot (J'utilise le SonicR Control Panel) (Vous pouvez le trouver ici: forexfactoryshowthread. phpt114792) 3. (Facultatif) Un Zig Zag d'une certaine sorte si vous voulez voir la tendance plus facile. J'ai posté un ci-dessous. La chose importante à savoir est de commercer avec le commerce Semafors apparaissent en 3 tailles (petites, moyennes et grandes). C'est comme ça que je négocie les échanges: Achat: 1. Semafor grand ou moyen apparaît sur le bas (montrant le niveau extrême) 2. Le prix se déplace plus haut en créant un semafor sur le haut 3. Puis un mouvement plus bas sans faire un quotnew lowquot, créant un nouveau semafor (QuotHigher Lowquot) (Un bas, puis un haut, puis un plus bas confirme une tendance à la hausse dans les cas MOST) 4. Acheter la hauteur break de cette bougie. (Normalement une bougie engouffrant quotbullish) Vendez: 1. Semafor grand ou moyen apparaît sur le haut 2. Le prix se déplace plus bas créant un semafor sur le bas 3. Puis un mouvement plus haut sans faire un quotnew highquot, créant un nouveau semafor (quotLower Highquot) (A Élevé, puis bas, puis bas de haut confirme une tendance à la baisse dans la plupart des cas) 4. Vendre le bas break de cette bougie. (Normalement, une bougie engloutissant quotbearish) Vos cibles dépendent du calendrier et où vos pivots montrent le soutien ou la résistance. Sur une ACHETER je mets normalement un Fibo de votre haut à votre basse inférieure et tirez pour le niveau de retracement 161.8. Une vente serait l'inverse. Mon arrêt est toujours quelques pépins au-delà de la basse inférieure ou supérieure élevé utilisé pour mettre en place le commerce. L'explorateur commercial est en hausse à partir du 13 septembre 212 (et ce compte ne traitera que les métiers du système pour que nous puissions obtenir une image exacte de la rentabilité). Le compte est quotlivequot pas un quotdemoquot. Voici un exemple: Image jointe (cliquez pour agrandir)


No comments:

Post a Comment