[АРХИВ]Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 5. - страница 13

 

Ну что же Вы за мужики такие, не можете помочь бедной девушке, я всего лишь прошу такой пустяк.

Вот например ссылка на цветную МА.https://www.mql5.com/ru/code/9145

Мне нужен всего лишь пример, но более простой и наглядный с одной цветной линией по макушкам или по низам баров, без алгоритмов расчёта.

Откликнитесь пожалуйста на мою просьбу. Заранее благодарна.

 
rigonich:


Для того, чтобы отобразить линию индикатора, надо:

1. создать массивы с определенными свойствами, называемые индикаторными буферами, из которых будут браться координаты точек,используемых для построения индикаторной линии. Для этого используются готовые функции, встроенные в терминал.

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

3. заполнить этот массив какими либо значениями. это делается в функции старт индикатора. и запустить программу, рисующую индикатор..

В терминале нет встроенной функции,которая бы меняла стиль отрисовки одного буфера, то есть могла бы рисовать разные участки одной линии разными стилями. Для этого надо создавать свою, пользовательскую функцию, а это не просто, и надо знать хотя бы азы программирования. 

Мне это понятно , я не знаю как на баре,ну например i=20  остановить красную линию, с этого бара начать зелёную и т. д.
 
Yulia:

Ну что же Вы за мужики такие, не можете помочь бедной девушке, я всего лишь прошу такой пустяк.

Вот например ссылка на цветную МА.https://www.mql5.com/ru/code/9145

Мне нужен всего лишь пример, но более простой и наглядный с одной цветной линией по макушкам или по низам баров, без алгоритмов расчёта.

Откликнитесь пожалуйста на мою просьбу. Заранее благодарна.


По аналогии: вы просите не сказать,где что-то написано, а научить вас читать, причем очень просто и быстро.Примеров подобных индикаторов много в кодобазе, но они все не простые, потому, что такой индикатор нельзя сделать, используя только встроенные средства терминала, потому, что нужных для этого встроенных средств в терминале нет(в смысле средств построения индикаторов).
 

Профи подскажите, как запомнить данные на несколько дней с возможностью потом эти данные редактировать?

Знаю php но для того чтобы запомнить какие то данные используется база данных MySQL,

и никак не могу понять как можно запомнить какую то информацию, и куда ее заносить, чтобы потом можно было ее использовать и редактировать?

если есть такое в mql4 пожалуйста объясните с небольшим примером.

вот что мне нужно сделать: взять сумму свободных средств на счету на даный момент, занести ее в базу, после того как советник наторговал на 10% больше или меньше, то мы увеличиваем лот или уменьшаем с расчетом на уже новую сумму.

для этого и нужна база данных, запомнить что сейчас на счету $1000

после того как советник наторговал на $1100 увеличиваем лот.

Suma = 1100; //сумма на текущий момент на $100 больше, советник нам удачно наторговал.

procent = 10; // 10%

baza = 1000; // вытащили c базы предыдущую сумму.

raznica = (baza/procent)+baza;// берем 1000/10=100 разница в 10% и добавляем к сумме с базы получаем 100+1000=1100


if (Suma>=raznica ) // 1100 >=1100 сравниваем если сумма на текущий момент больше сумы с базы + 10%;

{

увеличиваем лот и заносим в базу уже сумму 1100, после того как советник наторгует на сумму 10% от 1100= 110 то снова увеличим лот и занесем новую сумму в базу, и т.д.

}


надеюсь нормально объяснил. может есть другие идеи или решения как такое реализовать?

 
pasha5282:

Профи подскажите, как запомнить данные на несколько дней с возможностью потом эти данные редактировать?

Знаю php но для того чтобы запомнить какие то данные используется база данных MySQL,

и никак не могу понять как можно запомнить какую то информацию, и куда ее заносить, чтобы потом можно было ее использовать и редактировать?

если есть такое в mql4 пожалуйста объясните с небольшим примером.

вот что мне нужно сделать: взять сумму свободных средств на счету на даный момент, занести ее в базу, после того как советник наторговал на 10% больше или меньше, то мы увеличиваем лот или уменьшаем с расчетом на уже новую сумму.

для этого и нужна база данных, запомнить что сейчас на счету $1000

после того как советник наторговал на $1100 увеличиваем лот.

Suma = 1100; //сумма на текущий момент на $100 больше, советник нам удачно наторговал.

procent = 10; // 10%

baza = 1000; // вытащили c базы предыдущую сумму.

raznica = (baza/procent)+baza;// берем 1000/10=100 разница в 10% и добавляем к сумме с базы получаем 100+1000=1100


if (Suma>=raznica ) // 1100 >=1100 сравниваем если сумма на текущий момент больше сумы с базы + 10%;

{

увеличиваем лот и заносим в базу уже сумму 1100, после того как советник наторгует на сумму 10% от 1100= 110 то снова увеличим лот и занесем новую сумму в базу, и т.д.

}


надеюсь нормально объяснил. может есть другие идеи или решения как такое реализовать?


Для этого используются переменные или массивы переменных. Собственно   MySQL это тоже массив переменных и набор правил, позволяющих работать с этим массивом.
 
Yulia:
Мне это понятно , я не знаю как на баре,ну например i=20  остановить красную линию, с этого бара начать зелёную и т. д.
Для того, чтобы линия отрисовывалась разными цветами (её собирают из отдельных "кусочков" линий разного цвета), нужно задействовать столько буферов, сколько хотите цветов у рисуемой линии.

В Вашем примере, на 20-м баре значения нужно заносить в буфер, отрисовывающий зелёную линию, а все остальные буферы на этом баре должны иметь ПУСТОЕ значение, которое не прорисовывется на графике. По умолчанию он равно EMPTY_VALUE.


P.S. В приведённой Вами ссылке цветной MA элементарно и очень понятно реализовано то, что я Вам написал выше.

 
TarasBY:
Для того, чтобы линия отрисовывалась разными цветами (её собирают из отдельных "кусочков" линий разного цвета), нужно задействовать столько буферов, сколько хотите цветов у рисуемой линии.
В Вашем примере, на 20-м баре значения нужно заносить в буфер, отрисовывающий зелёную линию, а все остальные буферы на этом баре должны иметь ПУСТОЕ значение, которое не прорисовывется на графике. По умолчанию он равно EMPTY_VALUE.

если точнее, не сколько цветов, а сколько отрезков, а максимальное число индикаторных буферов -- 8...
 
TarasBY:
Для того, чтобы линия отрисовывалась разными цветами (её собирают из отдельных "кусочков" линий разного цвета), нужно задействовать столько буферов, сколько хотите цветов у рисуемой линии.
В Вашем примере, на 20-м баре значения нужно заносить в буфер, отрисовывающий зелёную линию, а все остальные буферы на этом баре должны иметь ПУСТОЕ значение, которое не прорисовывется на графике. По умолчанию он равно EMPTY_VALUE.

Да я всё перепробовала, если в зелёный буфер заношу значение 20 бара - красный рисуется дальше, если  20-му красному буферу присваиваю  EMPTY_VALUE , красный до 20 не рисуется. Покажите пожалуйста на примере, буду Вам очень благодарна

//--------------------------------------------------------------------
// userindicator.mq4 // Предназначен для использования в качестве примера в учебнике MQL4.
//--------------------------------------------------------------------
#property indicator_chart_window                                      // Индик. рисуется в основном окне
#property indicator_buffers 2                                         // Количество буферов
#property indicator_color1 Red                                        // Цвет первой линии
#property indicator_color2 Green                                      // Цвет второй линии

double Buf_0[],Buf_1[];                                               // Объявление массивов (под буферы индикатора)
//--------------------------------------------------------------------
int init() {                                                          // Специальная функция init()        
    SetIndexBuffer(0,Buf_0);                                          // Назначение массива буферу  
    SetIndexStyle (0,DRAW_LINE,STYLE_SOLID,3);                        // Стиль линии  
    SetIndexBuffer(1,Buf_1);                                          // Назначение массива буферу  
    SetIndexStyle (1,DRAW_LINE,STYLE_SOLID,3);                        // Стиль линии  
    return;                                                           // Выход из спец. ф-ии init()
    }
//-------------------------------------------------------------------
int start() {                                                         // Специальная функция start()  
    int i,                                                            // Индекс бара      
    Counted_bars;                                                     // Количество просчитанных баров
//--------------------------------------------------------------------  
    Counted_bars=IndicatorCounted();                                  // Количество просчитанных баров    
    i=Bars-Counted_bars-1;                                            // Индекс первого непосчитанного  
      
      while(i>=0)                                                     // Цикл по непосчитанным барам    
           {    
                
           Buf_0[i]=High[i];                      
           Buf_1[i]=            
           i--;                                
      
           }
  return;                      
}

 
как тут код выкладывается правельно? там как то через Scr надо ?  что бы вписать код в комент чё там делать над?
 
rigonich:

если точнее, не сколько цветов, а сколько отрезков, а максимальное число индикаторных буферов -- 8...

А Вы про отрезки хорошо подумали??? Посмотрите на цветную МА по ссылке, поставьте её к себе на график с периодом, скажем, 14, и посчитайте там количество отрезков разных цветов.

Или Вы "про Фому", а я "про Ерёму"...

Причина обращения: