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

 
m8akca:

Questo algoritmo può essere programmato. La mia testa sta bollendo per la terza settimana!

Ciao, sto cercando di programmare l'algoritmo, funziona, ma non apre l'ordine di vendita quando si confrontano i prezzi. Ho lavorato con questo algoritmo per una terza settimana! Non vi manderò il mio codice perché ho provato a scriverlo ma non funziona. Per favore, ditemi se è possibile implementare questo programma? E se non ti dispiace, si prega di inviare il codice sarà molto grato!

Il programma: apriamo un ordine di acquisto, prendiamo il prezzo di apertura dell'ordine di acquisto e lo confrontiamo con il prezzo di offerta e quando il prezzo di apertura dell'ordine di acquisto è uguale al prezzo di offerta, apriamo un ordine di vendita al prezzo di apertura dell'ordine di acquisto.

Si può programmare quasi tutto, e questo algoritmo ancora di più.

C'è solo un problema nell'algoritmo (in grassetto), può succedere che non sia uguale per un tempo molto lungo (può essere diversi anni). Ecco perché in questo caso non dovremmo impostare la condizione di controllo uguale ==, ma uguale o maggiore di =>. Allo stesso tempo, dopo aver aperto un ordine, dovremmo proibire l'apertura di altri ordini, il che fa bollire la testa.

 
AlexeyVik:

Quasi tutto può essere programmato, e questo algoritmo ancora di più.

Solo un problema nell'algoritmo (evidenziato in grassetto), può succedere che non sia uguale per un tempo molto lungo (forse diversi anni). Ecco perché in questo caso non dovremmo impostare la condizione di controllo uguale ==, ma uguale o maggiore di =>. Allo stesso tempo, dopo aver aperto un ordine, dovremmo proibire l'apertura di altri ordini, il che fa bollire la testa.

Questo è il punto è che ho bisogno di un confronto esatto ==, non di quanti anni aspettare perché se emetto per esempio nel mio commento il prezzo dell'ordine Buy e il prezzo Bid e queste variabili coincidono in alcuni momenti ma la condizione di confronto == non è soddisfatta: È POSSIBILE programmare questo algoritmo? La mia testa sta bollendo per la terza settimana!
 

l'archivio è stato trattato. Puoi dirmelo per favore:

1. è possibile includere più di un EA sullo stesso grafico?

2. o advisor+script?

3. è necessario mettere sul grafico dello strumento esattamente il TF che viene utilizzato dall'Expert Advisor? se sì, cosa succede altrimenti?

4. è necessario mettere nella finestra dello strumento l'indicatore usato dall'Expert Advisor? se sì, cosa succede altrimenti?

5. se l'EA usa multicurrency, è necessario aprire tutte le finestre con queste coppie di valute?

 
m8akca:
Il punto è che ho bisogno di un confronto esatto ==, non di quanti anni aspettare perché se per esempio nel commento faccio uscire il prezzo dell'ordine Buy e il prezzo Bid e queste variabili coincidono in alcuni momenti, ma la condizione di confronto == non è soddisfatta: È POSSIBILE programmare questo algoritmo? La mia testa sta bollendo per la terza settimana!
Perché il prezzo può essere _Point in più o in meno e non è più uguale.
 

Per favore, ditemi la funzione che conta l'ammontare dell'ultima serie di trade perdenti di fila. Se TakeProfit viene attivato, azzererà il contatore.

 

Ciao a tutti, Cari, per favore ditemi se c'è una rete, o forse qualcuno ha il tempo di scrivere un consigliere, per i seguenti parametri. 1) specificare la direzione di acquisto (vendita), e il prezzo di questo acquisto (vendita). 2) Specifico la dimensione dello stop. 3) Ho messo per esempio tre livelli di prezzo, ai quali una parte della dimensione del lotto dovrebbe essere chiusa. Per esempio, espongo l'ordine di vendere a 1$, nei parametri del consulente specifica quanta % (o quanto volume) chiudere a 1,2, quanta % (o quanto volume) a 1,3 e il saldo a 1,4.

 
ara66676:
Diciamo che era importante per me determinare il tempo, 10 secondi prima della chiusura di ogni cinque minuti, e poiché l'analisi comprende 28 coppie di valute, questa barra sarà per qualsiasi coppia, e il numero di tick nel mio caso non ha importanza.

Allora è più semplice così:

datetime TSec; // Tempo corrente in secondi dall'inizio degli ultimi cinque minuti

TSec = TimeCurrentl() % 300; // Resto della divisione. Può essere paragonato a 290 = 5 minuti - 10 secondi.

In caso di disconnessione dal server, l'ultimo tempo conosciuto TimeCurrent non cambierà, rimanendo indietro rispetto al tempo reale. Se c'è fiducia nel timer di sistema in funzione sul computer terminale, per esempio, quando è sincronizzato automaticamente con il tempo astronomico del sistema operativo (errore di 1-2 secondi) o altrimenti, è meglio non usare l'ultimo tempo conosciuto del server (tempo dell'ultimo arrivo di citazioni), ma il tempo proprio del computer datetimeTimeLocal(). Anche questo tempo è contato dal 1970.01.01 0:00:00 in secondi ed è adatto per misurare 5 minuti e 10 secondi, la differenza tra i fusi orari del computer e del server non è importante. Allora

TSec = TimeLocal() % 300;

 
Vlad143:

Allora è più semplice così:

datetime TSec; // Tempo corrente in secondi dall'inizio degli ultimi cinque minuti

TSec = TimeCurrentl() % 300; // Resto della divisione. Può essere paragonato a 290 = 5 minuti - 10 secondi.

In caso di disconnessione dal server, l'ultimo tempo conosciuto TimeCurrent non cambierà, rimanendo indietro rispetto al tempo reale. Se c'è fiducia nel timer di sistema in funzione sul computer terminale, per esempio, quando l'ora del computer è sincronizzata automaticamente con l'ora astronomica del sistema operativo (errore di 1-2 secondi) o altrimenti, è meglio non usare l'ultima ora conosciuta del server (l'ora dell'ultimo arrivo delle citazioni), ma il tempo del computer datetimeTimeLocal(). Anche questo tempo è contato dal 1970.01.01 0:00:00 in secondi ed è adatto per misurare 5 minuti e 10 secondi, la differenza tra i fusi orari del computer e del server non è importante. Allora

TSec = TimeLocal() % 300;

grazie, anche utile.
 
Per favore consigliate come interrompere la sommatoria delle posizioni non redditizie
    Подскажите, пожалуйста, как прервать суммирование убыточных позиций при срабатывании Тейкпрофита. После заново считать.
    
    Использую функцию Кimа 
    
     double GetProfitFromDateInCurrency(string sy="", int op=-1, int mn=-1,  datetime dt=0)
{
  p=0;
  int    i, k=OrdersHistoryTotal();

  if (sy=="0") sy=Symbol();
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
      if ((OrderSymbol()==sy || sy=="") && (op<0 || OrderType()==op)) {
        if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
          if (mn<0 || OrderMagicNumber()==mn) {
            if (dt<OrderCloseTime()) {
             
             if(OrderProfit()<0){
              p+=OrderProfit();
            }
          }
        }
      }
    }
  }
 }
  
  return(p);
 
Neron_plus34:
Per favore consigliate come interrompere la sommatoria delle posizioni non redditizie
if(dt<OrderCloseTime()) {
   if(OrderProfit()<0) p+=OrderProfit(); 
   else break;
   }