Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 6. - page 401

 
vadynik:


Je n'ai peut-être pas demandé exactement ce que je voulais dire, je veux dire, est-ce que la fonction verra un magik qui est défini dans une variable globale

Bien sûr que oui.

Lesvariables globales sont globales car elles sont visibles à l'échelle mondiale.

Qu'est-ce qui n'est pas clair ?

----

mais en respectant les bonnes manières - passez tous les paramètres dans la fonction, ce qui la rendra plus indépendante de l'environnement d'appel.

La raison en est d'abstraire les noms des variables à l'intérieur de la fonction des noms des variables globales.

 
Si de telles questions se posent, je demande et j'obtiens une réponse sur le forum Frechev, bien sûr il est difficile de choisir la bonne parmi tous les conseils.
 

sergeev:

yan720:


Pouvez-vous me dire si AccountEquity() interroge le terminal ou le courtier ?

au terminal

Merci. Il semble que cette information soit envoyée au terminal avec chaque paquet...

Et où puis-je voir quelles fonctions sont adressées au courtier et lesquelles au terminal ? Ou peut-être y a-t-il une liste de données (variables) qui sont transmises en permanence du courtier au terminal, et/ou celles qui doivent être reçues sur une demande séparée ?

 
//|+-------------------------------------------------------------------------------------------------------+
int Accounting_Orders()
{
int Counter_Orders = 0;
//|+-------------------------------------------------------------------------------------------------------+
ArrayCopy (Massif_Old_Orders, Massif_New_Orders);
Counter_Orders = 0;
ArrayInitialize (Massif_New_Orders,0);
ArrayInitialize (Massif_All_Orders,0);
//|+-------------------------------------------------------------------------------------------------------+
for(int q = 0; q < OrdersTotal(); q++)
{
if( (OrderSelect(q,SELECT_BY_POS)==true) && (OrderSymbol() == Symbol()) )
{
Counter_Orders++;
Massif_New_Orders[Counter_Orders][1] = OrderOpenPrice();
Massif_New_Orders[Counter_Orders][2] = OrderStopLoss();
Massif_New_Orders[Counter_Orders][3] = OrderTakeProfit();
Massif_New_Orders[Counter_Orders][4] = OrderTicket();
Massif_New_Orders[Counter_Orders][5] = OrderLots();
Massif_All_Orders[OrderType()]++;
Massif_New_Orders[Counter_Orders][6] = OrderType();
Massif_New_Orders[Counter_Orders][7] = OrderMagicNumber();
//|+-------------------------------------------------------------------------------------------------------+
if ( OrderComment() == "" )
{
Massif_New_Orders[Counter_Orders][8] = Order_False;   
}
else
{
Massif_New_Orders[Counter_Orders][8] = Order_True;
}
//|+-------------------------------------------------------------------------------------------------------+
Massif_New_Order[0][0] = Counter_Orders;
//|+-------------------------------------------------------------------------------------------------------+
return;
  }
//|+-------------------------------------------------------------------------------------------------------+
Comment utiliser la fonction de comptabilité des commandes, et plus particulièrement les tableaux qui la composent ?

Option 1.
Je suppose que vous devez insérer certains tableaux à des endroits identifiés dans le code.
Par exemple :
OrderSend(Massif_New_Orders[Counter_Orders][4], // Уникальный номер 1.
Massif_New_Orders[Counter_Orders][6],           // Тип .
Massif_New_Orders[Counter_Orders][5],           // Кол - во лотов, при торге.
Massif_New_Orders[Counter_Orders][1],           // Тип части бара, на котором происходит открытие позиции.
10,                                             // Допустимое проскальзование.
Massif_New_Orders[Counter_Orders][2],           // Остановка потерь.
Massif_New_Orders[Counter_Orders][3],           // Принятие прибыли. 
Massif_New_Orders[Counter_Orders][7]);          // Уникальный номер 2.
Alors mon esprit se pose une autre question :

- Est-il utile d'utiliser des tableaux ? -.
Je comprends que les tableaux sont utilisés pour les variables de type unique, mais la fonction de maintien de l'ordre "ne sent pas" les variables de type unique.

Option 2.
Je pense que la fonction tableau déjà affectée est appelée lorsqu'il est nécessaire d'utiliser des données de commande stockées (ordre).
Par exemple :

if(Old_Sistem = 12475)                         //Если расчет объема торга надо вести по объему торга предыдущих ордеров,
{                                              //то 
O_Lots = Massif_New_Orders[Counter_Orders][5]; //вызывается значение лота предыдущего ордера из накопленной информации о ордерах.
}                                              //Конец.
 
yan720:



Merci. Il semble que cette information soit transmise au terminal avec chaque paquet...

Et où puis-je voir quelles fonctions s'adressent au courtier et lesquelles au terminal ? Ou peut-être y a-t-il une liste de données (variables) qui sont transmises en permanence du courtier au terminal, et/ou celles qui doivent être reçues sur une demande séparée ?

Fonctions de négociation. Seulement, ils envoient une demande spécifique au serveur commercial et reçoivent une réponse de celui-ci.
 
Link_x:
Comment utiliser la fonction de comptabilité des commandes, et plus particulièrement les tableaux qui la composent ?

Option 1.
Je suppose que vous devez insérer certains tableaux à des endroits identifiés dans le code.
Par exemple :
Alors mon esprit se pose une autre question :

- Est-il utile d'utiliser des tableaux ? -.
Je comprends que les tableaux sont utilisés pour les variables de type unique, mais la fonction de maintien de l'ordre "ne sent pas" les variables de type unique.

Option 2.
Je pense que la fonction de tableau déjà affectée est appelée lorsqu'il est nécessaire d'utiliser des données de commande stockées (ordre).
Par exemple :

Je pense que c'est une perte de temps. Toutes les informations sur les ordres ouverts et fermés sont stockées dans le terminal. Pourquoi le dupliquer dans des tableaux ? Il est important d'apprendre à l'extraire du terminal.
 
yan720:

Merci. Il semble que cette information soit transmise au terminal avec chaque paquet...

Ce n'est pas un fait que l'équité est transmise tout le temps.

Il est plus probable qu'il soit calculé par le terminal lui-même, sur la base de vos positions ouvertes.

Et où peut-on voir quelles fonctions s'adressent au courtier et lesquelles au terminal ?

Nulle part. Utilisez votre bon sens.

 
khorosh:
Je pense que c'est une perte de temps. Toutes les informations sur les ordres ouverts et fermés sont stockées dans le terminal. Pourquoi le dupliquer dans des tableaux ? L'important est d'apprendre à l'extraire du terminal.


Ces informations sont probablement extraites par certaines commandes.
Est-ce que c'est OrderSend?
 
Link_x:

Ces informations sont probablement récupérées par une commande spécifique.
Est-ce que c'est OrderSend ?
Il s'agit d'envoyer une demande de transaction au serveur.
 
Link_x:

Ces informations sont probablement récupérées par une commande spécifique.
Est-ce que c'est OrderSend ?
Lisez les fonctions de KimIV et vous verrez que la plupart d'entre elles sont conçues pour récupérer des informations sur les ordres ouverts ou fermés.
Raison: