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

 
Come fare una martingala corretta?
Ho capito bene:
Prima di aprire ogni trade, è necessario controllare tutti i trade su questo simbolo con questo mago e se l'ultimo trade della data con una perdita, rispettivamente aumentare il lotto?
 
Roman Sharanov:
Qual è il modo corretto di fare una martingala?
Ho capito bene:
Prima di aprire ogni trade, devi controllare tutti i trade su questo simbolo con questo mago e se l'ultimo trade per data è in perdita, rispettivamente aumentare il lotto?

È così

 
Sergey Gritsay:

È così

solo non capisco come calcolare la transazione più recente di tutte

 
Gente, qualcuno si è imbattuto nella necessità di ottenere dati di indicatori basati su un altro indicatore, per esempio RSI sovrapposto a RSI.
 
Roman Sharanov:

Solo che non capisco come calcolare la transazione più recente di tutte

Va più o meno così.

double  ProfitLastDeals()
  {
   double m_profit=0;
   int total=OrdersTotal();

   for(int i=0; i<total; i++)
     {
      if(!OrderSelect(i,SELECT_BY_POS))continue;
      if(OrderMagicNumber()!=m_magic)continue;
      if(OrderSymbol()!=m_symbol)continue;
      if(OrderType()==m_type)
        {
         m_profit=OrderProfit();
        }
     }
   return(m_profit);
  }
 
Sergey Gritsay:
Gente, qualcuno si è imbattuto, ho bisogno di ottenere dati di indicatori basati su un altro indicatore, ad esempio RSI sovrapposto a RSI.

Tutto risolto, la domanda non è più rilevante

 
Roman Sharanov:

Solo che non capisco come calcolare l'ultima transazione di tutti gli scambi

Scusa, l'ultimo esempio seleziona tra gli aperti, tra i chiusi dovrebbe essere così

double  ProfitLastDealsHistory()
  {
   double m_profit=0;
   int total=OrdersHistoryTotal();

   for(int i=0; i<total; i++)
     {
      if(!OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))continue;
      if(OrderMagicNumber()!=m_magic)continue;
      if(OrderSymbol()!=m_symbol)continue;
      if(OrderType()==m_type)
        {
         m_profit=OrderProfit();
        }
     }
   return(m_profit);
  }
 

Strano comportamentodi iBarShift(). Restituisce l'indice (-1) con il flagesatto =false esplicitamente controllato.

L'errore si verifica in modo casuale in qualsiasi momento, non c'è modo di prenderlo manualmente.

Quando si ottiene un indice negativo, il codice scrive nella console i parametri della richiesta eseguita e il suo risultato

2019.01.04 10:40:24.047 CCC (GBPUSD,M1) Neg index: NZDUSD TimeCurrent: 2019.01.04 09:40:23 Request: 2019.01.04 09:40:23 TimeLastTick: 2019.01.04 09:40:23.44
2019.01.04 10:40:24.047 CCC (GBPUSD,M1) LastError: 0

Richiesta - il momento in cui viene richiesto l'indice della barra

TimeLastTick è il tempo dell'ultimo tick per il simbolo richiesto;MqlTick[] è preso subito dopo l'errore.

Quali possono essere le ragioni di tale comportamento, forse qualcuno ha incontrato?

 
SemenTalonov:

Strano comportamentodi iBarShift(). Restituisce l'indice (-1) con il flagesatto =false esplicitamente controllato.

L'errore si verifica in modo casuale in qualsiasi momento, non c'è modo di prenderlo manualmente.

Quando si ottiene un indice negativo, il codice scrive nella console i parametri della richiesta eseguita e il suo risultato

Richiesta - il momento in cui viene richiesto l'indice della barra

TimeLastTick è il tempo dell'ultimo tick per il simbolo richiesto;MqlTick[] è preso subito dopo l'errore.

Quali possono essere le ragioni di tale comportamento, forse qualcuno ha incontrato?

Cosa dice la documentazione su exact == false?
 
Artyom Trishkin:
Cosa dice la documentazione su exact == false?

Valore restituito se nessuna barra è stata trovata nel momento specificato. Quandoexact=false iBarShift restituisce l'indice della barra più vicina con tempo di apertura inferiore a quello specificato (time_open<time). Se tale barra non viene trovata (nessuna storia prima del tempo specificato), la funzione restituisce -1.

Ma abbiamo la storia, è un fatto. Tutto avviene alla barra più recente (0-esima per serie temporale).

Motivazione: