Erreurs, bugs, questions - page 1140

 
Zeleniy:

Dans MQL4 vous pouvez prescrire dans une ligne quelle ligne utiliser dans l'indicateur MODE_TE NKANSEN et shift (décalage par rapport à la barre courante)

Quelle est la manière correcte d'écrire exactement la même fonction en 5 ?

qu'est-ce que ça rapporte dans 5 ans ?
iIchimoku
 
Zeleniy:

En MQL4 vous pouvez écrire dans une ligne quelle ligne de l'indicateur iIchimoku MODE_TE NKANSEN et shift (décalage par rapport à la barre actuelle)

Comment puis-je écrire exactement la même fonction en 5 ?

J'ai écrit une ligne, mais il donne une erreur 'iIchimoku' - mauvais paramètres compte Ichimoku.mq5

Voici ce que j'obtiens dans la ligne TENKANSEN_LINE, 0

Dans MQL5, l'entrée de l'indicateur iIchimoku est différente.

int  iIchimoku(
   string           symbol,            // имя символа
   ENUM_TIMEFRAMES  period,            // период
   int              tenkan_sen,        // период Tenkan-sen
   int              kijun_sen,         // период Kijun-sen
   int              senkou_span_b      // период Senkou Span B
   );
Документация по MQL5: Технические индикаторы / iIchimoku
Документация по MQL5: Технические индикаторы / iIchimoku
  • www.mql5.com
Технические индикаторы / iIchimoku - Документация по MQL5
 

La fonction OnTesterPass() n'est pas appelée après toutes les passes d'optimisation, et elle saute toujours plusieurs passes d'optimisation. Cela se produit même si le cadre est créé de force à l'aide d'une boucle.

Suite à l'optimisation de ce modèle, le nombre de passages dans le journal du terminal sera toujours inférieur de 5 à 20 passages à ce qui a été spécifié pour l'optimisation.

A quoi sert l'optimisation lente et la fonction OnTesterPass() si elle échoue toujours à tester plusieurs passes qui peuvent être celles recherchées ?

input int         StringReadOrSumma=1000;
//---
void OnTick()  {  }
//---
long PassNum;
string NameFrameStatistik="stat";
long FrameID_Statistik;
double OnTesterResult;
double ArrValueStatistik[];
//---
double OnTester()
  {
   ArrayResize(ArrValueStatistik,1);
   ArrValueStatistik[0]=StringReadOrSumma;
   if(!FrameAdd(NameFrameStatistik,FrameID_Statistik,OnTesterResult,ArrValueStatistik)) return(0.0);
   return(0.0);
  }
//---
void OnTesterPass()
  {
   if(!FrameNext(PassNum,NameFrameStatistik,FrameID_Statistik,OnTesterResult,ArrValueStatistik))
     { Print(__FUNCTION__,__LINE__);return;}

   static int numPass=0;
   numPass++;
   Print(ArrValueStatistik[0]," --- ",numPass);
  }
 
lewvik:

La fonction OnTesterPass() n'est pas appelée après toutes les passes d'optimisation, et elle saute toujours plusieurs passes d'optimisation. Cela se produit même si le cadre est créé de force à l'aide d'une boucle.

Suite à l'optimisation de ce modèle, le nombre de passages dans le journal du terminal sera toujours inférieur de 5 à 20 passages à ce qui a été spécifié pour l'optimisation.

Quel est l'intérêt d'une optimisation lente et de la fonction OnTesterPass() si elle ne teste jamais plusieurs passes et que celles-ci sont probablement les plus recherchées ?

L'événement peut être généré pour plusieurs images à la fois. C'est-à-dire qu'il est préférable de lire les images dans une boucle, par exemple while(!FrameNext(...))).

 
antt:

Un événement peut être généré pour plusieurs images à la fois. C'est-à-dire qu'il est préférable de lire les trames dans une boucle, par exemple while(!FrameNext(...))).

J'ai essayé de lire les cadres dans la boucle et de créer dans la boucle, le résultat est le même - plusieurs passages disparaissent quelque part sans trace. Plusieurs cadres ou un seul ne créent aucune différence. Pourquoi donc ? Est-ce un bug ou je suis quelque chose de mal, si un bug - c'est une hypothèse sérieuse, comment se fait-il - j'ai cherché et cherché les bons paramètres et finalement perdu dans la recherche !

Demande du Servicedesk#1007598| 2014.05.04 12:33

 

Qui peut me dire comment calculer dans mql5 lemontant des fonds libres nécessaires pour ouvrir un lot d'un certain symbole ?

Dans mql4, je sais comment faire, mais dans mql5, je ne le trouve pas.

 

Un tel bug a été détecté dans le testeur EA. Client Metatrader 5. Construire 930. Courtier : Otkrytie. FORTS.

Dans le testeur, les ordres annulés sont affichés comme s'ils avaient été exécutés. C'est écrit 2.0/2.0. Bien que la commande soit juste annulée :

Sur le compte de démonstration, les ordres annulés sont affichés comme non exécutés (ou partiellement exécutés). Par exemple 2.0/0.0 ou 2.0/1.0. Ce qui est le comportement correct :

En conséquence, ce bogue interfère avec le suivi de la quantité réelle exécutée. Lors des tests.

C'est un bug ? :)

 
harbor:

Qui peut me dire comment calculer dans mql5 lemontant des fonds libres nécessaires pour ouvrir un lot d'un certain symbole ?

Dans mql4, je sais comment faire, mais dans mql5, je ne le trouve pas.

Peut-être que c'est comme ça :

Print("Margin=", SymbolInfoDouble(_Symbol,SYMBOL_MARGIN_INITIAL)); 
 
escoman:

Un tel bug a été détecté dans le testeur EA. Client Metatrader 5. Construire 930. Courtier : Otkrytie. FORTS.

Dans le testeur, les ordres annulés sont affichés comme s'ils avaient été exécutés. C'est écrit 2.0/2.0. Bien que la commande soit juste annulée :

Merci pour le message. Corrigé.
 

Bonjour à tous !

Un tel problème.

J'ai réussi à obtenir la valeur des indicateurs Bands et MA.

Bands_handle=iBands(NULL,0,BP_var_s,0,BDev_var_s,PRICE_CLOSE) ;
CopyBuffer(Bands_handle,0,0,1,Base) ;
CopyBuffer(Bands_handle,1,0,1,Upper) ;
CopyBuffer(Bands_handle,2,0,1,Lower) ;
B_med_s=Base[0] ;
B_up_s=Supérieur [0] ;
B_low_s=Lower[0] ;

MA_handle=iMA(NULL,0,MA_var_b,0,MODE_SMA,PRICE_TYPICAL) ;
CopyBuffer(MA_handle,0,0,1,MAv) ;
M_av_s=MAv[0] ;

Puis imprimer : B_up_s = 1.264249475876921 M_av_s = 1.2595

J'essaie ensuite d'effectuer une opération matricielle B_up_s-M_av_s et j'obtiens le résultat 0.00000000.

Quel est le miracle ?