Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
kombat 17.07.2009 22:13
Sommare, ottenere buy-summer 3 lotti e contrastare questo volume vendere 3 lotti
.......................
Come opzione, sì. Anche se, se ci sono già ordini di vendita aperti, l'EA potrebbe chiudere non quelli di cui hai bisogno. Dovrebbe essere risolto.
kombat 17.07.2009 22:13.
Ma per rispondere alla sua domanda: è possibile chiudere tutte le posizioni?
sì, uno per uno, è uno script veloce, aap! e questo è tutto...
.........................
Questo è quello che sto usando ora. Un insieme di script - si usa questo, poi quello... Ma ho provato a codificare la mia strategia in Expert Advisor e ho incontrato una serie di difficoltà.
Ho qualcosa che non funziona qui, significa che non chiude nessun errore.
Nella funzione ClosePositions(), la sua libreria b-Positions.mqh, KimIV usa una chiamata alla sua altra funzione ClosePosBySelect() che vieta l'uso di ee nel tester:
if (!IsTesting() && (!IsExpertEnabled() || IsStopped())) break;
Per i test di storia usa la sua libreria b-ForTest.mqh
Nella funzione ClosePositions(), la sua libreria b-Positions.mqh, KimIV usa una chiamata alla sua altra funzione ClosePosBySelect() che vieta l'uso di ee nel tester:
if (!IsTesting() && (!IsExpertEnabled() || IsStopped())) break;
Per i test di storia, usa la sua libreria b-ForTest.mqh
Hai frainteso il mio codice... Tradurre in russo... Se NON è in modalità test E (l'EA non è autorizzato a scambiare o l'Expert Advisor è fermo), allora interrompi il ciclo. Per dirla semplicemente, questa linea assicura l'uscita dal ciclo, quando si preme il pulsante "Expert Advisors" sulla barra degli strumenti.
Buona sera,
Sfortunatamente, c'è anche una discrepanza con l'array... Quando il conteggio degli ordini è fatto con una condizione se i lotti sono più grandi di 0 (Lts>0), i lotti sono chiusi uno per uno (quando il profitto è stato raggiunto), ma il profitto totale dovrebbe essere preso in considerazione:
E alla condizione nel conteggio degli ordini, se i lotti sono più di 1 (Lts>1), i lotti non sono chiusi:
Si prega di avvisare chi può vedere l'errore.
O forse, Igor, ho un'incomprensione nell'uso della tua funzione?
BuyOrdProf=GetProfitOpenBuyPosInCurrency(OP_BUY); // Chiama la funzione
Igor, per favore dimmi come inserire la tua funzione PriceOpenLastPos nell'indicatore.
Durante la compilazione l'editor dà errore sulla prima parentesi e sulle variabili successive.
double PriceOpenLastPos( string sy="", int op=-1, int mn=-1) {
datetime t;
double r=0;
int 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) {
if (t<OrderOpenTime()) {
t=OrderOpenTime();
r=OrderOpenPrice();
}
}
}
}
}
}
}
return(r);
}
}
'(' - definizione di funzione inattesa D:\MT4\experts\indicators\Astrea.mq4 (627, 24)
'sy' - variabile non definita D:\MT4\experts\indicators\Astrea.mq4 (632, 7)
etc.
Implemento la logica di formazione dei segnali di trading in un indicatore e invio il segnale generato all'Expert Advisor tramite una variabile globale per aprire/chiudere gli ordini.
Ho bisogno del prezzo aperto di un ordine per prendere alcune decisioni, quindi sto cercando di farlo. Il mio indicatore è dinamico e può essere debuggato solo in modalità demo o in modalità visualizzazione in un tester.
Il quadro è che non è il profitto totale che viene preso in considerazione, ma il profitto dei singoli ordini.
BuyOrdProf=GetProfitOpenBuyPosInCurrency(OP_BUY); // Chiamata di funzione
Passaggio errato di parametri nella funzione. Dovrebbe essere così:
Passaggio errato di parametri nella funzione. Dovrebbe essere così:
Aggiungere un binding al simbolo nella chiamata di funzione non aiuta. Perché conta il profitto per ogni posizione separatamente (immagine sopra)?