La compétition. Je vais écrire un expert gratuitement. - page 11

 
OZ0 писал (а) >>

Sergey, vous devez avoir voulu dire sur ce fil (et non sur le forum).

Je suis d'accord. C'est votre condition, car c'est vous qui fixez les règles ici.

C'est pourquoi j'ai ouvert un fil de discussion distinct sur MEM.

D'après ce que je comprends, il s'agit de la possibilité technique d'écrire un message privé en utilisant les fonctionnalités du forum (quelque chose comme le courrier interne). Dans de nombreux forums cette possibilité est disponible, dans le forum mql4.com elle ne l'est pas.

Et qui se connecte avec qui en utilisant ses informations d'identification - c'est une affaire privée de chacun et je n'ai aucunement l'intention de la réglementer de quelque manière que ce soit, y compris dans ce fil de discussion.

 
SK. писал (а) >>

D'après ce que je comprends, il s'agit de la possibilité technique d'écrire un message privé sur le forum (quelque chose comme un courrier interne).

C'est exactement ce que je demandais. Merci, je pensais l'avoir encore manqué :)

 
SK. писал (а) >>

Ça marche bien avec votre programme sur un compte réel. Jusqu'à présent, tout va bien - j'ouvre sur des mouvements rapides et grâce à la visibilité et au

d'excellents outils, je réagis rapidement aux mouvements du marché. Au cours de la dernière semaine, le trading avec votre programme a été rentable.



J'ai quelques questions lorsque j'étudie le mode AT.

Afin d'obtenir toutes les réponses, je vous propose de mettre en œuvre l'algorithme ci-dessous, si l'offre est toujours valable.



L'algorithme est le suivant :
___________________________________________________________________________________________
1. Les distances entre les niveaux sont définies comme des variables externes, par exemple :
0)Lev0 = 0 ;
1)Lev1 = 40 ; (c'est-à-dire que ce niveau est éloigné de 40 points du précédent, etc.)
2)Lev2 = 40
3)Lev3 = 45
4)Lev4 = 55 ;

5)Lev5 = 60 ;
6)Lev6 = 65 ;
7)Lev7 = 75 ;
8)Lev8 = 80 ;
9)Lev9 = 85 ;

2. Les volumes des ordres ouverts à chaque niveau sont définis comme une variable externe, par exemple :
0)Lot0 = 0,01 ;
1)Lot1 = 0,01 ;
2)Lot2 = 0,01 ;
3)Lot3 = 0,03 ;
4)Lot4 = 0,06 ;

5)Lot5 = 0,12 ;
6)Lot6 = 0,24 ;
7)Lot7 = 0,48 ;
8)Lot8 = 0,96 ;
9)Lot9 = 1,92 ;
3. Sous la forme d'une variable externe, on fixe le numéro du niveau, que nous appellerons - le niveau d'inclusion de la protection, par exemple comme suit :

Protect_Lev = 5 ; (Protect_Lev >= 1 & Protect_Lev <= 9)

4. Critères d'ouverture :

4.1. NOUVEAU CYCLE DE TRADING (ТC)
4.1.1. en fonction de la valeur de l'indicateur (n'importe quel indicateur à votre discrétion) et de la valeur de la variable externe :
Trade_Type = +1 - ouvrir TP uniquement à la hausse
Trade_Type = -1 - ouvrir TP uniquement à la baisse
Trade_Type = 0 - pas de nouveau TP,
ouvrir un ordre à
Lev (0) :
- volume Lot (0)
- TP = valeur de la variable externe
- SL = 0
4.1.2. Pour tous les i = 1 à i = Protect_Lev : ordres limités
- volume = Lot (i)
- TP = à Lev(i-1)
- SL = 0
4.1.3. Au niveau Lev(Protect_Lev), un ordre stop est fixé de manière à ce qu'il se déclenche simultanément avec l'ordre limite
du même niveau
- volume = SUMM(i=0 à i = Protect_Lev):Lot (i)
-TP = 0
-SL = au niveau Lev(Protect_Lev - 1) de manière à ce que l'ordre stop se déclenche simultanément avec le TP de l'ordre limite
du même niveau

5. Critères de modification :
5.1. Lorsque l'un des ordres à cours limité se déclenche aux niveaux
Lev (i) (i = 1 à i = Protect_Lev),
les modifications d'ordre suivantes sont effectuées :
Pour tous les j = 0 à j = i - 1 : TP(j) = OP(i - 1)
5.2. Déplacement "manuel" des ordres limites
5.2.1 Lors du déplacement "manuel" des ordres limites définis selon 4.1.2. aux niveaux Lev (i) (i = 1 à i = Protect_Lev-1)
TP(i) ne doit pas changer et la position de TP(i+1) doit changer en synchronisation avec la position de l'ordre limite déplacé.
5.2.2 Lors du déplacement "manuel" de l'ordre limite fixé selon 4.1.2. au niveau Lev (Protect_Lev)
1. La position du TP(Protect_Lev) ne doit pas changer
2. L'ordre stop défini conformément au point 4.1.3 doit se déplacer de manière synchrone avec l'ordre limite, et son niveau d'arrêt
ne doit pas changer
5.3. Déplacement "manuel" d'un ordre stop
Lors du déplacement "manuel" d'un ordre stop défini selon 4.1.3. au niveau Lev (Protect_Lev)
1. La position d'arrêt de cet ordre ne doit pas changer
2. Un ordre à cours limité fixé conformément au point 4.1.2. se déplace de manière synchrone avec l'ordre stop, et le niveau de son TakeProfit
ne change pas
5.4. La position takeprofit de l'ordre du niveau Lev (i)(i = 1 à i = Protect_Lev) déclenché en dernier lieu dans la direction de TP
peut changer dynamiquement à tout moment en fonction de la valeur de la variable externe int Last_Order_TP.
La variable externe int_Order_TP fixe le pourcentage (<=100%) de distance entre les niveaux Lev (i) et Lev (i-1)
d'un takeprofit positif de l'ordre du niveau Lev (i)(i = 1 à i = Protect_Lev).
La valeur int Last_Order_TP = 100% signifie la position initiale de l'ordre take profit du niveau Lev (i)(i = 1 à i = Protect_Lev) :
TP(i) = OP(i - 1)
5.5. L'emplacement du stop (ou d'un ordre déjà ouvert sur le TP opposé) du niveau Lev(Protect_Lev)
peut changer dynamiquement à tout moment en fonction de la valeur de la variable externe int Protect_Order_SL.
La variable externe int Protect_Order_SL fixe l'arrêt de l'ordre stop des niveaux Lev(Protect_Lev) et Lev(Protect_Lev-1) en pourcentage(<=100%) de la distance
Lev (Protect_Lev).
La valeur de int Protect_Order_SL = 100% signifie la position initiale du stop au niveau de Lev(Protect_Lev), lorsque
SL(Protect_Lev) est au niveau de Lev(Protect_Lev - 1), lorsque l'ordre stop doit être fermé par le stop
en même temps que l'ordre limite de niveau Lev(Protect_Lev - 1) au takeprofit, à condition que cet ordre dimit
TP(Protect_Lev - 1) = OP(Protect_Lev - 1)
5.6. Le dernier ordre au niveau TP(i) (i = 1 à i = Protect_Lev-1) peut être clôturé à tout moment
lorsqu'il atteint un profit quelconque. Dans ce cas, tous les ordres limités aux niveaux j = i+1 à j = Protect_Lev et l'ordre stop
au niveau Protect_Lev sont supprimés et tous les ordres limités aux niveaux
j = i à j = Protect_Lev sont redéfinis selon les règles de la clause. 4.1.2. et repositionnement de l'ordre stop au niveau Protect_Lev selon les règles de la clause 4.1.3. 4.1.3.
5.7. L'ordre stop peut être fermé à tout moment lorsqu'il atteint un bénéfice quelconque.
Dans ce cas, il est nécessaire de définir
un nouvel ordre stop avec les caractéristiques de volume, TakeProfit et Stop Loss selon la clause 4.1.3. à une distance égale à la valeur de la variable externe int Protect_Order_DS de son prix de clôture. Ensuite, sa "remontée" en suivant le cours devrait être organisée.
En remontant l'ordre stop, surveillez l'Equity et le Balance. Si l'équité dépasse le solde, tous les ordres ouverts doivent être fermés
et l'ordre stop doit être supprimé.



NOTE : 1. L'algorithme donné fonctionne très bien. J'ai un conseiller expert qui fonctionne sur cette base ; certaines des fonctions du site
sont effectuées manuellement. La direction du cycle de trading est également sélectionnée manuellement sur la base des lectures V.T.E.
Les paramètres de niveaux et de lots ci-dessus fournissent jusqu'à 20 livres par jour sur le symbole NZDUSD.
Le point critique de l'algorithme est décrit au point 5.7. L'essentiel ici est de ne pas se précipiter et d'attendre un appartement.
Et en général, il est nécessaire de "prendre le coup de main"
2. Bien entendu, lors de la mise en œuvre de cet algorithme dans le système SK, certaines modifications sont possibles en ce qui concerne
.

Pour définir les valeurs des variables externes.

______________________________________________________________________________________________________________________

Sincèrement - S.D.

 
SK, Sergey, nous avons besoin d'une instruction simple et claire sur la programmation de fonctions avec des signaux de trading. Mais sans beaucoup de liens vers des choses incompréhensibles. L'ensemble du manuel peut compter une douzaine de phrases tout au plus. Les gens demandent, et le produit est le vôtre, vous devez y être directement intéressé.
 
Integer писал (а) >>
SK, Sergei, nous avons besoin d'une instruction simple et claire pour programmer des fonctions avec des signaux de trading. Mais ne fournissez pas beaucoup de liens vers des choses incompréhensibles. Le manuel entier peut contenir une douzaine de phrases tout au plus. Ils demandent aux gens, et le produit est le vôtre, ils doivent être directement intéressés par celui-ci.

Je comprends parfaitement le sens de ce que vous écrivez. Mais ça ne marche pas comme ça.

--

En eaux neutres, près d'un croiseur américain, un sous-marin sans pilote plonge.

Le Bosun sort : "Hé, sur le croiseur, donne-moi la direction de l'Afrique."

Depuis le croiseur : "Nord Nord Ouest 234... longitude..."

Bosun : "Non, tu me montres avec ta main où tu vas."

--

Ça ne va pas marcher.

=============================

Quant aux codes personnalisés pour AutoGraf 4.

Il existe deux fonctionnalités.

.
1. L'utilisateur transfère l'algorithme en MQL4 de son EA vers la fonction de trading automatique avec le nom prédéfini AG_AT.ex4.

Son fonctionnement est très facile à comprendre. Jetez un coup d'œil au schéma à l'adresse http://autograf.dp.ua/Pages/2/26/267/2671.htm.

La flèche bleue inférieure va de la fonction AT auto-trade personnalisée au serveur. Cela signifie que le code écrit par un utilisateur dans cette fonction est exécuté simplement par les règles d'exécution des codes MQL4. Cela signifie que tout ce qui peut être fait dans MQL4 y est disponible : les ordres peuvent être ouverts, fermés et modifiés, les objets graphiques peuvent être définis, les indicateurs techniques et personnalisés peuvent être utilisés.

Dans cette partie, le programmeur n'a pas besoin de mes conseils. Toutes les fonctions du MQL4 sont à votre service.

La seule chose à garder à l'esprit est que l'expert AG_exp.ex4 est en boucle, et qu'il est appliqué environ 200 fois par seconde. À chaque itération, la fonction AG_AT.ex4 est appelée. C'est-à-dire, pas à chaque tic, mais entre les tics.

.

2. il est possible de contrôler les outils de l' AutoGraf 4 à partir de la fonction personnalisée AG_AT.ex4.

La manière de procéder est impossible à décrire en un seul mot.

L'application utilise un tableau à 4 dimensions qui est disponible pour l'analyse dans la fonction de trading automatique définie par l'utilisateur AG_AT().

Les particularités d'installation et de suppression de chaque outil sont décrites sur le site. Pour chaque outil, un exemple d'utilisation est donné. Les codes contiennent des commentaires détaillés. Les exemples sont installés sur le PC de l'utilisateur lors de l'installation. Pour voir comment fonctionne l'exemple, il suffit de prendre un fichier dans le sous-répertoire \experts\libraries\Example_AT et de le placer dans le répertoire \experts\libraries à la place de celui qui s'y trouve déjà. Et ensuite, allumez-le et voyez comment il fonctionne. Vous pouvez le faire dans le testeur en mode visualisation.

==

Je suis très intéressé à communiquer à chaque utilisateur-programmeur comment cela fonctionne.

Quant à la suggestion de Sart, je dois y réfléchir. Jusqu'à présent, il est clair qu'il ne peut pas être mis en œuvre sous cette forme - personne n'y comprendra rien. Nous avons besoin de quelque chose de plus simple. Je vais y réfléchir pendant un moment.

 

La blague était Zuid-Zuid-West et la réponse correcte était : " Tu ne me zuid pas, tu pointes ton doigt ". On a découvert quelque chose :

Нижняя синяя стрелка идёт от пользовательской функции автоматической торговли АТ на сервер. Это значит, что код, прописанный пользователем в этой функции, исполняется просто по правилам исполнения MQL4 - кодов. Это значит, что там можно всё, что можно в MQL4 - открывать, закрывать и модифицировать ордера, выставлять графические объекты, использовать технические и пользовательские индикаторы.

Dans cette partie, le programmeur n'a pas besoin de conseils de ma part. Toutes les fonctionnalités de MQL4 sont à votre service.

Ce n'est pas clair, alors quelle est l'implication de votre programme dans ce domaine ?


Peut-être, je suis intéressé par la flèche supérieure allant vers l'unité d'analyse. Quelles sont les fonctions du bloc analytique ? Quelles sont les fonctions du bloc commercial ? Les descriptions des blocs d'analyse et de négociation sur la page n'ont pas été trouvées, j'ai trouvé quelques liens par Javascript, mais ils sont défaillants dans mon navigateur pour une raison quelconque.

Il ne peut y avoir qu'une seule fonction de trading automatique ? Comment est-il possible de modifier ses paramètres ? Où doit se trouver le fichier AG_AT.ex4 ?

Il est impossible de dire comment le faire en un seul mot.

Alors écrivez un manuel ou suggérez-vous que vous devez nécessairement installer AutoGraf sur votre ordinateur, et éplucher tout le code de ses milliers de fichiers ?

Les particularités d'installation et de suppression de chaque outil sont décrites sur le site.

Pourquoi en avez-vous besoin ? (pour moi). Vous avez besoin d'une description concrète et concise de l'interface de ces outils pour interagir avec eux depuis AG_AT.

 

>> Pas clair, alors, quelle est l'implication de votre programme dans ce domaine ?

L'implication est évidente :

1. L'utilisateur peut, à sa discrétion, activer ou désactiver l'exécution de l'algorithme AT à tout moment.

2. L'utilisateur peut intervenir manuellement dans le processus de négociation en même temps que l'exécution de l'algorithme AT.

3. L'utilisateur peut installer et supprimer des outils qui s'exécuteront simultanément à l'exécution de l'algorithme AT.

.

>>Je suppose que je suis intéressé par la flèche supérieure qui va vers l'unité d'analyse. Quelles sont les fonctions du bloc analytique ? Quelles sont les fonctions du bloc commercial ?

Le bloc analytique et le bloc commercial ne sont que provisoirement représentés dans le schéma pour illustrer le rôle des modes d'AutoGraf 4.

Le groupe de fonctionsanalytiques est destiné à soutenir le fonctionnement du programme. En particulier, le but de certains d'entre eux est :

1. l'application des règles d'exigence et de permission lors de l'installation des outils. Par exemple, sur StopLoss, il est impossible de régler les outils 1 et 2 (Pull Up et Pull Down) pour qu'ils fonctionnent simultanément. Cela n'est pas techniquement faisable. Si l'utilisateur tente de le faire, un nouvel instrument est défini et l'ancien est supprimé.

2. analyser si des messages doivent être affichés à l'utilisateur.

3. l'analyse des actions des utilisateurs. Refus d'exécuter des actions incorrectes de l'utilisateur.

4. l'exécution des actions de contrôle d'un utilisateur.

5. Former des ordres commerciaux en fonction des conditions commerciales actuelles.

Les fonctions d'un bloc commercial sont également évidentes :

1. Maintenir les opérations commerciales - envoi des ordres au serveur et analyse des erreurs.

2. En général, le bloc de négociation met en œuvre la négociation sur la base des priorités de négociation décrites ici :

http://autograf.dp.ua/Pages/2/26/264.htm, ici http://autograf.dp.ua/Pages/2/26/262.htm et ici http://autograf.dp.ua/Pages/2/26/263.htm.

.

>> J'ai trouvé des liens via javascript, mais ils ne fonctionnent pas dans mon navigateur pour une raison quelconque.

Veuillez me donner un lien vers la page défectueuse (le site a été vérifié pour IE, Opera et FF).

.

>>Peut-il y avoir une seule fonction de trading automatique ?

Oui. Il est prévu d'étendre le nombre de fonctions utilisées.

.

>>Comment pouvez-vous modifier les paramètres de cette fonction ?

Les paramètres d'une seule fonction ne peuvent pas être modifiés pendant le fonctionnement. Les paramètres sont choisis lors de la phase de conception.

Cette question doit être discutée. Techniquement, il est possible d'entrer des paramètres comme variables externes d'AutoGraf et de les passer à AG_AT() via des tableaux. Mais cette approche présente des inconvénients : le nombre de ces paramètres n'est pas très clair. Une autre option est personnalisée : vous pouvez entrer les changements de paramètres via un script et les variables globales du cl.terminal.

Quoi qu'il en soit, il faut tenir compte du fait qu'il est impossible d'afficher le panneau de configuration d'une fonction distincte à l'aide des outils MQL4.

.

>>Où se trouve le fichier AG_AT.ex4 ?

C'est écrit ici http://autograf.dp.ua/Pages/2/26/267/2672.htm. Lisez-le.

.

>>Ensuite, écrivez l'instruction.

>>C'estcomme ça que ça se passe. Tout le site est constitué d'instructions détaillées. Plus précisément :

1. Chaque outil est présenté sur une page séparée. Pour chaque outil, il existe des règles en matière de permissions, de restrictions et d'exigences. (par exemple, un niveau sonore d'instrument ne peut pas être placé sur une commande ; un tirage de ligne de commande ne peut pas être placé sur le terrain de jeu ; un outil de limitation nécessite un tirage d'accompagnement - un outil de limitation). Section AutoGraf 4 >Outils.

2. Tout le contenu d'AutoGraf 4 > Gérer les commandes > Fonction AT correspond exactement à ce qui vous intéresse.

3. Pour chaque outil, vous trouverez un exemple de son utilisation AutoGraf 4 > Gestion des commandes > Fonction AT > Exemples de fonctions AG_AT.

.

>>Pourquoi ? (à moi). Vous avez besoin d'une description concrète et concise des interfaces de ces outils pour interagir avec eux depuis AG_AT.

Sans cela, vous ne pouvez pas créer le code pour contrôler les outils à partir d'une fonction utilisateur.

 
Integer писал (а) >>

La blague était Zuid-Zuid-West et la réponse correcte était - Ne me zuid pas, pointe ton doigt. Il y a eu un imprévu :

Il n'est pas clair, alors, quelle est l'implication de votre programme dans ce domaine ?

A quoi ça sert ? (à moi). Vous avez besoin d'une description concrète et concise de l'interface de ces outils pour interagir avec eux à partir d'AG_AT

Vous semblez très énergique...
À mon avis, tout est assez simple en principe :
Votre programme reçoit ces variables en entrée -
int Parol_AT,
double Order[][],
string Object[],
double Instrument[][][],
int Ddraw_Object[][],
double& Tuning[],
double& Manager[][],
string& Message[] )
Ici, les variables sans esperluette sont des entrées - elles affichent l'état actuel du commerce,
avec esperluette - des sorties et avec leur aide vous formez des commandes de gestion des ordres (plutôt des macros) pour l'autographe,
qu'il exécute.
Ainsi, le rôle de l'autographe est le suivant :
1. Il envoie l'état actuel du commerce à votre programme sous une forme très pratique pour l'analyse
2. Vous analysez cet état actuel dans votre programme et formez des commandes de travail (macros) - des actions de contrôle pour l'autographe,
que l'autographe exécute dès qu'il reçoit le contrôle en retour de votre programme.


Par exemple, un autographe
trouve indépendamment toutes les commandes et enregistre toutes leurs caractéristiques sous une forme matricielle digeste :double Order[][].
Chaque ligne de cette matrice représente une commande. Les colonnes de cette ligne représentent les caractéristiques de l'ordre.
Vous pouvez trouver, par exemple, un ordre qui vous intéresse par sa colonne Magic_Number et, si nécessaire,
, par exemple, définir un stop suiveur (avec les caractéristiques nécessaires) pour cet ordre.
Pour ce faire, utilisez la fonction
int AG_Set_Instr(double& Manager[][], int ii, double v1, double v2, double v3,
double v4, double v5, double v6, int Ticket , int ih)
Vous devez définir l'instrument requis pour cet ordre et l'authentification le tracera d'elle-même. Tous ces outils ont des numéros 1, 2,...

Naturellement, pour travailler vous devez :
1.étudier les instruments qui vous intéressent
2. étudier la structure de tous les tableaux d'entrée

En principe, il est vrai que l'Autograf, en exécutant des outils et en suivant l'état actuel du trading, prend sur lui toute la partie technique de l'écriture d'un Expert Advisor.

Vous pouvez parler de structures de données complexes, mais, à mon avis, ces structures sont conçues de manière très intelligente et naturelle.

Lorsque j'écris moi-même des EA à partir de zéro, pour ainsi dire, j'aborde souvent moi-même la conception de ces structures de données, et je ne suis pas le seul.

Salutations - S.D.

 

Sart:

На:


Je pense moi aussi que c'est simple, mais tellement de rhétorique que l'on ne voit pas la forêt pour les arbres. Une question et un tas de références en réponse.

SK :

Les paramètres d'une fonction individuelle ne peuvent pas être modifiés pendant le fonctionnement. Les paramètres sont sélectionnés au stade de la conception.

Au-delà des éloges ! !! Et où le mettre ? .... "Hussards, silence !" (© Lieutenant Rzhevsky)

Le bloc analytique et commercial est représenté sur le schéma de manière conventionnelle

Y a-t-il quelque chose là-dedans de spécifique, non conventionnel ?

En général, tant de texte, et si peu de sens, peut-être devriez-vous acheter un élargisseur de main - pour étirer les doigts afin d'écrire uniquement sur l'essentiel. Encore une fois, pour la 555e fois, vous avez énuméré toutes les fonctions. La personne qui n'a rien à voir avec ce développement, et a ensuite répondu, de manière claire et concise (Sart). Partout où vous vous tournez, vous voyez presque le même texte.

Pour supprimer ou fermer un ou plusieurs ordres définis par l'utilisateur, il faut mettre en surbrillance les lignes d'ordre concernées avec la souris et appuyer sur la touche Suppr.

Comment cela fonctionne-t-il ? Il suffit de supprimer la ligne et la commande sera fermée immédiatement ? Est-ce que je fais une erreur ? Peut-être que ce serait mieux de s'asseoir sur la bombe alors ?

 
Integer писал (а) >>

Comment cela fonctionne-t-il ? Il suffit de supprimer la ligne et l'ordre se ferme immédiatement ? Est-ce que je fais une erreur ? Ne serait-il pas mieux de s'asseoir sur la bombe alors ?

Mercredi, comme si, je voulais supprimer la ligne verticale et j'ai mis en évidence par erreur la ligne d'ordre de vente pour l'euro. Appuyez sur Delet, l'ordre est fermé et la ligne est supprimée.

L'ordre était en petite perte, j'ai abandonné et je suis allé fumer une cigarette. Je suis revenu 10 minutes plus tard, et l'euro avait déjà baissé de 100 p.


Mais en général, je dois dire honnêtement et franchement, je pense que la boîte à outils SK est formidable. Avec un peu de pratique, il est tout simplement impossible de perdre.

J'ai même commencé à développer une nouvelle tactique de jeu, impossible à mettre en œuvre sans ce genre de boîte à outils permettant de réagir très rapidement aux mouvements du marché.


Je ne me prononce pas sur le mode AT, je ne l'ai pas étudié en détail. Cependant, la première chose que j'ai remarquée (et vous aussi) :

" Les paramètres d'une seule fonction ne peuvent pas être modifiés au moment de l'exécution. Les paramètres sont sélectionnés au stade de la conception."

Le mot de passe est transmis, mais les paramètres ne le sont pas. Vous pourriez au moins fournir une variable de type chaîne, et ce n'est pas un problème de comprendre la chaîne,

d'autant plus que le dialogue du Trader avec le programme AT est fourni.