Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 6. - página 401

 
vadynik:


Eu posso não ter perguntado exatamente o que eu quis dizer, quero dizer, a função verá um magik que é definido em uma variável global

é claro que sim.

As variáveis globais são globais porque são globalmente visíveis.

o que não está claro?

----

mas seguindo as boas maneiras - passar todos os parâmetros para a função que a tornará mais independente do ambiente de chamada.

A razão para isto é abstrair os nomes das variáveis dentro da função dos nomes das variáveis globais.

 
Se tais perguntas surgirem, eu pergunto e recebo uma resposta no fórum Frechev, é claro que é difícil escolher o certo entre todos os conselhos.
 

sergeev:

yan720:


Você pode me dizer se AccountEquity() consulta o terminal ou o corretor?

para o terminal

Obrigado. Parece que esta informação é enviada para o terminal com cada pacote.

E onde posso ver quais funções são dirigidas ao corretor e quais são dirigidas ao terminal? Ou talvez haja uma lista de dados (variáveis) que são transmitidos do corretor para o terminal o tempo todo, e/ou aqueles que precisam ser recebidos em um pedido separado?

 
//|+-------------------------------------------------------------------------------------------------------+
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;
  }
//|+-------------------------------------------------------------------------------------------------------+
Como utilizar a função de contabilidade de pedidos, especificamente as matrizes que a compõem?

Opção 1.
Presumo que você tenha que inserir certas matrizes em lugares identificados no código.
Por exemplo:
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.
Então, minha mente me faz outra pergunta:

- Vale a pena usar arrays? -.
Entendo que as matrizes são usadas para variáveis de tipo único, mas a função de manutenção de ordem "não cheira mal" de variáveis de tipo único.

Opção 2.
Acho que a função de matriz já atribuída é chamada quando há necessidade de usar dados de ordem (pedido) armazenados.
Por exemplo:

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



Obrigado. Parece que esta informação é transmitida para o terminal com cada pacote.

E onde posso ver quais funções são dirigidas ao corretor e quais são dirigidas ao terminal? Ou talvez haja uma lista de dados (variáveis) que são transmitidos do corretor para o terminal o tempo todo, e/ou aqueles que precisam ser recebidos em um pedido separado?

Funções comerciais. Somente eles enviam um pedido especificamente para o servidor comercial e recebem uma resposta do mesmo.
 
Link_x:
Como utilizar a função de contabilidade de pedidos, especificamente as matrizes que a compõem?

Opção 1.
Presumo que você tenha que inserir certas matrizes em lugares identificados no código.
Por exemplo:
Então, minha mente me faz outra pergunta:

- Vale a pena usar arrays? -.
Entendo que as matrizes são usadas para variáveis de tipo único, mas a função de manutenção de ordem "não cheira mal" de variáveis de tipo único.

Opção 2.
Acho que a função de matriz já atribuída é chamada quando há necessidade de usar dados de ordem (pedido) armazenados.
Por exemplo:

Acho que é uma perda de tempo. Todas as informações sobre pedidos abertos e fechados são armazenadas no terminal. Por que duplicá-la em matrizes? É importante aprender como extraí-lo do terminal.
 
yan720:

Obrigado. Parece que esta informação é transmitida para o terminal com cada pacote.

Não é um fato que a Equidade é transmitida o tempo todo.

É mais provável que seja calculado pelo próprio terminal, com base em suas posições abertas.

E onde você pode ver quais funções são dirigidas ao corretor e quais são dirigidas ao terminal?

Em nenhum lugar. Basta usar seu bom senso.

 
khorosh:
Eu acho que é uma perda de tempo. Todas as informações sobre pedidos abertos e fechados são armazenadas no terminal. Por que duplicá-la em matrizes? O importante é aprender como extraí-lo do terminal.


Tais informações são provavelmente extraídas por certos comandos.
É EncomendaSendada?
 
Link_x:

Tais informações são provavelmente recuperadas por um comando específico.
É OrderSend?
Isto é enviar um pedido comercial para o servidor.
 
Link_x:

Tais informações são provavelmente recuperadas por um comando específico.
É EncomendaSendada?
Leia sobre as funções KimIV e você verá que a maioria delas são projetadas para recuperar algum tipo de informação sobre pedidos abertos ou fechados.