Logo

Вход

Войти с помощью соц. сетей
X
 
  • Фильтр
  • Время
  • Показать
Очистить всё
новые сообщения
  • #1 Свернуть

    По какому принципу работает индикатор bbands_stop

    Люди, вот я подстроил как себе нужно. И хотел бы слить 2 индикатора для того ,чтобы лишний раз не мозолить глаза. В программ я только еще новичок.... Слить та я слил оба индикатора, но есть небольшая барикада.... И по этому я решил написать свой код, но результат должен быть идентичный с bbands_stop.

    Кто нибудь, может сказать по каким принципам он работает. Быть может по двум скользящим или по одной с приставкой какой нибудь формулы и тп. Скажите пожалуйста, кто в этом смылит.

    код:
    MQL код:
    //+------------------------------------------------------------------+
    //| BBands_Stop_v1.mq4 |
    //| Copyright © 2006, TrendLaboratory Ltd. |
    //| [url]http://finance.groups.yahoo.com/group/TrendLaboratory[/url] |
    //| E-mail: [email]igorad2004@list.ru[/email] |
    //+------------------------------------------------------------------+
    #property copyright "Copyright © 2006, TrendLaboratory Ltd."
    #property link "http://finance.groups.yahoo.com/group/TrendLaboratory"

    #property indicator_chart_window
    #property indicator_buffers 6
    #property indicator_color1 Chartreuse
    #property indicator_color2 Orange
    #property indicator_color3 Chartreuse
    #property indicator_color4 Orange
    #property indicator_color5 Chartreuse
    #property indicator_color6 Orange
    //---- input parameters
    extern int Length=20; // Bollinger Bands Period
    extern int Deviation=2; // Deviation
    extern double MoneyRisk=1.00; // Offset Factor
    extern int Signal=1; // Display signals mode: 1-Signals & Stops; 0-only Stops; 2-only Signals;
    extern int Line=1; // Display line mode: 0-no,1-yes
    extern int Nbars=1000;
    //---- indicator buffers
    double UpTrendBuffer[];
    double DownTrendBuffer[];
    double UpTrendSignal[];
    double DownTrendSignal[];
    double UpTrendLine[];
    double DownTrendLine[];
    //+------------------------------------------------------------------+
    //| Custom indicator initialization function |
    //+------------------------------------------------------------------+
    int init()
    {
    string short_name;
    //---- indicator line

    SetIndexBuffer(0,UpTrendBuffer);
    SetIndexBuffer(1,DownTrendBuffer);
    SetIndexBuffer(2,UpTrendSignal);
    SetIndexBuffer(3,DownTrendSignal);
    SetIndexBuffer(4,UpTrendLine);
    SetIndexBuffer(5,DownTrendLine);
    SetIndexStyle(0,DRAW_ARROW);
    SetIndexStyle(1,DRAW_ARROW);
    SetIndexStyle(2,DRAW_ARROW);
    SetIndexStyle(3,DRAW_ARROW);
    SetIndexStyle(4,DRAW_LINE);
    SetIndexStyle(5,DRAW_LINE);
    SetIndexArrow(0,159);
    SetIndexArrow(1,159);
    SetIndexArrow(2,108);
    SetIndexArrow(3,108);
    IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS));
    //---- name for DataWindow and indicator subwindow label
    short_name="BBands Stop("+Length+","+Deviation+")";
    IndicatorShortName(short_name);
    SetIndexLabel(0,"UpTrend Stop");
    SetIndexLabel(1,"DownTrend Stop");
    SetIndexLabel(2,"UpTrend Signal");
    SetIndexLabel(3,"DownTrend Signal");
    SetIndexLabel(4,"UpTrend Line");
    SetIndexLabel(5,"DownTrend Line");
    //----
    SetIndexDrawBegin(0,Length);
    SetIndexDrawBegin(1,Length);
    SetIndexDrawBegin(2,Length);
    SetIndexDrawBegin(3,Length);
    SetIndexDrawBegin(4,Length);
    SetIndexDrawBegin(5,Length);
    //----
    return(0);
    }

    //+------------------------------------------------------------------+
    //| Bollinger Bands_Stop_v1 |
    //+------------------------------------------------------------------+
    int start()
    {
    int i,shift,trend;
    double smax[25000],smin[25000],bsmax[25000],bsmin[25000];


    for (shift=Nbars-Length-1;shift>=0;shift--)
    {
    smax[shift]=iBands(NULL,0,Length,Deviation,0,PRICE_CLOSE,MODE _UPPER,shift);
    smin[shift]=iBands(NULL,0,Length,Deviation,0,PRICE_CLOSE,MODE _LOWER,shift);

    if (Close[shift]>smax[shift+1]) trend=1;
    if (Close[shift]<smin[shift+1]) trend=-1;

    bsmax[shift]=smax[shift]+0.5*(MoneyRisk-1)*(smax[shift]-smin[shift]);
    bsmin[shift]=smin[shift]-0.5*(MoneyRisk-1)*(smax[shift]-smin[shift]);

    if (trend>0)
    UpTrendBuffer[shift]=bsmin[shift];
    else
    DownTrendBuffer[shift]=bsmax[shift];

    }
    return(0);
    }
    Последний раз редактировалось Gerbys; 15.09.2013, 18:39. Причина: Не много упростил
  • <a href="https://www.instaforex.org/ru/?x=ruforum">InstaForex</a>
  • #2 Свернуть

    У Кого Есть Советник Bband Stop Скиньте Поже

    Комментарий

    • <a href="https://www.instaforex.org/ru/?x=ruforum">InstaForex</a>
    • #3 Свернуть

      Сообщение от ZajinskiyVadim Посмотреть сообщение
      У Кого Есть Советник Bband Stop Скиньте Поже
      Советник находится в предыдущем посте. Скопируй в текстовом редакторе и переименуй полученный файл в .mq4 и в папку
      индикаторов.

      Сообщение от Gerbys Посмотреть сообщение
      Кто нибудь, может сказать по каким принципам он работает. Быть может по двум скользящим или по одной с приставкой какой нибудь формулы и тп.
      Советник использует значение технического индикатора Bollinger Bands®.


      Сообщение от Gerbys Посмотреть сообщение
      MQL код:
      smax[shift]=iBands(NULL,0,Length,Deviation,0,PRICE_CLOSE,MODE  _UPPER,shift);
      smin[shift]=iBands(NULL,0,Length,Deviation,0,PRICE_CLOSE,MODE _LOWER,shift);
      Дальше вычисления и заполнение буферов.




      Сообщение от Gerbys Посмотреть сообщение
      MQL код:
      if (Close[shift]>smax[shift+1]) trend=1; 
      if (Close[shift]
      bsmax[shift]=smax[shift]+0.5*(MoneyRisk-1)*(smax[shift]-smin[shift]);
      bsmin[shift]=smin[shift]-0.5*(MoneyRisk-1)*(smax[shift]-smin[shift]);

      if (trend>0)
      UpTrendBuffer[shift]=bsmin[shift];
      else
      DownTrendBuffer[shift]=bsmax[shift];
      Последний раз редактировалось Gold; 17.02.2014, 18:48.

      Комментарий

      Сейчас онлайн

      working...
      X