Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 1550

 
законопослушный гражданин:

da quanto ho capito, l'autore del codice ha suggerito quanto segue:

se il gufo apre un trade di acquisto con stop e take, allora il suo pezzo di codice apre un trade di vendita allo stesso tempo nello stesso posto (tenendo conto dello spread) con stop e take invece di un trade di acquisto.

quindi la logica di ricerca di un punto di entrata dell'EA non cambia, e cambia solo la direzione con spread preso in considerazione.

questo è esattamente ciò di cui ho bisogno

Se volete invertire tutte le transazioni, basta scambiare

vOrderOpenSell e vOrderOpenBuy


//+-----------------------------------------------------------------------------------------------+
void OnTick()
  {
// Получим значение индикатора
   dMA = iMA(Symbol(), 0, iPeriodMA, 0, MODE_SMA, PRICE_CLOSE, 0);

// Если нет открытых ордеров, то входим в условие
   if(bCheckOrders() == true)
     {
      // Если появился сигнал на покупку, то откроем ордер на покупку
      if(bSignalBuy() == true)
         vOrderOpenSell();

      // Если появился сигнал на продажу, то откроем ордер на продажу
      if(bSignalSell() == true)
         vOrderOpenBuy();
     }
  }
 
SGarnov:

Per esempio, ho piazzato un ordine pendente per EURUSD, l'EA ha seguito l'algoritmo (acquisto a 1.18901, apertura di un'operazione, stop a 1.18751, take profit a 1.19051 e un ordine di vendita a 1.18751) tutto è ok come da programma.

Ma ora è il momento di aprire un'operazione su GBPUSD dove i prezzi sono diversi e l'EA sta facendo tutto bene, tranne che per impostare un ordine pendente. Un ordine di vendita a 1,39393 è scattato e l'EA ha cercato di aprirlo, impostare uno stop a 1,39633 e prendere 1,39153 ma l'ordine di acquisto a 1,39633 è completamente duplicato in EURUSD e un ordine di vendita a 1,18751)

Ho appena trovato un altro problema: uno stop a 1,18751 e un ordine pendente di vendita a 1,18901 e un take a 1,18595 sono scattati su un trade aperto su EURUSD. L'Expert Advisor non ha aggiunto lo stop attivato, che è nella storia.

Questi sono i problemi.

Ho trovato un errore negli ordini e sto lavorando sulle aggiunte

 
MakarFX:

Se hai bisogno di invertire tutti i trade, basta scambiare qui

vOrderOpenSell e vOrderOpenBuy


No, non ho bisogno dell'inversione, ma del "mirroring" dei trade in perdita su un altro terminale tenendo conto dello spread.

ma i tester non danno tali possibilità, ho bisogno di gufi nel tester per "specchiare" i trade con spread come se fossero aperti in un altro terminale ma secondo la logica di questo gufo, diciamo, attraverso un copiatore di rewrder.

Ne ho bisogno per testare il TS

 
Alexey Viktorov:

Makar ha indicato correttamente OrderMagicNumber(), ma ha frainteso l'errore. Leggete la documentazione per la sintassi di questa funzione... dovrebbe essere o un indice nella lista dell'ordine o un biglietto di un ordine specifico, ma non una magia. E OrderTicket() non aiuta in questo caso. Non cercate di metterlo lì.

Ha senso. L'ho compilato e sostituito con OrdersHistoryTotal, e nelle impostazioni del terminale ho fatto la cronologia degli ultimi tre giorni. Lo testerò.

 
законопослушный гражданин:

Non ho bisogno dell'inversione, ma del "mirroring" dei trade in perdita su un altro terminale, tenendo conto dello spread, come nell'argomento dell'autore del codice.

Ma i tester non danno tali possibilità, per questo ho bisogno di gufi nel tester per "rispecchiare" i trade con spread, come se fossero aperti in un altro terminale ma secondo la logica di questo gufo, diciamo, attraverso un copiatore con riponderazione.

Ne ho bisogno per controllare il TS.

Se il problema con gli ordini di entrata a mercato prova a sostituire questo

///////////////
if (cmd==OP_SELL) // Переворачиваем ордера OP_SELL
{
Ret=OrderSend (symbol,OP_BUY,volume,Ask,slippage,takeprofit-sprd,stoploss-sprd,comment,magic,expiration,arrow_color);
}
if (cmd==OP_BUY) // Переворачиваем ордера OP_BUY
{
Ret=OrderSend (symbol,OP_SELL,volume,Bid,slippage,takeprofit+sprd,stoploss+sprd,comment,magic,expiration,arrow_color);
}

E se il problema è con tutti gli ordini, allora controllate STOPLEVEL

 
MakarFX:

........................., e lavorare con l'addizione

Sono giunto alla conclusione che è difficile da implementare, il tuo codice è molto più semplice, chiaro e logico, ma ..... per qualche motivo non aggiunge nessuno dei due. La cosa principale è non arrendersi.

 
SGarnov:

Sono giunto alla conclusione che è difficile da implementare, il tuo codice è molto più semplice, più chiaro e più logico, ma ..... in qualche modo non ha senso. La cosa principale è non arrendersi.

Io servo l'Unione Sovietica!
 
SGarnov:

Sono giunto alla conclusione che è difficile da implementare, il tuo codice è molto più semplice, più chiaro e più logico, ma ..... in qualche modo non ha senso. La cosa principale è non arrendersi.

MakarFX:
Io servo l'Unione Sovietica!

Forse si dovrebbe anche tener conto del numero di fermate attivate. Per esempio, l'EA troverà uno stop nella storia, e se ce ne sono due, dovrebbe aggiungere sia tre che quattro, tutto dipende dall'impostazione esterna "numero di stop loss".

 
SGarnov:

Forse si dovrebbe anche tener conto del numero di fermate attivate. Per esempio, l'EA troverà uno stop nella storia, e se ce ne sono due, dovrebbe aggiungerli sia tre che quattro, tutto dipende dall'impostazione esterna "numero di stop loss".

C'è una contabilità del numero di stop attivati e se il "Numero di ordini perdenti" è superiore a quello specificato nelle impostazioni, allora gli ordini pendenti non vengono più piazzati (già controllato).
 

Ciao a tutti, aiuto per favore!

Ho un problema come questo. Ho comprato un vpc da mql5 tutto funziona bene, mi sono installato un esperto, ho impostato 8 grafici e impostato un esperto. E ho trasferito il tutto su vpc.

Ho dovuto disinstallare metatrade dal mio computer perché non era mio.

E ora quando entro dal mio computer

Tutto funziona, l'esperto. Funziona, ma non riesco a vederlo per apportare modifiche alle impostazioni. Come posso restituire gli EA e gli orari in modo da poterli gestire dal mio computer?

Grazie!

Motivazione: