Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 6. - página 273

 
Zhunko:
A biblioteca.
Exemplos no roteiro de teste.

Obrigado, Vadim :) Entendo a direção. Quero implementá-la na MQL4 sem dll.

 
Barbarian:

Obrigado, Vadim :) Eu entendo a direção, eu quero implementá-la na MQL4 sem dll.

Não vai funcionar.
 

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

//--- Cavalheiros, Bollinger Bands linha do meio, abaixo, são todas estas escolhas corretas ou existem escolhas erradas? Na MT5 a questão da linha do meio é trabalhada, eu não a vi na MT4.

Se você verificar com o roteiro de alerta, os resultados são os mesmos, mas mesmo assim...

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:
Não vai.

Sim, eu já percebi que não funcionará sem um 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);

//--- Cavalheiros, as Bandas Bollinger significam linha, abaixo, são todas estas escolhas corretas ou existem escolhas erradas? O MT5 tem a questão da linha do meio resolvida, não a vi no MT4.

Se você verificar com o roteiro de alerta os resultados são os mesmos, mas mesmo assim...

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

Este é o ciclo principal da construção do 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];
      //---
     }

Aqui está o cálculo de um simples 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);
  }
//+------------------------------------------------------------------+

Como você pode ver, a linha central é um simples MA em Close. O resto se baseia nisso. Portanto, tire suas próprias conclusões.

SZZ. Como um panfleto para seus futuros trabalhos:

Você define o valor médio da seguinte forma: duplo bb_bs0 = (bb_up0+ bb_lo0)/2;

Mas é melhor calculá-lo desta forma: duplo bb_bs0= (bb_up0+ bb_lo0)*0.5;

Afinal de contas, a multiplicação é mais rápida que a divisão.

 
artmedia70:

Aqui está o ciclo principal para a construção de um BB:

Aqui está o cálculo de um simples MA:

Como você pode ver, a linha central é um simples MA em Close. O resto se baseia nisso. Você pode tirar suas próprias conclusões.

SZZ. Como um panfleto para seu trabalho futuro:

Você define o valor médio da seguinte forma: duplo bb_bs0 = (bb_up0+ bb_lo0)/2;

Mas é melhor calculá-lo desta forma: duplo bb_bs0= (bb_up0+ bb_lo0)*0.5;

Afinal de contas, a multiplicação é mais rápida que a divisão.



1.Ao preço das fitas de bollinger IMHO...

 
TWAP (não VWAP) quem o calculou? Como é calculado? Não entendo nada das explicações na internet...
 
Barbarian:

Sim, já percebi que não vai funcionar sem um dll


Justifique.
 

Notei agora uma coisa estranha. Há uma biblioteca de base que importa outras bibliotecas. Aqui está um pedaço dele:

//+---------------------------------------------------------------------------------------------------------------------------------------+
//| Библиотека базовых функций.                                                                                                           |
//+---------------------------------------------------------------------------------------------------------------------------------------+
// ================================================== Включения и импорт внешних модулей =================================================+
#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 eu começo a coruja, que estou escrevendo agora com estas bibliotecas, eu vejo no diário de bordo:

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; 

De acordo com o registro, 2 bibliotecas foram carregadas: hoz_ReturningSomeInfo@librarye hoz_Base@Library.

Mas estas bibliotecas estão faltando: hoz_LoggingToAnyWere@library.ex4, hoz_HandlingWithErrorS@library.ex4 na revista. É suposto ser assim? Ou todas as bibliotecas carregadas devem ser listadas na revista?

 
Integer:

Justifique.

dll de winapi pelo menos. para enviar char à janela