[Архив!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 2. - страница 290

 
artmedia70:

Думаю, без мало-мальски оформленного собственного учёта ордеров тут не обойтись.

Создать собственный массив ордеров и в нём хранить все необходимые данные по вирт.стопам.

а можно об этом по подробней?

это где нибудь реализовывалось? мои поиски не к чему не привели((

 
Centuriy:

а можно об этом по подробней?

это где нибудь реализовывалось? мои поиски не к чему не привели((

Это можно реализовать в кач-ве отдельной ф-ции для советников, либо как самостоятельный советник.

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

 
Centuriy:

а можно об этом по подробней?

это где нибудь реализовывалось? мои поиски не к чему не привели((


Посмотрите вот это, там есть несколько вариантов:

http://www.fx4u.ru/rinki-forex-commodities-cfd-futures-f14/yazik-programmirovaniya-mql4-opisanie-mts-skrip-f16/virtualniy-treyling-stop-ot-1-punkta-t12781.html

Sorry за стороннюю ссылку

 

привет всем, как убрать отображение буфера номер 1(Buffer1[])?

#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 Red
#property indicator_width1 2
#property indicator_style1 0
#property indicator_color2 Red
#property indicator_width2 2
#property indicator_style2 0

double Buffer1[];
double Buffer2[];

int init(){
SetIndexBuffer(0,Buffer1);
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(1,Buffer2);
SetIndexStyle(1,DRAW_LINE);
return(0);
}
int start(){
for(int i=0;i<Bars;i++){
Buffer1[i]=iClose("EURUSD",0,i)-1;
Buffer2[i]=(Buffer1[i]+Buffer1[i+1]+Buffer1[i+2])/3;
}
return(0);
}

 
Figar0:


Посмотрите вот это, там есть несколько вариантов:

Большое человеческое спасибо!

 

tmt0086:

привет всем, как убрать отображение буфера номер 1(Buffer1[])?


по быстрому

SetIndexStyle(0, DRAW_NONE);

 
sergeev:


по быстрому

SetIndexStyle(0, DRAW_NONE);


а если не по быстрому? а то оно мешает(( скажем так, границы от него высокие и это мешает норм работать.. это помогло только тем, что исчез буфер с графика, но границы от этого буфера остались
 
tmt0086:

привет всем, как убрать отображение буфера номер 1(Buffer1[])?

#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 Red
#property indicator_width1 2
#property indicator_style1 0
#property indicator_color2 Red
#property indicator_width2 2
#property indicator_style2 0

double Buffer1[];
double Buffer2[];

int init(){
SetIndexBuffer(0,Buffer1);
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(1,Buffer2);
SetIndexStyle(1,DRAW_LINE);
return(0);
}
int start(){
for(int i=0;i<Bars;i++){
Buffer1[i]=iClose("EURUSD",0,i)-1;
Buffer2[i]=(Buffer1[i]+Buffer1[i+1]+Buffer1[i+2])/3;
}
return(0);
}

Попробуйте так:
______________________________________

#property indicator_buffers 1

Поменяйте местами буфферы и уберите

SetIndexBuffer(1,Buffer2);
SetIndexStyle(1,DRAW_LINE);
______________________________________
Честно, не проверял, но должно работать
А может и менять местами ничё не нужно, просто уберите установку параметров ненужного буфера и замените 2 на 1

 
artmedia70:

Попробуйте так:
______________________________________

#property indicator_buffers 1

Поменяйте местами буфферы и уберите

SetIndexBuffer(1,Buffer2);
SetIndexStyle(1,DRAW_LINE);
______________________________________
Честно, не проверял, но должно работать


#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 Red
#property indicator_width1 2
#property indicator_style1 0

double Buffer1[];
double Buffer2[];

int init(){
SetIndexBuffer(0,Buffer2);
SetIndexStyle(0,DRAW_LINE);
return(0);
}
int start(){
for(int i=0;i<Bars;i++){
Buffer1[i]=iClose("EURUSD",0,i)-1;
Buffer2[i]=(Buffer1[i]+Buffer1[i+1]+Buffer1[i+2])/3;
}
return(0);
}
так?
 
вот так
#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 Red
#property indicator_width1 2
#property indicator_style1 0

double Buffer1[], Buffer2[];

int init()
{
  IndicatorBuffers(2);
  SetIndexBuffer(0,Buffer2); SetIndexStyle(0,DRAW_LINE);
  SetIndexBuffer(1,Buffer1);
  return(0);
}

int start()
{
  for(int i=0;i<Bars;i++)
  {
    Buffer1[i]=iClose("EURUSD",0,i)-1;
    Buffer2[i]=(Buffer1[i]+Buffer1[i+1]+Buffer1[i+2])/3;
  }
  return(0);
}

вам же надо таки использовать буфер.
Причина обращения: