Errori, bug, domande - pagina 289

 
solo registri - il re-rating non influenzerà le prestazioni dell'Expert Advisor
ecc.

Ecco il codice nell'EA (provato molte funzioni per determinare l'uguaglianza della linea 0 dell'indicatore )

Ho preso la più semplice.

if (Sp3Buffer[20]!=0 && Sp3Buffer[21]!=0 && Sp3Buffer[22]!=0 && Sp3Buffer[23]!=0 && Sp3Buffer[24]!=0)

qui abbiamo i valori della linea dell'indicatore qui dal log del tester via stampa

[20]=34.40035703438407[21]=35.93782852396674[22]=35.97127995180715[23]=30.49164953708304[24]=32.90441573888087

non c'è uno zero, ma guardando l'indicatore - un chiaro zero - e nei valori di

dell'indicatore è anche zero.

che diavolo?

 

Questo è il tipo di assurdità che è venuto fuori nel log dopo che il comando di aggiornamento è stato eseguito sul grafico:

2011.02.03 02:24:51 HistoryBase '#IBM' 1 barre non valide rimosse
2011.02.03 02:24:50 HistoryBase '#IBM' 1 barre non valide rimosse
2011.02.03 02:24:49 HistoryBase '#IBM' 1 barre non valide rimosse
2011.02.03 02:24:48 HistoryBase '#IBM' 1 barre non valide rimosse
2011.02.03 02:24:47 HistoryBase '#IBM' 1 barre non valide rimosse
2011.02.03 02:24:46 HistoryBase '#IBM' 1 barre non valide rimosse

ecc. ogni secondo.

TF Sentinella

 
alexluek:
solo registri - il re-rating non influenzerà le prestazioni dell'Expert Advisor
ecc.

Ecco il codice nell'EA (provato molte funzioni per determinare l'uguaglianza della linea 0 dell'indicatore )

Ho preso la più semplice.

qui abbiamo i valori della linea dell'indicatore qui dal log del tester via stampa

non c'è uno zero, ma guardando l'indicatore - un chiaro zero - e nei valori di

dell'indicatore è anche zero.

che diavolo?

Avete dimenticato di invertire l'array?
 
sergey1294:
Avete dimenticato di invertire l'array?
L'ordine inverso di indicizzazione è impostato sia nell'indicatore che nell'Expert Advisor, ma non so cosa sia sbagliato. Grazie
 

Interessante, si scopre che lo stesso Expert Advisor su diversi computer aggiunge modelli al grafico da luoghi diversi:

su 1 computer da MetaTrader 5\Profili\Modelli

su 2 computer da MetaTrader 5\MQL5\Files

Aggiunta di una linea inChartApplyTemplate(handle_Chart, "Sova15_30.tpl")

Cosa c'è, chi può aiutarmi a capirlo?

 
Puoi dirmi come ottenere il tempo dell'ultimo cambio di posizione?
 
beginner:

Puoi dirmi come ottenere il tempo dell'ultimo cambio di posizione?
https://www.mql5.com/ru/articles/138 trovare myposition.Time() lì
Как использовать торговые классы Стандартной библиотеки при написании советника
Как использовать торговые классы Стандартной библиотеки при написании советника
  • 2010.11.10
  • Samuel
  • www.mql5.com
В статье рассказывается о том, как использовать основной функционал торговых классов Стандартной библиотеки при написании советников, в которых применяется открытие, закрытие и модификация позиции, проверка свободной маржи перед размещением торговых ордеров, размещение и удаление отложенных ордеров. Показано, как использовать торговые классы для получения свойств ордеров и сделок.
 
beginner:

Puoi dirmi come ottenere il tempo dell'ultimo cambio di posizione?

Determinare quale scambio sul simbolo è stato l'ultimo.

Potete prenderlo in OnTrade() o nella cronologia.

Trolls:
https://www.mql5.com/ru/articles/138 trovare myposition.Time() lì

Questo è il modo in cui viene restituito il tempo di apertura della posizione, se ricordo bene (cioè, per quanto ho capito, restituirà il tempo del primo trade che ha aperto la posizione).

Per quanto riguarda l'articolo citato, myhistory e mydeal possono essere utili(forse qualcos'altro andrà bene).

 
Interesting:

Determinare quale scambio sul simbolo è stato l'ultimo.

Potete prenderlo in OnTrade() o nella cronologia.

Questo è il modo in cui viene restituito il tempo di apertura della posizione, se ricordo bene (cioè, per quanto ho capito, viene restituito il tempo del primo trade, che ha aperto la posizione).
Sì, questo è il problema, cioè dobbiamo trovare l'ultimo trade per lo strumento richiesto e ottenere il suo tempo, si può fare più semplicemente?
 
beginner:
Sì, questo è il problema, cioè è necessario trovare l'ultimo affare per lo strumento richiesto e ottenere il suo tempo, ma in un modo più semplice?

Sei interessato a una posizione specifica (il simbolo e il suo Id sono noti) o al caso generale di tutte le posizioni?

Se si guarda solo attraverso la storia e analizzare le offerte (utilizzando mydeal), allora circa così:

1. Otteniamo il numero totale di operazioni del periodo, passandole in rassegna, selezionando solo quelle per il simbolo e/o quelle che hanno partecipato a formare la posizione.

if (HistorySelect(0,TimeCurrent()))
ulong d_ticket; // deal ticket
{
// Получить общее количество сделок в истории
int tot_deals = HistoryDealsTotal();

  for(int j=0; j<tot_deals; j++)
  {
  d_ticket = HistoryDealGetTicket(j);

    if(d_ticket>0)  
    {
    mydeal.Ticket(d_ticket)

      if(mydeal.Symbol()==SymbolTitle)
      {
      //формируем список сделок и анализируем его (если я правильно понял последняя сделка наша)
      }

    }   

  }

}

2. è meglio selezionare le offerte non per simbolo, ma per ID di una posizione specifica (è più facile e più affidabile).

Anche se sono sicuro che ci sono soluzioni più corrette e semplici.

Motivazione: