Errori, bug, domande - pagina 122

 
sergey1294:
Non posso aspettare che la funzione OrderCalcMargin() funzioni correttamente per CFD, futures, indici, ecc. Qualcuno può condividere le formule per calcolare correttamente il margine per questi strumenti?

Non ce n'è uno nella guida? Sembra essere...
 
Interesting:

E probabilmente ho tirato fuori l'intera faccenda, non riesco a pensare a nessun'altra ragione...

Cercherò di descrivere la situazione in modo più dettagliato.

C'è una semplice classe "CMqlTimer", il compito di questa classe è di tracciare il momento di cambiamento di diversi intervalli di tempo: ora, giorno, settimana, mese, anno.

Tutto è realizzato con primitive molto semplici, per esempio, se i minuti sono uguali a 0 allora è arrivata "una nuova ora"; se il numero del giorno della settimana non corrisponde a quello memorizzato nella variabile allora è arrivata l'alternanza del giorno ("00:00:00" secondo l'ora del server). E così via.

L'analisi viene eseguita quando il timer viene attivato, con un intervallo di 1 secondo, il lavoro viene fatto in CMqlTimer::OnTimer(). Se l'intervallo di tempo cambia, la funzione deve essere eseguita. Per esempio se è un "nuovo" giorno dovrebbe essere eseguita la funzione CMqlTimer::OnRolloverDay().


Se rimuoviamo il resto del codice e scriviamo solo OnRolloverDay(), il risultato sarà il seguente:

Tutti gli eventi utente sono tracciati e passati per la gestione alla classe principale

Sembra qualcosa del genere

Quindi, gli eventi non raggiungono OnChartEvent in modalità test, cioè l'Expert Advisor non può gestire un evento inviato usando EventChartCustom in modalità test. Controllato visualizzando tutti gli eventi nel registro.

PS

Lacosa più interessante è che tutti gli eventi arrivano sulla demo, ma nel tester si rifiuta di funzionare.

Prima di 319 tutto ha funzionato e nel tester, gli eventi sono gestiti con successo. Vero l'ultima versione in cui ha funzionato non posso dire...

alexvd:
Grazie. Dovremo pensarci.
Posso chiedere come procedono le cose in questa direzione? Ho davvero bisogno che gli eventi nel tester funzionino correttamente...
 
Interesting:
Non è nella guida? Sembra essere...

Ho sicuramente, quello che non capisco sono le seguenti variabili nelle formule, evidenziate in rosso

Identificatore

Descrizione

Formula

SIMBOLO_CALC_MODO_FOREX

Modalità Forex - calcolo del profitto e del margine per il Forex

Margine: Lotti*dimensione del contratto/leva

Profitto: (close_price-open_price)*Contract_Size*Lots

SYMBOL_CALC_MODE_FUTURES

Modalità Futures - calcola il margine e il profitto per i futures

Margine: Lotti *InitialMargin*Percentage/100

Profitto: (close_price-open_price)*TickPrice/TickSize*Lots

SYMBOL_CALC_MODE_CFD

Modalità CFD - calcolo del margine e del profitto per CFD

Margine: Lots *ContractSize*MarketPrice*Percentage/100

Profitto: (close_price-open_price)*Contract_Size*Lots

SYMBOL_CALC_MODE_CFDINDEX

Modalità indice CFD - calcolo del margine e del profitto per gli indici CFD

Margine: (Lotti*Dimensione contratto*Prezzo di mercato)*TickPrice/TickSize

Profitto: (close_price-open_price)*Contract_Size*Lots

SYMBOL_CALC_MODE_CFDLEVERAGE

Modalità di leva CFD - calcolo del margine e del profitto per i CFD quando si fa trading con la leva

Margine: (Lotti*Dimensione contratto*Prezzo di mercato*Percentuale)/Leva

Profitto: (close_price-open_price)*Contract_Size*Lots

Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте - Документация по MQL5
 
Interesting:
Posso chiedere come procedono le cose in questa direzione? Ho davvero bisogno che gli eventi nel tester funzionino correttamente...

Su vostra richiesta, l'applicazione è stata formata - non sarà persa!

 
alexvd:

Su vostra richiesta, l'applicazione è stata formata - non sarà persa!

Grazie, aspetteremo...
 

Bug - prima funzionava, ma ora no.

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
  // вот так работает
     Print(TimeCurrent()+2*PeriodSeconds(PERIOD_D1));
  // а вот так нет (а раньше работало)  
     datetime    time_end=0;
     time_end=TimeCurrent()+2*PeriodSeconds(PERIOD_D1);
     Print(time_end);
  }
 
Prival:

Bug - prima funzionava, ma ora no.

Per me funziona.

Ecco il risultato:

2010.09.08 20:15:12 Draft1_1 (EURUSD,M15) 2010.09.10 19:15:04
2010.09.08 20:15:12 Draft1_1 (EURUSD,M15) 2010.09.10 19:15:04

 
Prival:

Bug - prima funzionava, ma ora no.

Entrambi funzionano per me. Costruire 324
 


2010.09.08 21:09:13 00 (EURUSD,M1) 2010.09.08 12:32:25
2010.09.08 21:09:13 00 (EURUSD,M1) 2010.09.10 19:09:13

Io no, non funziona. i numeri sono diversi. costruire 324. Win7 64bit.

 

Prival:

2010.09.08 21:09:13 00 (EURUSD,M1) 2010.09.08 12:32:25
2010.09.08 21:09:13 00 (EURUSD,M1) 2010.09.10 19:09:13

Ho questo:

2010.09.08 21:18:04 PrivalTest (EURUSD,H1) 2010.09.10 19:18:15
2010.09.08 21:18:04 PrivalTest (EURUSD,H1) 2010.09.10 19:18:15

Verbali:

2010.09.08 21:30:15 PrivalTest (EURUSD,M1) 2010.09.10 19:30:24
2010.09.08 21:30:15 PrivalTest (EURUSD,M1) 2010.09.10 19:30:24

Win XP.