Erreurs, bugs, questions - page 122

 
sergey1294:
J'ai hâte que la fonction OrderCalcMargin() fonctionne correctement pour les CFD, les contrats à terme, les indices, etc. Quelqu'un peut-il partager les formules permettant de calculer correctement la marge pour ces instruments ?

Il n'y en a pas un dans l'aide ? Il semble être...
 
Interesting:

Et j'ai probablement fait remonter tout ça, je ne vois pas d'autre raison...

Je vais essayer de décrire la situation de manière plus détaillée.

Il y a une classe simple "CMqlTimer", la tâche de cette classe est de suivre le moment de changement de différents intervalles de temps : heure, jour, semaine, mois, année.

Tout est réalisé avec des primitives très simples, par exemple, si les minutes sont égales à 0, c'est qu'il y a une "nouvelle heure" ; si le numéro du jour de la semaine ne correspond pas à celui stocké dans la variable, c'est qu'il y a alternance de jours ("00:00:00" à l'heure du serveur). Et ainsi de suite.

L'analyse est effectuée lorsque le timer est déclenché, avec un intervalle de 1 seconde, le travail est effectué dans CMqlTimer::OnTimer(). Si l'intervalle de temps change, la fonction doit être exécutée. Par exemple, si c'est un "nouveau" jour, la fonction CMqlTimer::OnRolloverDay() doit être exécutée.


Si nous supprimons le reste du code et n'écrivons que OnRolloverDay(), le résultat sera le suivant :

Tous les événements de l'utilisateur sont suivis et transmis pour traitement à la classe principale.

Cela ressemble à quelque chose comme ceci

Ainsi, les événements n'atteignent pas OnChartEvent en mode test, c'est-à-dire que l'Expert Advisor ne peut pas traiter un événement envoyé en utilisant EventChartCustom en mode test. Je l'ai vérifié en affichant tous les événements dans le journal.

PS

Le plus intéressant, c'est que tous les événements arrivent sur la démo, mais dans le testeur, cela refuse de fonctionner.

Avant 319, tout a fonctionné et dans le testeur, les événements sont traités avec succès. C'est vrai que la dernière version où ça a marché, je ne peux pas dire...

alexvd:
Merci. Nous devrons y réfléchir.
Puis-je vous demander comment les choses évoluent dans ce sens ? J'ai vraiment besoin que les événements du testeur fonctionnent correctement...
 
Interesting:
Ce n'est pas dans l'aide ? Il semble être...

J'ai bien compris, ce que je ne comprends pas, ce sont les variables suivantes dans les formules, surlignées en rouge

Identifiant

Description

Formule

SYMBOLE_CALC_MODE_FOREX

Mode Forex - calcul des bénéfices et des marges pour le Forex

Marge : Lots*Taille_contrat/Levage

Profit : (prix de clôture - prix d'ouverture)*Taille du contrat*Lots

SYMBOLE_CALC_MODE_FUTURES

Mode Futures - calculer la marge et le profit pour les futures

Marge : Lots *InitialMargin*Percentage/100

Profit : (prix de clôture - prix d'ouverture) * prix du pic / taille du pic * lots.

SYMBOLE_CALC_MODE_CFD

Mode CFD - calcul de la marge et du bénéfice pour CFD

Marge : Lots *Taille du contrat*Prix du marché*Pourcentage/100

Profit : (prix de clôture - prix d'ouverture)*Taille du contrat*Lots

SYMBOLE_CALC_MODE_CFDINDEX

Mode index CFD - calcul de la marge et du bénéfice pour les index CFD

Marge : (Lots*Taille du contrat*Prix du marché)*Prix du pic/Taille du pic

Profit : (prix de clôture - prix d'ouverture)*Taille du contrat*Lots

SYMBOLE_CALC_MODE_CFDLEVERAGE

Mode Levier CFD - calcul de la marge et du profit pour les CFD lorsque l'on négocie avec un levier.

Marge : (Lots*Taille du contrat*Prix du marché*Pourcentage)/Levage

Profit : (prix de clôture - prix d'ouverture)*Taille du contrat*Lots

Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте - Документация по MQL5
 
Interesting:
Puis-je vous demander comment les choses évoluent dans ce sens ? J'ai vraiment besoin que les événements du testeur fonctionnent correctement...

A votre demande, la demande a été formée - elle ne sera pas perdue !

 
alexvd:

A votre demande, la demande a été formée - elle ne sera pas perdue !

Merci, nous allons attendre...
 

Bug - ça marchait avant, mais maintenant ça ne marche plus.

//+------------------------------------------------------------------+
//| 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 - ça marchait avant, mais maintenant ça ne marche plus.

Ça marche pour moi.

Voici le résultat :

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 - ça marchait avant, mais maintenant ça ne marche plus.

Les deux fonctionnent pour moi. Construire 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

Je ne le fais pas, ça ne marche pas. Les chiffres sont différents. Construisez 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

J'ai ça :

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

Procès-verbal :

08.09.2010 21:30:15 PrivalTest (EURUSD,M1) 10.09.2010 19:30:24
08.09.2010 21:30:15 PrivalTest (EURUSD,M1) 10.09.2010 19:30:24

Win XP.