Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 273

 
Zhunko:
Библиотека.
Примеры в тестовом скрипте.

Вадим спасибо :) Направление понял, хочу в MQL4 это реализовать без dll.

 
Barbarian:

Вадим спасибо :) Направление понял, хочу в MQL4 это реализовать без dll.

Не получится.
 

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

//--- Господа, средняя линия Bollinger Bands, ниже, это все верные варианты или есть неправильные? В МТ5 вопрос со средней линией проработан, в МТ4 не видел.

Если проверять скриптом на Alert, то результаты одинаковые, но всё же?

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:
Не получится.

да, уже понял что без 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);

//--- Господа, средняя линия Bollinger Bands, ниже, это все верные варианты или есть неправильные? В МТ5 вопрос со средней линией проработан, в МТ4 не видел.

Если проверять скриптом на Alert, то результаты одинаковые, но всё же?

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

Вот главный цикл построения ВВ:

//--- 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];
      //---
     }

Вот расчёт простой МАшки:

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

Как видим, центральная линия - простая МАшка по Close. Остальное строится по ней. Делайте выводы сами.

ЗЫ. В качестве напутствия на дальнейшие ваши труды:

Вы среднюю величину считаете так: double bb_bs0= (bb_up0+ bb_lo0)/2;

Но лучше считать так: double bb_bs0= (bb_up0+ bb_lo0)*0.5;

Всё-таки умножение быстрее выполняется, чем деление.

 
artmedia70:

Вот главный цикл построения ВВ:

Вот расчёт простой МАшки:

Как видим, центральная линия - простая МАшка по Close. Остальное строится по ней. Делайте выводы сами.

ЗЫ. В качестве напутствия на дальнейшие ваши труды:

Вы среднюю величину считаете так: double bb_bs0= (bb_up0+ bb_lo0)/2;

Но лучше считать так: double bb_bs0= (bb_up0+ bb_lo0)*0.5;

Всё-таки умножение быстрее выполняется, чем деление.



1.По цене полос боллинджера ИМХО...

 
TWAP (не VWAP) кто рассчитывал? Как он рассчитывается? Что-то я ничегошеньки не понял из объяснений в инете...
 
Barbarian:

да, уже понял что без dll не получится


Обоснуйте.
 

Я вот сейчас заметил странную штуку. Есть базовая библиотека, которая в импортирует другие библиотеки. Вот кусок из неё:

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

Когда запускаю сову, которую щяс пишу с этими библиотеками, то в журнале вижу:

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; 

Т.е. если верить журналу, то подгрузилось 2 библиотеки: hoz_ReturningSomeInfo@library и hoz_Base@Library

Но этих то нет: hoz_LoggingToAnyWere@library.ex4, hoz_HandlingWithErrorS@library.ex4 в журнале . Так и должно быть? Или всё-таки в журнале должны быть перечислены все подгруженные библиотеки?

 
Integer:

Обоснуйте.

dll от winapi как минимум. чтоб отправить окну char
Причина обращения: