Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 6. - página 273

 
Zhunko:
La biblioteca.
Ejemplos en el script de prueba.

Gracias, Vadim :) Entiendo la dirección, quiero implementarlo en MQL4 sin dll.

 
Barbarian:

Gracias, Vadim :) Entiendo la dirección, quiero implementarlo en MQL4 sin dll.

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

//--- Señores, la línea media de las Bandas de Bollinger, abajo, ¿son todas opciones correctas o hay otras incorrectas? En MT5 el tema de la línea media está solucionado, en MT4 no lo he visto.

Si lo compruebas con Alert script, los resultados son los mismos, pero aún así...

doble 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:
No lo hará.

Sí, ya me he dado cuenta de que no funcionará sin 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);

//--- Señores, la línea de la media de las Bandas de Bollinger, abajo, ¿son todas opciones correctas o hay opciones incorrectas? MT5 tiene el tema de la línea media resuelto, no lo he visto en MT4.

Si lo compruebas con Alert script, los resultados son los mismos, pero aún así...

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

Aquí está el ciclo principal de la construcción de 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];
      //---
     }

Este es el cálculo de un simple 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 puede ver, la línea central es una simple MA en Close. El resto se basa en ello. Por lo tanto, saque sus propias conclusiones.

SZZ. Como panfleto para sus trabajos posteriores:

El valor medio se establece de la siguiente manera: double bb_bs0 = (bb_up0+ bb_lo0)/2;

Pero es mejor calcularlo así: doble bb_bs0= (bb_up0+ bb_lo0)*0,5;

Después de todo, la multiplicación es más rápida que la división.

 
artmedia70:

Este es el ciclo principal para construir una BB:

Este es el cálculo de un simple MA:

Comopuede ver, la línea central es una simple MA en Close. El resto se basa en ello. Puede sacar sus propias conclusiones.

SZZ. Como panfleto para su trabajo posterior:

El valor medio se establece de la siguiente manera: double bb_bs0 = (bb_up0+ bb_lo0)/2;

Pero es mejor calcularlo así: doble bb_bs0= (bb_up0+ bb_lo0)*0,5;

Después de todo, la multiplicación es más rápida que la división.



1.Al precio de las bandas de bollinger IMHO...

 
TWAP (no VWAP) ¿quién lo ha calculado? ¿Cómo se calcula? No entiendo nada de las explicaciones en internet...
 
Barbarian:

Sí, ya me he dado cuenta de que no funcionará sin una dll


Justificar.
 

Ahora he notado una cosa extraña. Hay una biblioteca base que importa otras bibliotecas. Aquí tienes un trozo:

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

Cuando arranco owl, que estoy escribiendo ahora con estas librerías, veo en el 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; 

Es decir, según el registro, se han cargado 2 bibliotecas: hoz_ReturningSomeInfo@libraryy hoz_Base@Library.

Pero faltan estas bibliotecas: hoz_LoggingToAnyWere@library.ex4, hoz_HandlingWithErrorS@library.ex4 en la revista. ¿Se supone que debe ser así? ¿O todas las bibliotecas cargadas deben figurar en la revista?

 
Integer:

Justificar.

dll de winapi al menos. para enviar char a la ventana
Razón de la queja: