FAQ: Se il tuo ordine si apre, controlla l'apertura, e se lo fa, puoi aprire il secondo ordine con controllo...
Ho scritto due funzioni che si aprono in modo diverso a seconda della situazione e controllerò alla fine di ciascuna di esse (penso che saranno una funzione separata) quali e quanti ordini sono aperti e quali ordini saranno mancati e saranno riaperti.
Se sei un esperto nel campo del posizionamento dell'EA in termini di forex, potresti essere interessato a scoprire di più su di esso e utilizzarlo nel tuo robot di trading. Voglio ribadire i miei ringraziamenti (scusate la mancanza di dettagli).
È sorto un problema. Non riesco a trovare la funzione che restituisce la dimensione della posizione "aggregata" di un dato strumento! Ho cercato in tutto il forum, compreso il ramo di I.KIM,https://www.mql5.com/ru/forum/131859 - ci sono - diverse funzioni per molti, tranne quella di cui ho bisogno!
Per esempio, se ci sono diverse operazioni di "acquisto" aperte su EUR, potete consigliarmi come determinare il loro importo totale?
GetLot(EURUSD, OP_BUY, magic)
double GetLot(string sy="", int op=-1, int mn=-1) {// возвращает сувокупный размер поз.
double l=-1;
int i, k=OrdersTotal();
if (sy=="0") sy=Symbol();
for (i=0; i<k; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
if (OrderSymbol()==sy || sy=="") {
if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
if (op<0 || OrderType()==op) {
if (mn<0 || OrderMagicNumber()==mn) {
I = ------ ???????????
------ ????????????
}
}
}
}
}
}
return(l);
}
Domanda cancellata! È stata scoperta una funzione:
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 19.02.2008 |//| Описание : Возвращает сумму лотов открытых позиций |//+----------------------------------------------------------------------------+//| Параметры: |//| sy - наименование инструмента ("" - любой символ, |//| NULL - текущий символ) |//| op - операция (-1 - любая позиция) |//| mn - MagicNumber (-1 - любой магик) |//+----------------------------------------------------------------------------+double GetAmountLotFromOpenPos(string sy="", int op=-1, int mn=-1) {
double l=0;
int i, k=OrdersTotal();
if (sy=="0") sy=Symbol();
for (i=0; i<k; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
if (OrderSymbol()==sy || sy=="") {
if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
if (op<0 || OrderType()==op) {
if (mn<0 || OrderMagicNumber()==mn) {
l+=OrderLots();
}
}
}
}
}
}
return(l);
}
Non ho bisogno di prendere in considerazione le locs. O meglio, ecco come:
Quello di cui ho bisogno è questo. Se ci sono diverse posizioni aperte Sell e Buy, ho bisogno di rimuovere le posizioni counter (di compensazione), così - per rimanere solo in una direzione.
Volevo calcolare prima la somma di tutte le "baie", poi la somma di tutte le "vendite". Dopo di che, trova la differenza (cioè la cui dimensione totale è maggiore). E questa "differenza" dovrebbe essere lasciata nel mercato, - e tutte quelle opposte rimosse!
Quindi, questa funzione GetAmountLotFromOpenPos non funzionerà qui? Per esempio, se imposto
Non ho bisogno di prendere in considerazione le locs. O meglio, ecco come:
Quello di cui ho bisogno è questo. Se ci sono diverse posizioni aperte Sell e Buy, ho bisogno di rimuovere le posizioni counter (di compensazione), così - per rimanere solo in una direzione.
Volevo calcolare prima la somma di tutte le "baie", poi la somma di tutte le "vendite". Dopo di che, trova la differenza (cioè la cui dimensione totale è maggiore). E questa "differenza" dovrebbe essere lasciata nel mercato, - e tutte quelle opposte rimosse!
Quindi, questa funzione GetAmountLotFromOpenPos non funzionerà qui? Per esempio, se imposto
GetAmountLotFromOpenPos(EURUSD,OP_SELL, -1)
-Non restituisce il totale dei lotti di tutte le posizioni di vendita?
Se il tuo ordine si apre, controlla l'apertura, e se lo fa, puoi aprire il secondo ordine con controllo...
Ho scritto due funzioni che si aprono in modo diverso a seconda della situazione e controllerò alla fine di ciascuna di esse (penso che saranno una funzione separata) quali e quanti ordini sono aperti e quali ordini saranno mancati e saranno riaperti.
Se sei un esperto nel campo del posizionamento dell'EA in termini di forex, potresti essere interessato a scoprire di più su di esso e utilizzarlo nel tuo robot di trading. Voglio ribadire i miei ringraziamenti (scusate la mancanza di dettagli).
Buongiorno.
È sorto un problema. Non riesco a trovare la funzione che restituisce la dimensione della posizione "aggregata" di un dato strumento! Ho cercato in tutto il forum, compreso il ramo di I.KIM,https://www.mql5.com/ru/forum/131859 - ci sono - diverse funzioni per molti, tranne quella di cui ho bisogno!
Per esempio, se ci sono diverse operazioni di "acquisto" aperte su EUR, potete consigliarmi come determinare il loro importo totale?
GetLot(EURUSD, OP_BUY, magic)
Domanda cancellata! È stata scoperta una funzione:
In che modo è sbagliato? Allora cosa restituisce questa funzione?
"Restituisce la somma di molte posizioni aperte " - non è quello che dice?
https://www.mql5.com/ru/code/9394
"Restituisce la somma di molte posizioni aperte" - non è quello che dice?
Non ho bisogno di prendere in considerazione le locs. O meglio, ecco come:
Quello di cui ho bisogno è questo. Se ci sono diverse posizioni aperte Sell e Buy, ho bisogno di rimuovere le posizioni counter (di compensazione), così - per rimanere solo in una direzione.
Volevo calcolare prima la somma di tutte le "baie", poi la somma di tutte le "vendite". Dopo di che, trova la differenza (cioè la cui dimensione totale è maggiore). E questa "differenza" dovrebbe essere lasciata nel mercato, - e tutte quelle opposte rimosse!
Quindi, questa funzione GetAmountLotFromOpenPos non funzionerà qui? Per esempio, se imposto
GetAmountLotFromOpenPos(EURUSD,OP_SELL, -1)
-Non restituisce la quantità totale di lotti di tutte le posizioni di vendita?
-Non mi ridarà la somma dei lotti di tutte le posizioni di vendita?
Non ho bisogno di prendere in considerazione le locs. O meglio, ecco come:
Quello di cui ho bisogno è questo. Se ci sono diverse posizioni aperte Sell e Buy, ho bisogno di rimuovere le posizioni counter (di compensazione), così - per rimanere solo in una direzione.
Volevo calcolare prima la somma di tutte le "baie", poi la somma di tutte le "vendite". Dopo di che, trova la differenza (cioè la cui dimensione totale è maggiore). E questa "differenza" dovrebbe essere lasciata nel mercato, - e tutte quelle opposte rimosse!
Quindi, questa funzione GetAmountLotFromOpenPos non funzionerà qui? Per esempio, se imposto
GetAmountLotFromOpenPos(EURUSD,OP_SELL, -1)
-Non restituisce il totale dei lotti di tutte le posizioni di vendita?
Nel caso generale:
SummLot = GetAmountLotFromOpenPos("0", OP_BUY, MagicNumber)- GetAmountLotFromOpenPos("0", OP_SELL, MagicNumber);