Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 6. - pagina 273

 
Zhunko:
La biblioteca.
Esempi nello script di test.

Grazie, Vadim :) Capisco la direzione, ma voglio implementarla in MQL4 senza dll.

 
Barbarian:

Grazie, Vadim :) Capisco la direzione, voglio implementarla in MQL4 senza dll.

Non funzionerà.
 

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);

//--- Signori, la linea centrale delle Bande di Bollinger, sotto, sono tutte scelte corrette o ce ne sono di sbagliate? In MT5 il problema della linea centrale è stato risolto, non l'ho visto in MT4.

Se si controlla con lo script Alert, i risultati sono gli stessi, ma ancora?

doppio bb_bs0= (bb_up0+ bb_lo0)/2;

doppio bb_bs0= iMA(NULL,0,bb_p, 0,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:
Non lo farà.

Sì, ho già capito che non funziona senza una 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);

//--- Signori, la linea media delle Bande di Bollinger, sotto, sono tutte scelte corrette o ce ne sono di sbagliate? MT5 ha risolto il problema della linea centrale, non l'ho visto in MT4.

Se controllate con lo script Alert, i risultati sono gli stessi, ma ancora?

doppio bb_bs0= (bb_up0+ bb_lo0)/2;

doppio bb_bs0= iMA(NULL,0,bb_p, 0,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);

Ecco il ciclo principale della costruzione di 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];
      //---
     }

Ecco il calcolo di un semplice MA:

//+------------------------------------------------------------------+
//| 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);
  }
//+------------------------------------------------------------------+

Come potete vedere, la linea centrale è una semplice MA su Close. Il resto si basa su di esso. Quindi, traete le vostre conclusioni.

SZZ. Come opuscolo per le vostre ulteriori fatiche:

Si imposta il valore medio come segue: doppio bb_bs0 = (bb_up0+ bb_lo0)/2;

Ma è meglio calcolarlo così: doppio bb_bs0= (bb_up0+ bb_lo0)*0.5;

Dopo tutto, la moltiplicazione è più veloce della divisione.

 
artmedia70:

Ecco il ciclo principale per costruire un BB:

Ecco il calcolo di un semplice MA:

Come potete vedere, la linea centrale è una semplice MA su Close. Il resto si basa su di esso. Potete trarre le vostre conclusioni.

SZZ. Come opuscolo per il vostro ulteriore lavoro:

Si imposta il valore medio come segue: doppio bb_bs0 = (bb_up0+ bb_lo0)/2;

Ma è meglio calcolarlo così: doppio bb_bs0= (bb_up0+ bb_lo0)*0.5;

Dopo tutto, la moltiplicazione è più veloce della divisione.



1.Al prezzo delle bande di bollinger IMHO...

 
TWAP (non VWAP) chi l'ha calcolato? Come si calcola? Non capisco nulla delle spiegazioni su internet...
 
Barbarian:

Sì, mi sono reso conto che non funziona senza una dll


Giustificare.
 

Ora ho notato una cosa strana. C'è una libreria di base che importa altre librerie. Eccone un pezzo:

//+---------------------------------------------------------------------------------------------------------------------------------------+
//| Библиотека базовых функций.                                                                                                           |
//+---------------------------------------------------------------------------------------------------------------------------------------+
// ================================================== Включения и импорт внешних модулей =================================================+
#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

Quando avvio owl, che sto scrivendo ora con queste librerie, vedo nel log:

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; 

Cioè, secondo il log, vengono caricate 2 librerie: hoz_ReturningSomeInfo@librarye hoz_Base@Library.

Ma mancano queste biblioteche: hoz_LoggingToAnyWere@library.ex4, hoz_HandlingWithErrorS@library.ex4 nella rivista. È normale che sia così? O tutte le biblioteche caricate dovrebbero essere elencate nella rivista?

 
Integer:

Giustificare.

dll da winapi almeno. per inviare char alla finestra