Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 1009

 
Aleksey Vyazmikin:

Probabilmente dipende dal metodo di modellazione della zecca...

Possibilmente. Ma questo broker ha una qualità di quotazione del 100% su tutte le coppie, tranneEUR/USD(la coppia più popolare). Se ottimizzate il vostro EA su una tale qualità, il fallimento è garantito).

 
Aleksandr Prishenko:

Forse. Ma questo broker ha una qualità di quotazione del 100% su tutte le coppie, tranneEUR/USD(la coppia più popolare). Se ottimizzate il vostro Expert Advisor usando una tale qualità, il suo fallimento è garantito).

Puoi adattarlo a qualsiasi condizione, la cosa principale è usare più variabili/indicatori. Nessuno garantisce una ripetizione della sequenza degli stessi prezzi come sulla storia - è solo la probabilità su cui l'Expert Advisor deve sopravvivere...

 
Un trade per barra o tempo. Come implementare?
 
Vladimir Baskakov:
Un trade per barra ***

In OnTradeTransaction catturiamo la transazione TRADE_TRANSACTION_DEAL_ADD e determiniamo il tipo di transazione. Se l'affare è DEAL_TYPE_BUY o DEAL_TYPE_SELL, memorizziamo l'ora corrente di apertura della barra. Nel blocco di generazione del segnale, confrontiamo questo tempo con il tempo di apertura della barra corrente.

 
Vladimir Karputov:

In OnTradeTransaction catturiamo la transazione TRADE_TRANSACTION_DEAL_ADD e determiniamo il tipo di transazione. Se l'affare è DEAL_TYPE_BUY o DEAL_TYPE_SELL, memorizziamo l'ora corrente di apertura della barra. Nel blocco di generazione del segnale, confrontiamo questo tempo con il tempo di apertura della barra corrente.

if (day!=TimeDay(TimeCurrent()))
      {
      
      // проверяем условие открытия
          {
          //если условие подходит, открываем сделку — и изменяем флаг day
          day=TimeDay(TimeCurrent());
          }
 
Vladimir Baskakov:

"TimeDay" - non esiste una tale funzione.

 
Vladimir Karputov:

"TimeDay" - non esiste una tale funzione.

Perdona il mio errore, vero?
MqlDateTime currTime=TimeToStruct(TimeCurrent());
   if (day!=currTime.day)
      {
      day=currTime.day);
      
      // открываем сделку
      
 

Vladimir Baskakov:
Пардон ошибся, а так?

MqlDateTime currTime=TimeToStruct(TimeCurrent());
   if (day!=currTime.day)
      {
      day=currTime.day);
      
      // открываем сделку
      

Questo funzionerà come "un affare al giorno".

 
Vladimir Karputov:

Questo funzionerà come "un affare al giorno".

Oh, è così!

 
Salve.
Domanda: Come calcolare il numero effettivo di barre di timeframe. Quando si richiede Bars, iBars dà 01.01.1970 (se convertito in data). Realisticamente, la barra attuale sullo schermo è del 21.09.2019.
L'intera storia sul grafico è di 25 settimane... (PERIODO_W1).

Com'è esattamente la linea di codice della query, cosa c'è effettivamente sullo schermo? Come riconciliare? Grazie.