простой вопрос кодирования ...
Results 1 to 4 of 4

Thread: простой вопрос кодирования ...

  1. #1
    Привет, извините за глупый вопрос, но PLS помочь мне здесь:

    Если у вас есть индикатор, который состоит из 1 строки в окне графика, и вы хотите добавить стандартные полосы отклонения к этой линии, например, полосы Боллинджера. Как ты делаешь это:
    скажем, ваш буфер, который отображает ваш исходный индикатор, называется abc
    поэтому сначала вы заявляете следующее:
    extern int BandsPeriod = 20;
    extern int BandsShift = 0;
    extern double BandsDeviations = 2.0;
    1) вы меняете
    #property indior_buffers 1 (1 становится 3)
    2)
    SetIndexBuffer (0, ABC);
    SetIndexStyle (0, DRAW_LINE);
    и добавить
    SetIndexBuffer (1, UpperBuffer);
    SetIndexStyle (1, DRAW_LINE);
    SetIndexBuffer (2, LowerBuffer);
    SetIndexStyle (2, DRAW_LINE);
    SetIndexDrawBegin (0, BandsPeriod BandsShift);
    SetIndexDrawBegin (1, BandsPeriod BandsShift);
    3) вы добавляете остальную часть кода полос боллинга в цикл инициализации
    int start ()
    {
    int i, k, counted_bars = IndiorCounted ();
    двойное отклонение, сумма, oldval, newres;

    //----
    if (Barslt; = BandsPeriod) return (0);
    //---- начальный ноль
    если (counted_barslt; 1)
    и так далее....
    4), но как, черт возьми, вы заменяете буфер MovingBuffer в исходном коде band.mq4 своим новым буфером из вашего индикатора, называемым abc?

    Каков наилучший способ сделать это?
    Должен ли я попытаться получить код своего индикатора в коде band.mq4 или наоборот?

    Я прикрепил хорошо известный фрагмент кода под названием bands.mq4, чтобы вы могли видеть, с чем я работаю.

    снова, извините за мое кодирование-невежество

    Может быть, кто-то знает о «добавлении учебника стилей stdev»? Это было бы то, что мне нужно прямо сейчас. Спасибо

  2. #2

    Quote Originally Posted by ;
    Привет, извините за глупый вопрос, но PLS помочь мне здесь: Если у вас есть индикатор, который состоит из 1 строки в окне диаграммы, и вы хотите добавить стандартные полосы отклонения к этой линии, например, полосы Боллинджера. Как вы это делаете: скажем, ваш буфер, который отображает ваш исходный индикатор, называется abc, поэтому сначала вы объявляете следующее: extern int BandsPeriod = 20; extern int BandsShift = 0; extern double BandsDeviations = 2.0; 1) вы меняете #property indior_buffers 1 (1 становится 3) 2) SetIndexBuffer (0, abc); SetIndexStyle (0, DRAW_LINE); и добавьте SetIndexBuffer (1, UpperBuffer); SetIndexStyle (1, DRAW_LINE); SetIndexBuffer (2, LowerBuffer); SetIndexStyle (2, DRAW_LINE); SetIndexDrawBegin (0, BandsPeriod BandsShift); SetIndexDrawBegin (1, BandsPeriod BandsShift); 3) ...
    используйте функцию iBandsOnArray: iBandsOnArray (массив [], общий, период, отклонение, диапазон_сдвига, режим, сдвиг) - это, очевидно, ваш исходный индикатор, просто поместите бары в общую часть, период и отклонения очевидны, сдвиг, вероятно, будет равен нулю , в режиме вы выбираете MODE_UPPER или MODE_LOWER в зависимости от диапазона, и сдвиг будет либо i, либо 0, ваш выбор. просто сделайте два из них, один для верхней полосы, один для нижней полосы. update: Вот пример кода: #property indior_separate_window #property indior_buffers 3 #property indior_color1 Красный #property indior_color2 Белый #property indior_color3 Белый/---- входы extern int Stoch_Period = 5; extern int Bands_Period = 20; extern int Отклонения = 2;/---- буферы double StochBuffer []; double UpperBuffer []; double LowerBuffer []; int init () {//---------- SetIndexStyle (0, DRAW_LINE); SetIndexBuffer (0, StochBuffer);/---------- SetIndexStyle (1, DRAW_LINE); SetIndexBuffer (1, UpperBuffer);/---------- SetIndexStyle (2, DRAW_LINE); SetIndexBuffer (2, LowerBuffer); IndiorShortName (пример Stoch-Bands ( Stoch_Period , Bands_Period , Отклонения ));/---------- return (0); } int start () {int limit; int counted_bars = IndiorCounted ();/---- if (counted_barsgt; 0) counted_bars--; предел = Bars-counted_bars;/---- for (int i = 0; ilt; limit; i ) StochBuffer [i] = iStochastic (NULL, 0, Stoch_Period, 3,3, MODE_SMA, PRICE_CLOSE, 0, i);/---- для (i = 0; ilt; limit; i ) UpperBuffer [i] = iBandsOnArray (StochBuffer, Bars, Bands_Period, отклонения, 0, MODE_UPPER, i);/---- for (i = 0; ilt; limit; i ) LowerBuffer [i] = iBandsOnArray (StochBuffer, Bars, Bands_Period, Отклонения, 0, MODE_LOWER, i);/---- return (0); }/ ---------------------------------------------- --------------------

  3. #3

    Quote Originally Posted by ;
    используйте функцию iBandsOnArray: iBandsOnArray (массив [], общий, период, отклонение, диапазон_сдвига, режим, сдвиг) - это, очевидно, ваш исходный индикатор, просто поместите бары в общую часть, период и отклонения очевидны, сдвиг, вероятно, будет равен нулю , в режиме вы выбираете MODE_UPPER или MODE_LOWER в зависимости от диапазона, и сдвиг будет либо i, либо 0, ваш выбор. просто сделайте два из них, один для верхней полосы, один для нижней полосы.
    это хороший способ, B, но единственное - butbandsonarray - int iBandsOnArray (двойной массив [], int total, int period, int deviation, поэтому, если вам нужен двойной или stDev или iCustom - Bands - как HA, он идет стандартным и это двойное

  4. #4
    спасибо, ребята, я поработаю над этим.

Действующие разрешения

  • Вы не можете создавать новые темы
  • Вы не можете размещать ответы
  • Вы не можете использовать вложения
  • Вы не можете редактировать ваши записи
  •  
  • BB-код - Вкл.
  • Смайлики - Вкл.
  • Код [IMG] - Вкл.
  • Код [VIDEO] - Вкл.
  • HTML-код - Выкл.
Веб-сайт использует cookies
Веб-сайт использует cookies, в настоящее время некоторые из них уже установлены. Вы можете ознакомиться с более подробной информацией об использовании нами cookies здесь. Чтобы принять условия использования cookies, пожалуйста, нажмите на кнопку справа. Если вы продолжаете пользоваться веб-сайтом, вы по умолчанию принимаете условия использования cookies.