AutoGraf Série 4 - Fonctionnalités MQL. - page 32

 
Integer писал(а) >>
Quel script ?

Je l'ai trouvé et j'ai jeté un coup d'oeil. Tout le monde ici doit agir selon le principe "ne pas se tenir sous la flèche", la confiance en soi de l'auteur est à couper le souffle, pas question d'y aller.

 
ForexTools >> :
J'ai supprimé tous mes messages non liés à la discussion sur l'AG. J'appelle les autres "free riders" à faire de même - respectons le travail des autres : ce n'est pas propre là où (les modérateurs) nettoient, mais là où (les utilisateurs) ne jettent pas de détritus ;)

Merci à sabluk d'avoir compris et soutenu mon "initiative". Peut-être que d'autres suivront notre exemple ?

 

Une nouvelle version de la série AG 4 - AutoGraf 4.90207 a été publiée.

Des modifications ont été apportées :
1. Ajout d'une option pour mettre en sourdine les tics.
2. correction de l'erreur de gestion des instruments 17 et 20 (lorsque le mode AG ou AT était désactivé, lorsque le prix du marché de l'instrument atteignait le prix d'exercice, l'instrument n'était pas supprimé ; maintenant il est supprimé automatiquement).
Téléchargez la nouvelle version ici http://autograf.dp.ua/Pages/4/421.htm.

 

AutoGraf 4 a résisté décemment à l'innovation du 5ème signe.(http://forum.alpari-idc.ru/thread44876.html)


Il fonctionne simplement comme avant. Aucune modification n'est nécessaire (c'est parce qu'il est écrit correctement - le programme n'utilise pas de valeurs variables, définies numériquement - tout est construit sur des variables, mises à jour au fur et à mesure qu'elles changent sur le serveur, en particulier, Point, Digits, StopLevel etc.) )

Les changements naturels qui doivent être effectués dans les paramètres du conseiller expert concernent les valeurs prédéfinies des paramètres de prix. Par exemple, SL (StopLoss en pips) = 25, il doit maintenant être fixé à 250 ou à toute valeur à la discrétion de l'utilisateur, mais pas moins de 100 (c'est-à-dire pas moins que la valeur actuelle de StopLevel). Procédez de la même manière avec les autres paramètres.

Après le réglage des paramètres (dans la fenêtre des paramètres experts), il est recommandé d'enregistrer (là) les paramètres. Par ailleurs, il est recommandé de créer un nouveau modèle : bouton Modèles - Enregistrer sous.

===

Un jour, des cinéastes ont filmé l'explosion d'une vieille maison.
Ils ont mis les explosifs dans... Boom ! La maison est debout. Ils en ont planté d'autres. Boom ! Le rez-de-chaussée s'effondre. Toute la partie supérieure (4 étages) ne s'est pas effondrée, la maison s'est juste affaissée d'un étage. Il a finalement réussi à exploser à la 5e tentative.

L'entreprise de construction a acheté le film pour beaucoup d'argent et a fait de la publicité pour la qualité de son travail en montrant le film :)

 

Mesdames et messieurs !

Veuillez répondre à la question.

Comment l'application peut-elle distinguer que la fonction AT lui donne des instructions (par exemple, en se référant au terminal) et qu'elle ne fait pas de commerce elle-même ?

Исполнение функции АТ связано с двумя основными возможностями.

La première est que la fonction AT peut négocier par elle-même - elle forme des ordres de négociation et les envoie au serveur. Dans ce cas, la fonction ne peut pas traiter les données reçues de l'application (ou en manipuler certaines), mais elle peut effectuer ses propres calculs en utilisant toutes les fonctionnalités du langage MQL4, y compris l'adressage du terminal pour le traitement des ordres, l'obtention des cotations actuelles, le calcul des critères de négociation, la gestion des objets graphiques, etc.

La deuxième fonctionnalité est directement liée à l'application AutoGraf 4. Cette fonction peut demander à l'application AutoGraf 4 d'installer tous les outils nécessaires avec des paramètres prédéfinis sur des ordres spécifiques ou un graphique de prix, de modifier les paramètres généraux de l'application, de supprimer des outils, d'afficher des messages à l'utilisateur, etc. (paramètres de sortie). (paramètres de sortie).

 

Mesdames et messieurs !

Veuillez répondre à une question.

Dans l'exemple ci-dessus de la fonction Custom Auto Trade dans "Exemple 2. Ouverture et fermeture des ordres de marché" Les ordres de marché sont ouverts, mais je pense que les ordres en attente sont fermés.

//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж
// AG_AT.mq4                                             Пример 0 (инструментов нет)
// Пользовательская функция Автоматической Торговли.
// Используется при построении функции автоматической торговли для приложения AutoGraf 4
// Сергей Ковалёв, Днепропетровск, sk@autograf.dp.ua, ICQ 64015987, http://autograf.dp.ua
//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж 0 жж
#property library   
 
#import "AG_Lib.ex4"
   int AG_Magic_Number();                          // Вычисление MN 
   int AG_Message(string& Message[], string _Text);// Запись сообщений в массив Message[]
#import "AG_Trade_Criterion.ex4"
   int AG_Trade_Criterion_1();                     // Ф-ия определен. торгов. критериев 1
   int AG_Trade_Criterion_2();                     // Ф-ия определен. торгов. критериев 2
#import
//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж 1 жж
.......
//================================================================================== 7 ==
/*
                                       // Cнять блок комментариев с Примера 2
                                       // и закомментировать Пример 1
                                       // Пример 2. Открытие и закрытие рыночных ордеров.
   int Crit = AG_Trade_Criterion_2();  // Вызов функции вычисления торговых критериев
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   if (OrdersTotal()==0)               // Если нет ордеров, то интересуемся ..
      {                                // .. критериями открытия
      switch(Crit)                     // В этом блоке рассматриваются критерии открытия
         { 
         case 10:                      // Торговый критерий = Открыть_Buy
            MN = AG_Magic_Number();    // Вычисление MagicNumber (рекомендуется)
                                       // Открытие ордера Buy:
            OrderSend(Symbol(),OP_BUY, 0.1,Ask,2,Bid-100*Point,Bid+40*Point,Comm,MN); 
            break;
         case 20:                      // Торговый критерий = Открыть_Sell
            MN = AG_Magic_Number();    // Вычисление MagicNumber (рекомендуется)
                                       // Открытие ордера Sell:
            OrderSend(Symbol(),OP_SELL,0.1,Bid,2,Ask+100*Point,Ask-40*Point,Comm,MN);
         }
      }
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   if (OrdersTotal()==1)               // По стратегии возможен только 1 рыночный ордер
      {
      switch(Crit)                     // В этом блоке рассматриваются критерии закрытия
         {
         case 11:                      // Торговый критерий = Закрыть_Buy
            if (NormalizeDouble(Order[1][6],0) == 0.0)            // Если тип ордера Buy
               {                                      
               int _Ord_Ticket = NormalizeDouble(Order[1][4],0);  // Номер ордера
               double _Ord_Lots = NormalizeDouble(Order[1][5],2); // Полное закрытие
               OrderClose(_Ord_Ticket, _Ord_Lots, Bid, 2);        // Закрыть ордер Buy
               }
            break;
         case 21:                      // Торговый критерий = Закрыть_Sell
            if (NormalizeDouble(Order[1][6],0) == 1.0)      // Если тип ордера Sell
               {
               _Ord_Ticket = NormalizeDouble(Order[1][4],0);// Номер ордера
               _Ord_Lots = NormalizeDouble(Order[1][5],2);  // Будем закр.ордер полностью
               OrderClose(_Ord_Ticket, _Ord_Lots, Ask, 2);  // Закрыть ордер Sell
               }
         }
      }
*/
//================================================================================== 8 ==
   return(1);
   }
//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж Конец модуля жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж 10 жж
if (NormalizeDouble(Order[1][6],0) == 0.0)            // Если тип ордера Buy
и
if (NormalizeDouble(Order[1][6],0) == 1.0)            // Если тип ордера Sell 

Ou peut-être que je comprends mal quelque chose ?

Общее количество ордеров в приложении AutoGraf 4 не должно превышать 30. Нумерация ордеров в приложении AutoGraf 4 начинается с 1. Нулевой индекс в первом измерении массива Order[][] для учёта параметров ордеров не используется. Поэтому массив Order[][] в первом измерении имеет размерность 31. Каждая строка в массиве соответствует одному ордеру и содержит значения следующих параметров ордеров:

[0][0] - nombre total de commandes ;

[] [0] - non utilisés ;

[1][1] - OpenPrice - prix d'ouverture (fixation) d'un ordre (valeur absolue du prix) ;

[][2] - StopLoss de l'ordre (valeur absolue du prix) ;

[][3] - Ordre TakeProfit (valeur absolue du prix) ;

[][4] - NumberOrders numéro de la commande ;

[][5] - Nombre de lots de la commande ;

[][6] - Type d'ordre (0=B, 1=S, 2=BL, 3=SL, 4=BS, 5=SS,Trades) ;

[][7] - MagicNumber - Le numéro magique de la commande ;

[][8] - 0/1 commentaire fait ;

[][9] - PrOld- prix initial de l'ouverture de l'ordre (valeur absolue du prix).


Du manuel :

Type d'opération pour la fonction OrderSend(). Il peut s'agir de l'une des valeurs suivantes :

Constant Valeur Description
OP_BUY0Acheter
OP_SELL1Vendez
OP_BUYLIMIT2Ordre en attente BUY LIMIT
OP_SELLLIMIT3Ordre SELL LIMIT en attente
OP_BUYSTOP4Ordre BUY STOP en attente
OP_SELLSTOP5Ordre SELL STOP en attente

C'est-à-dire qu'il devrait l'être :

if (NormalizeDouble(Order[1][0],0) == 0.0)            // Если тип ордера Buy
и
if (NormalizeDouble(Order[1][1],0) == 1.0)            // Если тип ордера Sell 
 

Mesdames et messieurs !

Veuillez répondre à ma question.

Pourquoi le nom de ma stratégie "L_1" n'est-il pas mémorisé dans les propriétés de l'EA ?


Lors de l'installation de AG_exp. je l'ai noté, il est affiché dans la ligne, mais il n'est pas mémorisé dans les propriétés ?

 

Mesdames et messieurs !

Veuillez répondre à une question.

Lors de la fermeture d'une application ou après sa désinstallation, comment supprimer les objets graphiques non pris en charge par l'application. Par exemple, comme OBJ_ARROW ?

 
LeonidSB писал(а) >>

C'est-à-dire qu'il devrait l'être :

if (NormalizeDouble(Order[1][0],0) == 0.0)            // Если тип ордера Buy
и
if (NormalizeDouble(Order[1][1],0) == 1.0)            // Если тип ордера Sell 

Non, pas bien. Regardez à nouveau le tableau (exemple de jeu de commandes) sur http://autograf.dp.ua/Pages/2/26/267/2674.htm.

Cette page décrit également comment les indices du tableau correspondent aux paramètres contenus dans le tableau. Veuillez noter que nous parlons ici d'un index dans la deuxième dimension du tableau Order[][].

[0][0] - nombre total de commandes ;

[] [0] - non utilisés ;

[][1] - OpenPrice - prix auquel l'ordre est ouvert (fixé) (valeur absolue du prix) ;

[][2] - StopLoss de l'ordre (valeur absolue du prix) ;

[][3] - Ordre TakeProfit (valeur absolue du prix) ;

[][4] - NumberOrders numéro de la commande ;

[][5] - Nombre de lots de la commande ;

[][6] - Type d'ordre (0=B, 1=S, 2=BL, 3=SL, 4=BS, 5=SS, Trades) ;

[][7] - MagicNumber - Le numéro magique de la commande ;

[][8] - 0/1 commentaire fait ;

[][9] - PrOld- prix initial d'ouverture de l'ordre (valeur absolue du prix).

---------------

Le paramètre "Type d'ordre" correspond à l'indice 6 dans la deuxième dimension du tableau Order[][].

if (NormalizeDouble(Order[1][6],0) == 0.0)            // Если тип ордера Buy
и
if (NormalizeDouble(Order[1][6],0) == 1.0)            // Если тип ордера Sell 
 
LeonidSB писал(а) >>

Mesdames et messieurs !

Veuillez répondre à ma question.

Pourquoi le nom de ma stratégie "L_1" n'est-il pas mémorisé dans les propriétés de l'EA ?

Lorsque je règle AG_exp. je l'ai noté, il est affiché dans la ligne, mais il n'est pas mémorisé dans les propriétés ?

Si vous le faites correctement, vous devriez vous en souvenir.

Et elle sera mémorisée jusqu'à ce que vous déchargiez le conseiller expert de la fenêtre.

Vous pouvez faire l'une des deux choses suivantes, si vous ne voulez pas le saisir à nouveau la prochaine fois :

1. Enregistrez le conseiller expert que vous avez défini comme modèle. Commencez un nouveau chargement à partir d'un nouveau modèle.

2. Sauvegarder les paramètres du conseiller expert (bouton Sauvegarder dans la fenêtre Préférences), et charger les paramètres lors du prochain chargement du conseiller expert (bouton Charger dans la fenêtre Préférences).

Vous pouvez trouver l'ordre d'attachement des stratégies ici : http://autograf.dp.ua/Pages/2/26/267/26711/26711_2.htm.

LeonidSB a écrit :>>

Chérie !

Veuillez répondre à la question.

Lors de la fermeture d'une application ou après sa désinstallation, comment supprimer les objets graphiques non pris en charge par l'application. Comme OBJ_ARROW ?

Sélectionnez l'objet et supprimez-le (appuyez sur Supprimer).
Si c'est par programmation, vous pouvez utiliser ObjectsDelete() ou ObjectsDeleteAll().

Raison: