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

 
gyfto:
AccountNumber() può essere letto dalla dll e come? Almeno dammi un suggerimento su dove scavare. Intendo senza passare il valore della funzione alla dll, cioè dalla stessa libreria dinamica.
Dall'intestazione della finestra di MT4, ma può essere facilmente sostituita. Devo pensare a come tracciare la sostituzione.
 
pako:

Non capisco perché debba essere così complicato.
Non renderebbe tutto più facile?

Eh... Se solo potessi decidere da solo come farlo... Se il mio cliente ha bisogno di ricalcolare i punti di presa di tutte le posizioni (inoltre, le prossime posizioni di mediazione possono essere aperte con un lotto ancora più grande e la presa totale viene ricalcolata di nuovo) e chiudere esattamente con stop-order, piuttosto che con Expert Advisor, allora questo è ciò che dovremmo fare.
 
Zhunko:
Dall'intestazione della finestra di MT4, ma può essere facilmente manomessa. Dobbiamo pensare a come rintracciare lo spoofing.

Ma di una cosa sono abbastanza sicuro: non c'è da nessuna parte in Windows per vedere l'ultima volta che il buffer della finestra è stato consultato.
 
gyfto:
Ma di una cosa sono abbastanza sicuro: non c'è da nessuna parte in Windows per vedere l'ultima volta che il buffer della finestra è stato consultato.
Dobbiamo intercettare i messaggi.
 

Ho bisogno di aiuto, non riesco a capire.

L'idea è che il gufo userà il trend fill, se il segnale si ripete. Quindi la domanda è: come posso insegnare alla funzione di frazione a saltare il primo segnale?

Per esempio, c'era un segnale di acquisto, il gufo compra e al prossimo tick viene chiamata la funzione di scaling in (perché c'è un ordine aperto), il segnale di entrata è ancora in vigore e la funzione riempie con successo (il che è sbagliato).

La funzione stessa viene chiamata solo se c'è un ordine aperto.

Ho solo bisogno di saltare la barra attuale. Come implementarlo in MQL?

 
MarkTrade:

Ho bisogno di aiuto, non riesco a capire.

L'idea è che il gufo userà il trend fill, se il segnale si ripete. Quindi la domanda è: come posso insegnare alla funzione di frazione a saltare il primo segnale?

Per esempio, c'era un segnale di acquisto, il gufo compra e al prossimo tick viene chiamata la funzione di scaling in (perché c'è un ordine aperto), il segnale di entrata è ancora in vigore e la funzione riempie con successo (il che è sbagliato).

La funzione stessa viene chiamata solo se c'è un ordine aperto.

Ho solo bisogno di saltare la barra attuale. Come implementarlo in MQL?

Che diavolo stai fumando? Da quali piantagioni raccogliete le sigarette? Il gufo andò al negozio e comprò alcuni... E poi è arrivato un po' di funk e ha rovinato tutto.

Che sfortuna...

 

Usate la funzione che vi restituirà il numero di barre dopo che l'ultima posizione è stata aperta:

//+----------------------------------------------------------------------------+
int BarsAfterOpenLastPos(int op, int mn) {
   datetime t=0;
   int      i, k=OrdersTotal();

   for (i=0; i<k; i++) {
      if (OrderSelect(i, SELECT_BY_POS)) {
         if (OrderSymbol()!=Symbol())  continue;
         if (OrderType()!=op)          continue;
         if (OrderMagicNumber()!=mn)   continue;
         if (t<OrderOpenTime()) t=OrderOpenTime();
         }
      }
   return((TimeCurrent()-t)/60/Period());
}
//+----------------------------------------------------------------------------+

Come controllare una posizione di acquisto con Magic

if (BarsAfterOpenLastPos(OP_BUY, Magic)>1) {// доливаем}
 
artmedia70:

Merda... cosa stai fumando? Da dove prendete le vostre sigarette? Il gufo andò al negozio e comprò alcuni... E poi è arrivato un po' di funk e ha rovinato tutto.

Oh, che peccato...



:) Comunque, questo è il modo in cui è

if (OrdersCount()==0)
{CheckBuy();
CheckSell();}
if (OrdersCount()==1) DolivkaBuy();
if (OrdersCount()==-1) DolivkaSell();

Cosa devo scrivere in Dolivka...() per fargli saltare la barra sulla quale è stato aperto il primo trade?

Non ho il codice sorgente, sto solo ricordando...

 
О! C'è già una risposta mentre scrivo. Grazie!
 
artmedia70:
Eh... Se solo potessi decidere da solo come farlo... Se il cliente ha bisogno di ricalcolare l'incasso di tutte le posizioni (soprattutto perché le prossime posizioni di mediazione possono essere aperte con un lotto ancora più grande e l'incasso totale viene ricalcolato di nuovo) e chiudere esattamente da stop-order, e non da Expert Advisor, allora questo è quello che devo fare.


Array di dati di posizione