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

 
MakarFX:

Penso che dovrebbe essere così

Se creiamo un nuovo oggetto ogni volta in OnTick(), il tempo del tick precedente non sarà salvato da nessuna parte.
Lo scopo di creare un oggetto globale è quello di memorizzare il tempo del tick precedente, confrontandolo con il tempo del nuovo tick sapremo se c'è una nuova barra o no...

 
MakarFX:
Perché abbiamo bisogno di questa variabile NB_M1?
Il suo unico scopo è quello di memorizzare il tempo dell'ultimo tick elaborato per ogni simbolo e timeframe:
protected:
   datetime          m_TOld;        // Время хранится 
   ENUM_TIMEFRAMES   m_TimeFrame;   //    для каждого таймфрейма
   string            m_Symbol;      //    каждого символа

 
Mikhail Tkachev:
class CIsNewBar

restituisce vero/falso , di che ora stiamo parlando?

 
MakarFX:

Prova, nel tester è ok

No, non è così, ora apre e chiude un contratto alla volta.

L'idea è esattamente quella di aprire un contratto aggiuntivo quando si è in trailing e il trailing stop viene tirato su da Brake even.

Fa tutto in modo obbediente. Ma vedo uno svantaggio nel fatto che con stop loss=150 pips e take profit=500 pips apre fino a cinque contratti e spesso tira anche in stop loss.
Tuttavia, ho notato che l'acquisto di cinque contratti porta alla diminuzione del prezzo di entrata nel mercato e quindi il rischio/margine è molto più alto.
A causa di questo voglio cambiare il mio robot per comprare solo un contratto, e per prendere profitto fino a due contratti, e il trailing stop loss aumenterebbe di cinque volte.
A causa di questo trailingorder (acquisto aggiuntivo e vendita aggiuntiva) e trailing (trailing stop loss) sono nel mio robot
 
Eugen8519:
No, non è così, apre e chiude un contratto alla volta.

L'idea è che il contratto di trailing aprirà un ulteriore contratto e il trailing stop sarà tirato su da Brake even.

Fa tutto in modo obbediente. Ma vedo uno svantaggio nel fatto che con stop loss=150 pips e take Profit=500 pips si apre a cinque contratti e spesso disegna anche uno stop loss.
Tuttavia, ho notato che l'acquisto di cinque contratti porta alla diminuzione del prezzo di entrata nel mercato e quindi il rischio/margine è molto più alto.
A causa di questo voglio renderlo trailing un contratto, e tira fino a prendere profitto massimo due contratti, e trailing stop loss si adatta fino a cinque volte.
Pertanto, sono stati aggiunti al robot il trailingorder (acquisto aggiuntivo e vendita aggiuntiva) e il trailing (trailing stop loss)

Qui, correggere "0" in "2".

   if(pos_total<=0 )
      {TrailingOrder();}
   Trailing();
 

come rendere questo problema automatico? ORDER_FILLING_FOK ORDER_FILLING_IOC ORDER_FILLING_RETURN

forse qualcuno ne ha uno già pronto?

 
Aleksandr Egorov:

come rendere questo problema automatico? ORDER_FILLING_FOK ORDER_FILLING_IOC ORDER_FILLING_RETURN

Forse qualcuno ha un esempio pronto?

C'è un esempio pronto nella documentazione. Ma prima è necessario definire una politica di riempimento per un simbolo. Cerca per SYMBOL_FILLING_FOK

 
Aleksandr Egorov:

come rendere questo problema automatico? ORDER_FILLING_FOK ORDER_FILLING_IOC ORDER_FILLING_RETURN

Forse qualcuno ne ha uno già pronto?

Compilare direttamente MqlTradeRequest ?

Ci sono troppe insidie!

guardare CTrade::FillingCheck() - come gli sviluppatori raccomandano di definire il riempimento

 
Buon pomeriggio a tutti. Qualcuno si è imbattuto in una situazione simile? In generale, c'è un oscillatore scalabile. Ho bisogno di sapere programmaticamente quali sono gli attuali valori estremi della scala della finestra visibile di questo oscillatore. Spero di capire quello che sto dicendo). Sarei grato per l'aiuto!
 
AMarkov:
Buon pomeriggio a tutti. Forse qualcuno ha incontrato una situazione simile? In generale, c'è un oscillatore scalabile. Ho bisogno di sapere programmaticamente quali sono i valori estremi della scala della finestra visibile di questo oscillatore al momento. Spero di capire quello che sto dicendo). Sarei grato per l'aiuto!
bool  ChartGetInteger( 
   long    chart_id,        // идентификатор графика 
   int     prop_id,         // идентификатор свойства 
   int     sub_window,      // номер подокна 
   long&   long_var         // сюда примем значение свойства 
   );

con identificatori CHART_PRICE_MIN e CHART_PRICE_MAX