Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 6. - page 273

 
Zhunko:
La bibliothèque.
Exemples dans le script de test.

Merci, Vadim :) Je comprends la direction, mais je veux l'implémenter dans MQL4 sans dll.

 
Barbarian:

Merci, Vadim :) Je comprends la direction, je veux l'implémenter dans MQL4 sans dll.

Cela ne fonctionnera pas.
 

double bb_up0=iBands(NULL,0,bb_p,bb_dev,0, bb_ap,MODE_UPPER,0) ;

double bb_lo0=iBands(NULL,0,bb_p,bb_dev,0, bb_ap,MODE_LOWER,0) ;

//--- Messieurs, la ligne médiane des bandes de Bollinger, ci-dessous, sont-elles toutes des choix corrects ou y a-t-il des choix erronés ? Dans MT5, le problème de la ligne médiane est résolu, dans MT4 je ne l'ai pas vu.

Si vous vérifiez avec le script Alert, les résultats sont les mêmes, mais quand même ?

double bb_bs0= (bb_up0+ bb_lo0)/2 ;

double bb_bs0= iMA(NULL,0,bb_p, 0,0,bb_ap, 0) ;

double bb_bs0= iBands(NULL,0,bb_p,bb_dev,0, bb_ap,MODE_MAIN, 0) ;

double bb_bs0= iBands(NULL,0,bb_p,bb_dev,0, bb_ap,0, 0) ;

 
Zhunko:
Ça n'arrivera pas.

Oui, je me suis déjà rendu compte que ça ne marchera pas sans une dll.

 
rosomah:

double bb_up0=iBands(NULL,0,bb_p,bb_dev,0, bb_ap,MODE_UPPER,0) ;

double bb_lo0=iBands(NULL,0,bb_p,bb_dev,0, bb_ap,MODE_LOWER,0) ;

//--- Messieurs, la ligne moyenne des bandes de Bollinger, ci-dessous, sont-elles toutes des choix corrects ou y a-t-il des choix erronés ? MT5 a résolu le problème de la ligne médiane, je ne l'ai pas vu dans MT4.

Si vous vérifiez avec le script Alert, les résultats sont les mêmes, mais quand même ?

double bb_bs0= (bb_up0+ bb_lo0)/2 ;

double bb_bs0= iMA(NULL,0,bb_p, 0,0,bb_ap, 0) ;

double bb_bs0= iBands(NULL,0,bb_p,bb_dev,0, bb_ap,MODE_MAIN, 0) ;

double bb_bs0= iBands(NULL,0,bb_p,bb_dev,0, bb_ap,0, 0);

Voici le cycle principal de la construction du BB :

//--- main cycle
   for(i=pos; i<rates_total && !IsStopped(); i++)
     {
      //--- middle line
      ExtMovingBuffer[i]=SimpleMA(i,InpBandsPeriod,close);
      //--- calculate and write down StdDev
      ExtStdDevBuffer[i]=StdDev_Func(i,close,ExtMovingBuffer,InpBandsPeriod);
      //--- upper line
      ExtUpperBuffer[i]=ExtMovingBuffer[i]+InpBandsDeviations*ExtStdDevBuffer[i];
      //--- lower line
      ExtLowerBuffer[i]=ExtMovingBuffer[i]-InpBandsDeviations*ExtStdDevBuffer[i];
      //---
     }

Voici le calcul d'une MA simple :

//+------------------------------------------------------------------+
//| Simple Moving Average                                            |
//+------------------------------------------------------------------+
double SimpleMA(const int position,const int period,const double &price[])
  {
//---
   double result=0.0;
//--- check position
   if(position>=period-1 && period>0)
     {
      //--- calculate value
      for(int i=0;i<period;i++) result+=price[position-i];
      result/=period;
     }
//---
   return(result);
  }
//+------------------------------------------------------------------+

Comme vous pouvez le voir, la ligne centrale est une simple MA sur Close. Le reste est basé dessus. Alors, tirez vos propres conclusions.

SZZ. Comme un pamphlet pour vos futurs travaux :

Vous définissez la valeur moyenne comme suit : double bb_bs0 = (bb_up0+ bb_lo0)/2 ;

Mais il est préférable de le calculer de cette façon : double bb_bs0= (bb_up0+ bb_lo0)*0.5;

Après tout, la multiplication est plus rapide que la division.

 
artmedia70:

Voici le cycle principal pour construire un BB :

Voici le calcul d'une MA simple :

Comme vous pouvez le voir, la ligne centrale est une simple MA sur Close. Le reste est basé dessus. Vous pouvez tirer vos propres conclusions.

SZZ. Comme un dépliant pour votre travail ultérieur :

Vous définissez la valeur moyenne comme suit : double bb_bs0 = (bb_up0+ bb_lo0)/2 ;

Mais il est préférable de le calculer de cette façon : double bb_bs0= (bb_up0+ bb_lo0)*0.5;

Après tout, la multiplication est plus rapide que la division.



1. au prix des bandes de bollinger IMHO...

 
TWAP (pas VWAP) qui l'a calculé ? Comment est-il calculé ? Je ne comprends rien aux explications données sur Internet...
 
Barbarian:

Oui, j'ai réalisé qu'il ne fonctionnera pas sans une dll.


Justifiez.
 

J'ai remarqué une chose étrange maintenant. Il y a une bibliothèque de base qui importe d' autres bibliothèques. En voici un morceau :

//+---------------------------------------------------------------------------------------------------------------------------------------+
//| Библиотека базовых функций.                                                                                                           |
//+---------------------------------------------------------------------------------------------------------------------------------------+
// ================================================== Включения и импорт внешних модулей =================================================+
#include <hoz_Base@Include.mqh>
//+---
#import "hoz_LoggingToAnyWere@library.ex4"
    void fWrite_Log (string fs_Txt);
    void fPrint (string fs_Text);
#import
//+---
#import "hoz_HandlingWithErrorS@library.ex4"
    bool fErrorHandling (int fi_Error, bool& fb_InvalidSTOP);
    void fReConnect();
    string fErrorToString (int fi_Error);
    string fErrorDescription (int fi_Error);
#import
//+---
#import "hoz_ReturningSomeInfo@library.ex4"
    string fGet_NameOP (int fi_Type);
    string fGet_NameTF (int fi_TF = 0);
#import

Lorsque je lance Owl, que je suis en train d'écrire avec ces bibliothèques, je vois dans le journal :

2013.11.23 16:15:51     2012.01.01 22:00  hoz_ReturningSomeInfo@library EURUSD,M5: loaded successfully
2013.11.23 16:15:51     2012.01.01 22:00  hoz_Base@Library EURUSD,M5: loaded successfully
2013.11.23 16:15:51     ExperT inputs: i_MAXSpread=50; i_Lot=0.1; i_KLot=2; i_SL=0; i_TP=10; i_Slippage=3; i_NumberOfTry=10; i_DistanceFromLastPos=10; i_TriggerForBU=25; i_PreservedProfit=5; TStop.Buy=70; TStop.Sell=10; TrailingStep=20; i_magic=3333021; 

Je veux dire que, selon le journal, 2 bibliothèques ont été chargées : hoz_ReturningSomeInfo@libraryet hoz_Base@Library.

Mais il manque ces bibliothèques : hoz_LoggingToAnyWere@library.ex4, hoz_HandlingWithErrorS@library.ex4 dans le journal. C'est censé être comme ça ? Ou bien toutes les bibliothèques téléchargées doivent-elles être répertoriées dans le journal ?

 
Integer:

Justifiez.

dll de winapi au moins. pour envoyer un caractère à la fenêtre