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

 
xant:

rigonich,

per essere precisi (OrderProfit()+OrderCommission()+OrderSwap()

Quindi, come posso prendere informazioni da ordini chiusi?

Seleziono gli ordini usando OrderSelect() e MODE_HISTORY tra quelli chiusi, ma come posso selezionare quelli necessari?

Se posso prendere dalla storia quelli che hanno chiuso dopo la mia condizione, allora naturalmente prenderò e riassumerò quello che mi serve. Ma non capisco come farlo, purtroppo.


Di cosa avete bisogno? Per esempio, ricorda la data di apertura del primo ordine sullo strumento da parte del tuo EA e seleziona tutti quelli aperti dopo di esso, reimposta il valore della variabile dopo la chiusura per condizionee ricorda il nuovo valore (attuale).
 
xant:

Si prega di avvisare.

Nel mio EA, il calcolo dell'uscita si basa sul profitto accumulato. Per esempio, se in un certo momento equity=balance, allora l'EA chiuderà tutti i trade quando l'equity attuale supera questo iniziale. Chiuderà tutte le transazioni, non importa quante ce ne siano.

Nel tester è semplice, dato che c'è una sola coppia di valute.

Tuttavia, il trading viene realisticamente effettuato con diverse valute e ognuna deve essere considerata separatamente. Per esempio: se non ci sono operazioni aperte su una coppia di valute, allora la variabile==0. E dovremmo tracciare anche i trade chiusi di questo simbolo e aspettare fino a quando il profitto accumulato supera la perdita degli ordini aperti di questo simbolo del valore specificato.

Non riesco a trovare nel tutorial una funzione che possa essere utilizzata per separare la contabilità dei profitti accumulati per diverse valute. Si prega di avvisare. Grazie.


https://www.mql5.com/ru/forum/131859/page3#434223 qui, e anchehttps://www.mql5.com/ru/forum/131859/page3#434222
 
Aiutami a scrivere una condizione per aprire una posizione.

Non posso scrivere una condizione aggiuntiva per aprire una posizione secondo la mia idea.

Se chiudo una posizione con TP o SL dovrebbe riaprire con la posizione opposta.

Esempio: se una posizione Sell, diciamo SL, è chiusa, riaprirà una posizione Sell insieme ad essa e Buy

Ecco 2 condizioni dall'Expert Advisor:

condizione per comprare

if (BUY)
{
if (takeprofit!=0) TP = NormalizeDouble(Ask + takeprofit*Point,Digits); else TP=0;
if (stoploss!=0) SL = NormalizeDouble(Ask - stoploss*Point,Digits); else SL=0;
if(NumberOfPositions(Symbol(),OP_BUY,Magic)<MaxOrders)OPENORDER ("Buy");
}

sell condition

if (SELL)
{
if (takeprofit!=0) TP = NormalizeDouble(Bid - takeprofit*Point,Digits); else TP=0;
if (stoploss!=0) SL = NormalizeDouble(Bid + stoploss*Point,Digits); else SL=0;
if(NumberOfPositions(Symbol(),OP_SELL,Magic)<MaxOrders)OPENORDER ("Sell");
}

Chi capisce questo, per favore mi aiuti a scrivere la condizione aggiuntiva
File:
sellbuy_4.mq4  3 kb
 
La vostra condizione non si adatta(( apre gli ordini indefinitamente finché il deposito è sufficiente
 
rigonich:

Per spostare a sinistra -- F12, a destra -- non lo so.

RigonichGrazie, è un ottimo consiglio! Proprio quello di cui ho bisogno!
 
Oh, fantastico, grazie a tutti!
 
Amico, è davvero così difficile con la condizione ((( come un piccolo consigliere.
 

Non ci ho fatto niente, ancora non funziona ((((

Funziona solo se il prezzo va in una direzione allora si apre e se il prezzo gira non si apre((

File:
trudnyaga.mq4  5 kb
 
Frostr:
Aiutami a scrivere una condizione per aprire una posizione.

Non posso scrivere una condizione aggiuntiva per aprire una posizione secondo la mia idea.

Se chiudo una posizione con TP o SL, voglio che si apra una nuova posizione con il valore opposto.

Esempio: se una posizione Sell è stata chiusa da SL, riaprirà una posizione Sell insieme ad essa e Buy.

Ecco 2 condizioni dell'EA:

Acquista condizione

se (COMPRA)
{
se (takeprofit!=0) TP = NormalizeDouble(Ask + takeprofit*Point,Digits); altrimenti TP=0;
se (stoploss!=0) SL = NormalizeDouble(Ask - stoploss*Point,Digits); altrimenti SL=0;
se(NumeroOfPositions(Symbol(),OP_BUY,Magic)<MaxOrders)
}

Vendere condizione

se (VENDERE)
{
se (takeprofit!=0) TP = NormalizeDouble(Bid - takeprofit*Point,Digits); altrimenti TP=0;
se (stoploss!=0) SL = NormalizeDouble(Bid + stoploss*Point,Digits); altrimenti SL=0;
se(NumeroPosizioni(Simbolo(),OP_SELL,Magic)<MaxOrdini)
}

Chi capisce questo, per favore mi aiuti a scrivere condizioni aggiuntive

Mi dispiace, ma nei file allegati hai un file compilato, non il file sorgente. Non è possibile visualizzarlo. Per favore invia il file con l'estensione .mq4
 
Penso di aver risolto il problema.
File:
Motivazione: