Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 6. - página 401

 
vadynik:


Puede que no haya preguntado exactamente lo que quería decir, me refiero a si la función verá un magik que se establece en una variable global

por supuesto que sí.

Lasvariables globales son globales porque son visibles globalmente.

¿qué no está claro?

----

pero siguiendo las buenas costumbres - pasar todos los parámetros a la función, lo que la hará más independiente del entorno de llamada.

La razón de esto es abstraer los nombres de las variables dentro de la función de los nombres de las variables globales.

 
Si surgen estas preguntas, pregunto y obtengo una respuesta en el foro de Frechev, claro que es difícil elegir la correcta entre todos los consejos.
 

sergeev:

yan720:


¿Puede decirme si AccountEquity() consulta el terminal o el corredor?

a la terminal

Gracias. Parece que esta información se envía al terminal con cada paquete...

¿Y dónde puedo ver qué funciones están dirigidas al corredor y cuáles al terminal? ¿O tal vez hay una lista de datos (variables) que se transmiten desde el corredor al terminal todo el tiempo, y/o los que necesitan ser recibidos en una solicitud separada?

 
//|+-------------------------------------------------------------------------------------------------------+
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;
  }
//|+-------------------------------------------------------------------------------------------------------+
¿Cómo utilizar la función de contabilidad de pedidos, concretamente las matrices que la componen?

Opción 1.
Supongo que tienes que insertar ciertas matrices en lugares identificados en el código.
Por ejemplo:
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.
Entonces mi mente se pregunta otra cosa:

- ¿Vale la pena utilizar arrays? -.
Entiendo que los arrays se usan para variables de un solo tipo, pero la función de mantenimiento del orden "no huele" a variables de un solo tipo.

Opción 2.
Creo que la función de matriz ya asignada se llama cuando hay una necesidad de utilizar los datos de la orden almacenada (orden).
Por ejemplo:

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



Gracias. Parece que esta información se transmite al terminal con cada paquete...

¿Y dónde puedo ver qué funciones están dirigidas al corredor y cuáles al terminal? ¿O tal vez hay una lista de datos (variables) que se transmiten desde el corredor al terminal todo el tiempo, y/o los que necesitan ser recibidos en una solicitud separada?

Funciones comerciales. Sólo envían una solicitud específicamente al servidor de comercio y reciben una respuesta de éste.
 
Link_x:
¿Cómo utilizar la función de contabilidad de pedidos, concretamente las matrices que la componen?

Opción 1.
Supongo que tienes que insertar ciertas matrices en lugares identificados en el código.
Por ejemplo:
Entonces mi mente se pregunta otra cosa:

- ¿Vale la pena utilizar arrays? -.
Entiendo que los arrays se usan para variables de un solo tipo, pero la función de mantenimiento del orden "no huele" a variables de un solo tipo.

Opción 2.
Creo que la función de matriz ya asignada se llama cuando hay una necesidad de utilizar los datos de la orden almacenada (orden).
Por ejemplo:

Creo que es una pérdida de tiempo. Toda la información sobre las órdenes abiertas y cerradas se almacena en el terminal. ¿Por qué duplicarlo en matrices? Es importante aprender a extraerlo del terminal.
 
yan720:

Gracias. Parece que esta información se transmite al terminal con cada paquete...

No es un hecho que la equidad se transmita todo el tiempo.

Es más probable que lo calcule el propio terminal, en función de sus posiciones abiertas.

¿Y dónde se puede ver qué funciones van dirigidas al agente y cuáles al terminal?

En ningún sitio. Usa tu sentido común.

 
khorosh:
Creo que es una pérdida de tiempo. Toda la información sobre las órdenes abiertas y cerradas se almacena en el terminal. ¿Por qué duplicarlo en matrices? Lo importante es aprender a extraerlo del terminal.


Es probable que esa información se extraiga mediante un comando determinado.
¿Es OrderSend?
 
Link_x:

Es probable que esa información se recupere mediante un comando específico.
¿Es OrderSend?
Esto es el envío de una solicitud de comercio al servidor.
 
Link_x:

Es probable que esa información se recupere mediante un comando específico.
¿Es OrderSend?
Lea sobre las funciones de KimIV y verá que la mayoría de ellas están diseñadas para extraer algún tipo de información sobre las órdenes abiertas o cerradas.
Razón de la queja: