Buy stop Sell stop Conseiller de la grille en tant que classe - page 3

 
Vladimir Karputov:

Version 1.003 :

  • ferme désormais TOUTES les positions opposées lorsqu'une position est ouverte.
  • L'acquisition du prix actuel a été déplacée à l'intérieur des fonctions PlacesBuy et PlacesSell afin de se protéger contre les écarts et les dérapages.
  • DansOnTradeTransaction, les ordres en attente sont placés dans une boucle while - en d'autres termes, nous battons le serveur à plate couture :) - Ce n'est pas la meilleure solution mais elle restera pour l'instant.

En fait, maintenant nous pouvons penser :

  1. Quelle est la meilleure façon d'augmenter les positions (calcul du volume des lots) ?
  2. Que faire des positions opposées


  1. Comment augmenter au mieux la position (calcul du volume des lots) - pas question d'ajouter des lots, c'est une pyramide, c'est différent, le lot doit rester constant.
  2. Que faire avec les positions opposées - Fermer en l'état.
 

Je recommande d'ajouter cet indicateur au modèle "tester.tpl" :LifeHack Balance Equity, alors le testeur montrera immédiatement les changements dans le solde et les fonds. A peu près comme ça :

Équilibre de LifeHack dans le testeur


 
Vladimir Karputov:

Feito. Conecte o Vault, atualize os arquivos do projeto do Vault.



Bonjour Vladimir, pouvez-vous m'ajouter s'il vous plaît ? Merci beaucoup.

 
Cid Ougaske:


Bonjour Vladimir, pouvez-vous m'ajouter s'il vous plaît ? Merci beaucoup.


C'est fait, je l'ai ajouté.

L'objectif est d'établir des statistiques du type suivant : combien de positions d'une même direction sont ouvertes d'affilée avant le flip.

Par exemple : #1 Buy, #2 Buy, #3Buy et #1Sell -> fermer toutes les positions Buy. Les statistiques seront donc les suivantes : trois positions.

 
Vladimir Karputov:

... connecter le modèle et passer les paramètres d'entrée à la classe EA



C'est fait, connecté.

Il y a parfois trop de paramètres. Récemment, je suis devenu paresseux. Je procède de cette façon parce que je n'ai pas besoin de m'embêter à passer des paramètres à l'EA. Quels sont les inconvénients ?

input double LotSize = 0.1;
input int    SL      = 500;
input int    TP      = 300;
//другие входные переменные

#include <AvLib\ClassEA.mqh> // тут лежит класс советника

CClassEA MyEA;
 

Vladimir, tu peux me brancher, s'il te plaît ?

 

Pendant que le conseiller expert travaille, les données sont écrites dans le tableau dans OnTradeTransaction. Le format d'enregistrement est le suivant : si une position d'achat est ouverte, nous enregistrons "+1" ; si une position de vente est ouverte, nous enregistrons "-1".

Par exemple :

  • Acheter - nous enregistrons "+1".
  • Acheter - nous enregistrons "+1".
  • Acheter - nous enregistrons "+1".
  • Vendre - on enregistre "-1".

Une fois le test terminé, les données du tableau sont traitées dans OnTester et écrites dans le fichier csv. Le fichier est créé dansun dossier partagé de tous les terminaux clients: \Terminal\Common\Files. Le nom du fichier est formé comme suit :

   string file_name="Direction_of_trades"+"_"+m_symbol.Name()+"_"+IntegerToString(StepGrid());

alors l'extension "csv" est ajoutée au nom du fichier :

   int filehandle=FileOpen(file_name+".csv",FILE_WRITE|FILE_CSV|FILE_COMMON);

Algorithme de traitement du tableau : si l'enregistrement actuel est dans la même direction que le précédent (cela correspond à l'ouverture de plusieurs positions d'une même direction dans une rangée) - alors nous augmentons le compteur d'une unité, si l'enregistrement actuel est opposé au précédent (cela correspond à l'inversion de la direction de la position) - alors nous lui attribuons la valeur "1" du compteur.

Le fichier csv résultant est facile à traiter dans Excel :

première étape : clic gauche sur la colonne contenant les données

Cliquez à gauche sur

deuxième étape : insertion de l'œuvre recommandée

insérer le tableau recommandé


Voici les statistiques (pour l'étape "35" et l'étape "65") :

direction_des_trades_EURUSD_35_65

 
Alexey Volchanskiy:

Vladimir, tu peux me brancher, s'il te plaît ?


C'est fait. Ajouté (je n'ai pas vu le message tout de suite, je l'ai manqué).

 

La liste actuelle des utilisateurs connectés au projet:

Utilisateurs connectés au projet

 

Pour l'étape 35, les totaux étendus :

Direction_des_marchés_EURUSD_35

Ici, nous pouvons voir que

  • Dans pratiquement 50% des cas, la durée des transactions ininterrompues est égale à "1". Nous avons donc des situations du type suivant : nous avons ouvert un achat puis inversé la position (c'est-à-dire fermé un achat avec une perte et ouvert une vente) ou cette situation : nous avons ouvert une vente puis inversé la position (c'est-à-dire fermé une vente avec une perte et ouvert un achat). Ainsi, les situations avec des transactions ininterrompues de longueur "1" sont une perte garantie.
  • Environ 25% de tous les cas où la durée des transactions ininterrompues est égale à "2", par l'exemple suivant : nous avons ouvert un Achat, puis ouvert un autre Achat et inversé la position (c'est-à-dire fermé deux Achats et ouvert une Vente - ce qui a entraîné une perte égale à zéro).

Je pense que ces catégories les plus nombreuses (durée des transactions ininterrompues égale à "1" et "2") doivent être examinées plus en détail afin de corriger la stratégie de placement des ordres stop en attente.