Errori, bug, domande - pagina 1846

 
Konstantin:

Grazie per l'esempio, ma non vorrei creare un oggetto di tipo complesso solo per un array, sembra tutto un codice eccessivo))


Cos'è questa sciocchezza infantile sui tipi complessi? Questa è una sciocchezza elementare.
Stai parlando di C++, ma hai mai dato un'occhiata alla libreria STL? (lì è un inferno).

Il problema è risolto nel modo più accettabile, che si può trovare in un tempo ragionevole.
Poi, se necessario, rifattorizzate quanto volete, ma difficilmente si arriverà a questo.

Usare una classe wrapper per qualche libreria, e a volte una funzionalità standard, è più o meno una variazione dello schema "facciata".

 

MQL ha la sua libreria standard con i contenitori.
L'ho usato quando ero freelance, circa 2 anni fa. Non molto veloce e non molto pratico, secondo la mia opinione personale.

Ma ora hanno aggiunto modelli adeguati + puntatori di funzione alla funzionalità MQL.
Dubito che gli sviluppatori abbiano stanziato risorse per modificare la libreria standard dei contenitori per adattarla alle nuove caratteristiche.
Ma comunque la libreria standard è meglio della maggior parte delle stampelle scritte in proprio.

 
Sergey Dzyublik:


Cos'è questa sciocchezza infantile sui tipi complessi? È elementare.
Avete mai dato un'occhiata alla libreria STL? (è qui che il diavolo si rompe una gamba).

Il problema è risolto nel modo più accettabile, che si può trovare in un tempo ragionevole.
Poi, se necessario, rifattorizzate quanto volete, ma difficilmente si arriverà a questo.

Usare una classe wrapper per qualche libreria, e a volte una funzionalità standard, è più o meno una variazione dello schema "facciata".


Ci sono momenti in cui creare una classe wrapper per il gusto di ottenere un array da un metodo èsuperfluo, non mi dispiace ottenere un array come buffer, ma sarebbe più comune ottenerlo come in C++ tramite puntatore, ma poiché non è possibile, ciò non significa che bisogna fare overhead ))

 

Vi chiedo di introdurre una commissione media del broker MOEX per i simboli di scambio su Metaquotes-Demo.

Al momento non c'è commissione e si ottengono graals sulla demo e sul tester.

 
fxsaber:

Vi chiedo di introdurre una commissione media del broker MOEX per i simboli di scambio su Metaquotes-Demo.

Al momento non ci sono commissioni e si ottengono graals su demo e tester.


Quando la demo su strumenti di scambio, l'inclusione della commissione non vi aiuterà a sbarazzarsi del graal - in generale, ci commissione dipende dal tasso, bene, supponiamo che, come nel piano tariffario universale, circa 0,5 tick, cioè per un giro hai dato commissione = 1tica.

E questa commissione di 1 tick non farà la differenza, tenendo conto del fatto che sul demo i trade sono aperti e chiusi da Last, cioè senza tener conto dello spread. aprire e chiudere un affare - ottenere 0 all'uscita!

Anche la differenza tra te e il tester è diversa.

 
kaus_bonus:


Nella demo per gli strumenti di scambio, l'inclusione di una commissione non vi aiuterà a sbarazzarvi del graal - in generale, ci commissione dipende dal tasso, bene, supponiamo che sia, come nella tariffa universale, circa 0,5 tick, cioè per un giro avete dato commissione = 1tic.

Non capisco le zecche. L'importo della commissione è sempre una certa percentuale. Ho un graal sugli ordini limite. Lì, si spera, le pinne non sono colpite.

Per esempio, se hai una commissione di 1 tick non farà alcuna differenza se apri e chiudi operazioni in demo, cioè non consideri lo spread.

Se è così, non è un bug.

Se è così, non è un bug nel software, ma nelle teste.

 
Sembra che il tester debba essere controllato per la sua correttezza.
 
fxsaber:
Sembra che il tester debba essere controllato per la sua correttezza.

Forum sul trading, sistemi di trading automatico e test di strategie di trading

Elenco dei cambiamenti in MetaTrader 5 Client Terminal builds

MetaQuotes Software Corp., 2016.09.14 16:24

Nuova MetaTrader 5 build 1430: scheda Esposizione aggiornata

  1. Tester: rimosso lo slippage nell'esecuzione degli ordini Buy Limit e Sell Limit durante i test su strumenti di scambio.
Expert Advisor per il tester (Metaquotes-Demo)
#include <MT4Orders.mqh>

// Скольжение лимитника на RTS-6.17
void OnTick()
{
  MqlTick Tick;    
  SymbolInfoTick(_Symbol, Tick);

// 2017.04.06 10:00:00                [time]   [bid]   [ask]  [last] [volume]    [time_msc] [flags]  
// 2017.04.06 10:00:00   2017.04.06 10:00:00  114200  114260  114200        2 1491472800335      56  
  if (Tick.time_msc == 1491472800335)
    OrderSend(_Symbol, OP_BUYLIMIT, 1, 114250, 0, 0, 0);
}

Risultato

2017.04.07 18:18:45.366 RTS-6.17 : real ticks begin from 2017.04.06 00:00:00
2017.04.07 18:18:45.778 2017.04.06 10:00:00   buy limit 1.00 RTS-6.17 at 114250 (114200 / 114260 / 114200)
2017.04.07 18:18:46.051 2017.04.06 10:00:00   order [#2  buy limit 1.00 RTS-6.17 at 114250] triggered
2017.04.07 18:18:46.051 2017.04.06 10:00:00   deal #2  buy 1.00 RTS-6.17 at 114240 done (based on order #2)
2017.04.07 18:18:46.051 2017.04.06 10:00:00   deal performed [#2  buy 1.00 RTS-6.17 at 114240]
2017.04.07 18:18:46.051 2017.04.06 10:00:00   order performed buy 1.00 at 114240 [#2  buy limit 1.00 RTS-6.17 at 114250]

Limitare lo slippage sul simbolo di scambio - BAG!

 
Sul conto demo Metaquotes-Demo, scorrono anche gli ordini limite sugli ordini di scambio. BORSA!
 
A100:

Sono passati più di 30 minuti e non c'è ancora nessuna chiamata OnDeinit->M5

E ora cambiamo il codice dell'Expert Advisor (cambia leggermente l'ordine) ...

Risultato:

2017.02.06 01:31:45.002 OnInit->M5
2017.02.06 01:31:48.340 OnDeinit->M5:1 Chiamato immediatamente e senza ritardo!
2017.02.06 01:31:48.409 OnInit->M15


Si è notato che nei registri mancano le righe

OnDeinit - potrebbe aver funzionato, ma con un grande flusso di uscita salta l'uscita

Ho scritto un walkthrough che contiene 3 righe Print("1"); Print("2"); Print("3");

Stavo ottenendo il salto di uno e l'altro nell'output