Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 6. - pagina 401

 
vadynik:


Forse non ho chiesto esattamente quello che intendevo, voglio dire, la funzione vedrà un magone che è impostato in una variabile globale

Certo che lo farà.

Levariabili globali sono globali perché sono visibili globalmente.

cosa non è chiaro?

----

ma seguendo le buone maniere - passate tutti i parametri nella funzione che la renderà più indipendente dall'ambiente chiamante.

La ragione di questo è di astrarre i nomi delle variabili all'interno della funzione dai nomi delle variabili globali.

 
Se sorgono queste domande, chiedo e ottengo una risposta sul forum Frechev, naturalmente è difficile scegliere quella giusta tra tutti i consigli.
 

sergeev:

yan720:


Potete dirmi se AccountEquity() interroga il terminale o il broker?

al terminale

Grazie. Sembra che questa informazione sia inviata al terminale con ogni pacchetto...

E dove posso vedere quali funzioni sono indirizzate al broker e quali al terminale? O forse c'è una lista di dati (variabili) che sono trasmessi dal broker al terminale tutto il tempo, e/o quelli che devono essere ricevuti in una richiesta separata?

 
//|+-------------------------------------------------------------------------------------------------------+
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;
  }
//|+-------------------------------------------------------------------------------------------------------+
Come usare la funzione di contabilità dell'ordine, in particolare gli array che la compongono?

Opzione 1.
Presumo che tu debba inserire certi array in posti identificati nel codice.
Per esempio:
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.
Allora la mia mente si pone un'altra domanda:

- Vale la pena usare gli array? -.
Capisco che gli array sono usati per variabili di tipo singolo, ma la funzione di mantenimento dell'ordine "non puzza" di variabili di tipo singolo.

Opzione 2.
Penso che la funzione array già assegnata sia chiamata quando c'è bisogno di usare i dati dell'ordine memorizzato (ordine).
Per esempio:

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



Grazie. Sembra che questa informazione sia trasmessa al terminale con ogni pacchetto...

E dove posso vedere quali funzioni sono indirizzate al broker e quali al terminale? O forse c'è una lista di dati (variabili) che sono trasmessi dal broker al terminale tutto il tempo, e/o quelli che devono essere ricevuti in una richiesta separata?

Funzioni di trading. Solo che inviano una richiesta specifica al server commerciale e ricevono una risposta da esso.
 
Link_x:
Come usare la funzione di contabilità dell'ordine, in particolare gli array che la compongono?

Opzione 1.
Presumo che tu debba inserire certi array in posti identificati nel codice.
Per esempio:
Allora la mia mente si pone un'altra domanda:

- Vale la pena usare gli array? -.
Capisco che gli array sono usati per variabili di tipo singolo, ma la funzione di mantenimento dell'ordine "non puzza" di variabili di tipo singolo.

Opzione 2.
Penso che la funzione array già assegnata sia chiamata quando c'è bisogno di usare i dati dell'ordine memorizzato (ordine).
Per esempio:

Penso che sia una perdita di tempo. Tutte le informazioni sugli ordini aperti e chiusi sono memorizzate nel terminale. Perché duplicarlo in array? È importante imparare come estrarlo dal terminale.
 
yan720:

Grazie. Sembra che questa informazione sia trasmessa al terminale con ogni pacchetto...

Non è un dato di fatto che l'Equity si trasmette continuamente.

È più probabile che sia calcolato dal terminale stesso, in base alle vostre posizioni aperte.

E dove si può vedere quali funzioni sono indirizzate al broker e quali al terminale?

Da nessuna parte, basta usare il buon senso.

 
khorosh:
Penso che sia una perdita di tempo. Tutte le informazioni sugli ordini aperti e chiusi sono memorizzate nel terminale. Perché duplicarlo in array? L'importante è imparare come estrarlo dal terminale.


Tali informazioni sono probabilmente estratte da alcuni comandi.
È OrderSend?
 
Link_x:

Tali informazioni sono probabilmente recuperate da un comando specifico.
È OrderSend?
Questo è l'invio di una richiesta di scambio al server.
 
Link_x:

Tali informazioni sono probabilmente recuperate da un comando specifico.
È OrderSend?
Leggete le funzioni KimIV e vedrete che la maggior parte di esse sono progettate per recuperare qualche tipo di informazione sugli ordini aperti o chiusi.