Errori, bug, domande - pagina 112

 
sandex:

Chi ha usato la funzione OrderCheck.

Ecco una costruzione come questa:

           MqlTradeRequest request;
           request.action=TRADE_ACTION_DEAL;
           request.symbol=_Symbol;
           request.volume=volume_exe;
           request.price=SymbolInfoDouble(_Symbol, SYMBOL_ASK);
           request.sl=0;
           request.tp=0;
           request.deviation=SymbolInfoInteger(_Symbol, SYMBOL_SPREAD)*2;
           request.type=ORDER_TYPE_BUY;
           request.type_filling=ORDER_FILLING_CANCEL;
           MqlTradeResult result;
           OrderCheck(request, result);
           if(OrderSend(request, result)==false)

Durante la compilazione, ottengo un errore: 'result' - la conversione dei parametri non è consentita.

Se si rimuove OrderCheck, tutto si compila normalmente e la posizione si apre nel tester.

Guarda la descrizione della funzione. Dice della struttura di risposta MqlTradeCheckResult.
 
Yedelkin:
Date un'occhiata alla descrizione della funzione. Dice della struttura di risposta MqlTradeCheckResult.

Grazie mille.

 
Dmitriy2:

Ecco cos'è...

Dovrebbe contare i profitti degli scambi a partire dalla data specificata. Dà un risultato completamente diverso da quello che è in realtà. Per esempio ho ottenuto 611 invece del risultato di circa 2000. Ho iniziato a controllare ogni giorno (linea commentata). Ci sono(!!) giorni in cui il risultato è lo stesso, ma di solito non è quello che dovrebbe essere...(non ho trovato nessuna regolarità). E il debugger produce lo stesso identico ciclo per tutto il numero di trade. Anche se posso rintracciare solo questo numero di accordi perché nessun valore viene visualizzato per qualsiasi altra variabile tranne che per le variabili int (l'espressione non può essere valutata).

Questo codice è corretto e sto usando correttamente il debugger...?

Il ciclo della transazione dovrebbe essere

for(i=0;i<HistoryDealsTotal();i=i++)
Nel debugger, usate "Step in" (F11). Quindi, entrando in una funzione in cui è definita una variabile o un'espressione, verrà mostrato il suo valore.
 
Valmars:

Il ciclo della transazione dovrebbe essere

Nel debugger, usate "Step with Entry" (F11). Poi, quando si entra in una funzione in cui è definita una variabile o un'espressione, verrà mostrato il suo valore.

diciamo che il ciclo parte da zero... ma dove sta scritto che i numeri degli accordi partono da zero? A giudicare dal fatto che ora abbiamo 10611 (prima erano 611, invece di circa 2000), cioè, più la dimensione del deposito originale, non ne sono sicuro... anche se è zero anche uno non capisco ancora da dove viene 10.000

Debugger, vedo, F11...

 
Dmitriy2:

diciamo che il ciclo parte da zero... ma dove sta scritto che i numeri degli accordi partono da zero? A giudicare dal fatto che ora si ottiene 10611 (prima era 611, invece di circa 2000), cioè, più la dimensione del deposito originale, non ne sono sicuro... anche se è zero anche uno non capisco ancora da dove viene 10.000

Debugger, vedo, F11...

Il primo accordo è di solito un deposito. Sembra che le transazioni siano contate nella storia a partire da 0. Quindi, se non mi sbaglio, la 0-esima transazione sarà un deposito.

Posso chiarire la formula con cui viene calcolato il profitto sul commercio?

PS

Se la memoria non mi inganna, il risultato dovrebbe essere calcolato così - TotalProfit = Profit+Swap-Commision;


 
Kos:
Perché SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_LIMIT), restituisce zero?
0 significa nessuna restrizione.
 
Interesting:

La prima transazione è di solito un deposito. Sembra che i trade siano contati nella storia a partire da 0. Quindi, se non mi sbaglio, il trade 0 sarà un deposito.

Può specificare la formula usata per calcolare il profitto dell'affare?

PS

Se la memoria non mi inganna, il risultato dovrebbe essere calcolato così - TotalProfit = Profit+Swap-Commision;


nell'ultima pagina in codice completo

da questo codice, il deposito non dovrebbe essere preso in considerazione in ogni caso

la commissione è anche più - è meno.

 
Yedelkin:

All'inizio il compilatore si lamentava che mancava "#import "lbS7N_Servis.ex5"".

Dopo aver cancellato questa linea ha ceduto:

2010.08.28 22:19:51 Servis[1] (EURUSD,H1) L1=1016990000 L2=1016990000 L3=6617010000 M1=1016990000
2010.08.28 22:19:51 Servis[1] (EURUSD,H1) A=101699 B=101699 C=661701
2010.08.28 22:19:51 Servis[1] (EURUSD,H1) --- OnInit() --- 1 --- !

Quando ho sostituito il numero di conto nel codice con il mio numero di conto, ho ottenuto:

2010.08.28 22:26:46 Servis[1] (EURUSD,H1) L1=1016990000 L2=1016990000 L3=1016990000 M1=1016990000

2010.08.28 22:26:46 Servis[1] (EURUSD,H1) A=101699 B=101699 C=101699

2010.08.28 22:26:46 Servis[1] (EURUSD,H1) --- OnInit() --- 1 --- !

Server MQ, build 316.

Grazie. Tutto funziona come dovrebbe essere con te. Non l'ho ancora capito.
 
sergey1294:

e il mio M1 non corrispondeva.

Significa che anche voi avete un bug, ma meno di me.

Forse dovresti cercarlo nella connessione del programma al sistema.

Che tipo di sistema avete?

Ho un core2duo 1.3 Ghz 64 Win7 licenza HB, 4GB ddr 2 RAM, costruire. 316

 
simpleton:

E ci sono ben tre situazioni uniche. Questi sono quelli rilevati. E quanti non rilevati?

E con questo stato di cose MetaQuotes inizierà il campionato 2010 tra un mese?

Oh, quante "meraviglie" ha in serbo per noi MetaTrader 5...

I vincitori saranno quelli i cui programmi contengono così tanti errori che, in combinazione con piccoli difetti nel programma, avranno un effetto tale che nessuno li raggiungerà mai.