2. Se diversi ordini sono aperti in una direzione, il risultato è una posizione aggregata.
3. Per chiudere una posizione aperta si devono piazzare ordini diretti in senso opposto, il cui volume complessivo è uguale al volume della posizione da chiudere.
4. Se è necessario chiudere solo una parte di una posizione, allora è necessario esporre ordini opposti con volume aggregato corrispondente.
2. Se diversi ordini sono aperti nella stessa direzione, il risultato è una posizione aggregata.
3. Per chiudere una posizione aperta si devono piazzare ordini diretti in senso opposto, il cui volume complessivo è uguale al volume della posizione da chiudere.
4. Se solo una parte di una posizione deve essere chiusa, allora gli ordini opposti devono essere piazzati con il volume aggregato corrispondente.
Ok, grazie. L'unico problema ora è che le posizioni non sono sempre chiuse con un ordine di chiusura...
mario065: Se ci sono diversi indicatori, per ognuno di loro è necessario fare tante volte quanto il numero di coppie mangiate. Un gestore per utilizzare tutte le coppie.
Quindi vuoi avere una sola maniglia, ma l'indicatore iATR funziona con caratteri diversi?
Dalla descrizione dell'indicatore iATR, si può vedere che è progettato per lavorare con un solo simbolo. Pertanto, per lavorare con 4 caratteri, è necessario eseguire 4 copie dell'indicatore iATR . A sua volta, la maniglia dell'indicatore è necessaria per accedere ai valori della copia dell'indicatore specifico, e se state eseguendo 4 copie dell'indicatore, dovrete memorizzare le maniglie appropriate da qualche parte.
Se la questione dell'utilizzo di una sola maniglia è principale, dovremo riscrivere l'indicatoreiATR in modoche lavori con più simboli contemporaneamente, abbia il numero corrispondente di array di valori, ecc.Allora sarà possibile usare una maniglia
string Currency[4] = {"GBPUSD","EURUSD","USDCHF","USDJPY"}; //могу ошибиться в части правильности записи присвоения значений, но проверить легко по Справочникуint ATRHandle[4];
//+------------------------------------------------------------------+//| Expert initialization function |//+------------------------------------------------------------------+intOnInit()
{
for(int c=0;c<4;c++) SymbolSelect(Currency[с],true);
for(int c=0;c<4;c++) ATRHandle[с] = iATR(Currency[с],PERIOD_M1,1);
return(0);
}
Ecco l'esperto in persona - ha ripulito le cose inutili - c'era molto bashing :)
Come si chiude un ordine?
L'ho aperto così:
mrequest.action = TRADE_ACTION_DEAL; // esecuzione immediata
mrequest.price = NormalizeDouble(Ask,_Digits); // ultimo prezzo Ask
mrequest.sl = NormalizeDouble(Ask - 10000*_Point,_Digits); // Stop Loss
mrequest.tp = 0; // prendere profitto
mrequest.symbol = _Symbol; // simbolo
mrequest.volume = Lotti; // numero di lotti da scambiare
mrequest.magic = 1; // Numero magico
mrequest.type = ORDER_TYPE_BUY; // ordine di acquisto
mrequest.type_filling = ORDER_FILLING_FOK; // tipo di ordine - tutto o niente
mrequest.deviazione=100; // slittamento dal prezzo corrente
OrderSend(mrequest,mresult);
Il problema è che abbiamo più di un ordine aperto, e abbiamo bisogno di chiudere un ordine selettivo...
La questione è che non c'è un solo ordine aperto, ma diversi, e dobbiamo chiudere selettivamente...
1. Inserire il codice correttamente.
2. Se diversi ordini sono aperti in una direzione, il risultato è una posizione aggregata.
3. Per chiudere una posizione aperta si devono piazzare ordini diretti in senso opposto, il cui volume complessivo è uguale al volume della posizione da chiudere.
4. Se è necessario chiudere solo una parte di una posizione, allora è necessario esporre ordini opposti con volume aggregato corrispondente.
1. Inserire il codice correttamente.
2. Se diversi ordini sono aperti nella stessa direzione, il risultato è una posizione aggregata.
3. Per chiudere una posizione aperta si devono piazzare ordini diretti in senso opposto, il cui volume complessivo è uguale al volume della posizione da chiudere.
4. Se solo una parte di una posizione deve essere chiusa, allora gli ordini opposti devono essere piazzati con il volume aggregato corrispondente.
Ok. Grazie. Solo che ora c'è un altro problema: l'ordine di chiusura non sempre chiude le posizioni...
Yedelkin,Reshetov,
Salve,
Qual è il metodo più semplice per estrarre i dati da un indicatore per diverse coppie?
Grazie in anticipo.È questo che intende?
Intendi questo?
Ciao,
Certo che no.
Se c'è più di un tacchino, bisogna farlo cento volte per ognuno, come molte coppie mangiano.
Un gestore per utilizzare tutte le coppie.
Quindi vuoi avere una sola maniglia, ma l'indicatore iATR funziona con caratteri diversi?
Dalla descrizione dell'indicatore iATR, si può vedere che è progettato per lavorare con un solo simbolo. Pertanto, per lavorare con 4 caratteri, è necessario eseguire 4 copie dell'indicatore iATR . A sua volta, la maniglia dell'indicatore è necessaria per accedere ai valori della copia dell'indicatore specifico, e se state eseguendo 4 copie dell'indicatore, dovrete memorizzare le maniglie appropriate da qualche parte.
Se la questione dell'utilizzo di una sola maniglia è principale, dovremo riscrivere l'indicatoreiATR in modoche lavori con più simboli contemporaneamente, abbia il numero corrispondente di array di valori, ecc.Allora sarà possibile usare una maniglia
e usarlo per indirizzare questo o quel buffer di indicatori da myATR.
Puoi anche scriverlo così (schematicamente):