Я пробовал с сегодняшнего утра, на экране ничего не появляется. Ваш код был бы очень полезен, чтобы я мог начать концентрироваться на других.
Я использовал объект create
с типом как прямоугольник, большой и маленький, ничего не появляется на экране. Я не знаю, как указать время и ценовые уровни и получить свечной паттерн.
Пожалуйста, предоставьте ваш код, буду очень признателен или пример получения свечи с помощью функции create Object.
#propertyindicator_separate_window#propertyindicator_buffers2#propertyindicator_color1CLR_NONE#propertyindicator_color2CLR_NONEdoublehigh[];
doublelow[];
//+------------------------------------------------------------------+//| Custom indicator initialization function |//+------------------------------------------------------------------+intinit(){SetIndexBuffer(0, high);
SetIndexBuffer(1, low);
SetIndexStyle(0, DRAW_LINE);
SetIndexStyle(1, DRAW_LINE);
return(0);
}//+------------------------------------------------------------------+//| Custom indicator deinitialization function |//+------------------------------------------------------------------+intdeinit(){return(0);
}//+------------------------------------------------------------------+//| Custom indicator iteration function |//+------------------------------------------------------------------+intstart(){stringbasename = "test";
IndicatorShortName(basename);
intwindow = WindowFind(basename);
for(inti = Bars-100; i >= 0; i--){// these two indexes are used to control the size of the subwindow// they are not visiblehigh[i] = High[i];
low[i] = Low[i];
stringname = basename+i;
if(ObjectFind(name) != -1)ObjectDelete(name);
ObjectCreate(name, OBJ_TREND, window, Time[i], High[i], Time[i], Low[i]);
ObjectSet(name, OBJPROP_RAY, 0);
}return(0);
}
return(0); } //+------------------------------------------------------------------+ //| Пользовательская функция деинициализации индикатора | //+------------------------------------------------------------------+ int deinit() {
return(0); } //+------------------------------------------------------------------+ //| Пользовательская функция итерации индикатора | //+------------------------------------------------------------------+ int start(){
string basename = "Heikin-Ashi"; IndicatorShortName(basename); int window = WindowFind(basename);
for (int i = Bars-100; i >= 0; i--){
// эти два индекса используются для управления размером подокна // они не видны high[i] = High[i]; low[i] = Low[i]; double haOpen, haHigh, haLow, haClose, haDiffCo; haOpen=(Open[i+1]+Close[i+1])/2; open[i] = haOpen; haClose=(Open[i]+High[i]+Low[i]+Close[i])/4; close[i] = haClose; haHigh=MathMax(haOpen,High[i]); haLow=MathMax(haOpen,Low[i]); string name1 = "Heikin-Ashi-HL-"+i;
за ваш любезный ответ, смазанный означает, что тело не является правильным прямоугольником, края изогнуты. Вы также правы, нет нижних хвостов... Я задаюсь вопросом, почему все это.
Как я могу сделать тела идеальными прямоугольниками, как график цен?
Вопрос:
1. Мы объявляем индикаторы и буферы сверху, затем указываем стиль индекса как DRAW_LINE. Затем мы говорим вставить линию тренда с этой шириной и цветом, чтобы представить индикатор. Таким образом, мы просто используем буферы для рисования объекта (линии тренда). Нужно ли нам объявлять индикаторы сверху и делать индексный стиль как draw_line?
Это немного запутанно иметь и drawline и вставлять объект trendline?
Прошу ваших экспертных комментариев и буду признателен, если вы сможете поправить мои мысли?
Мой предыдущий вопрос все еще остается там, пожалуйста, помогите?
за ваш любезный ответ, смазанный означает, что тело не является правильным прямоугольником, края изогнуты. Как я могу сделать тела идеальными прямоугольниками, как график цен?
Вопрос:
1. Мы объявляем индикаторы и буферы в верхней части, затем указываем стиль индекса как DRAW_LINE. Затем мы говорим вставить линию тренда с этой шириной и цветом, чтобы представить индикатор. Таким образом, мы просто используем буферы для рисования объекта (линии тренда). Нужно ли нам объявлять индикаторы сверху и делать индексный стиль как draw_line?
Это немного запутанно иметь и drawline и вставлять объект trendline?
Прошу ваших экспертных комментариев и буду признателен, если вы сможете поправить мои мысли?
Окно индикатора может иметь заданный размер, используя #property indicator_maximum и #property indicator_minumum.
Если они не указаны (в моем примере их нет), то окно индикатора изменяет свои размеры на основе отображаемых максимального и минимального значений одного из индексов индикатора.
Мы никогда не говорим "вставить трендовую линию"... Объекты рисуются с определенными атрибутами времени и цены.
Буферы индексов находятся там (но невидимы), чтобы соответствующим образом изменять размер подокна по мере изменения цен во времени.
Здравствуйте, Фи.
Я пробовал с сегодняшнего утра, на экране ничего не появляется. Ваш код был бы очень полезен, чтобы я мог начать концентрироваться на других.
Я использовал объект create
с типом как прямоугольник, большой и маленький, ничего не появляется на экране. Я не знаю, как указать время и ценовые уровни и получить свечной паттерн.
Пожалуйста, предоставьте ваш код, буду очень признателен или пример получения свечи с помощью функции create Object.
Он рисует простые столбики.
Здравствуйте Phy спасибо за код, но код не создает свечные стик бары, он создает линейный бар. Мне нужно что-то для свечных баров plzz...zzz,>
Я в недоумении, почему так трудно создать свечной бар с помощью этих функций?
Пожалуйста, помогите
спасибо за поддержку
Наконец-то, спасибо большое, заработало, но тело свечи все размазано сверху и снизу, почему? есть идеи? и еще хуже вокруг последних 20 свечей...
#property indicator_separate_window
#property indicator_buffers 5
#property indicator_color1 CLR_NONE
#property indicator_color2 CLR_NONE
double high[];
double low[];
double open[];
double close[];
//+------------------------------------------------------------------+
//| Пользовательская функция инициализации индикатора |
//+------------------------------------------------------------------+
int init()
{
SetIndexStyle(0, DRAW_LINE);
SetIndexStyle(1, DRAW_LINE);
SetIndexStyle(2, DRAW_LINE);
SetIndexStyle(3, DRAW_LINE);
SetIndexBuffer(0, high);
SetIndexBuffer(1, low);
SetIndexBuffer(2, open);
SetIndexBuffer(3, close);
return(0);
}
//+------------------------------------------------------------------+
//| Пользовательская функция деинициализации индикатора |
//+------------------------------------------------------------------+
int deinit()
{
return(0);
}
//+------------------------------------------------------------------+
//| Пользовательская функция итерации индикатора |
//+------------------------------------------------------------------+
int start(){
string basename = "Heikin-Ashi";
IndicatorShortName(basename);
int window = WindowFind(basename);
for (int i = Bars-100; i >= 0; i--){
// эти два индекса используются для управления размером подокна
// они не видны
high[i] = High[i];
low[i] = Low[i];
double haOpen, haHigh, haLow, haClose, haDiffCo;
haOpen=(Open[i+1]+Close[i+1])/2;
open[i] = haOpen;
haClose=(Open[i]+High[i]+Low[i]+Close[i])/4;
close[i] = haClose;
haHigh=MathMax(haOpen,High[i]);
haLow=MathMax(haOpen,Low[i]);
string name1 = "Heikin-Ashi-HL-"+i;
if(ObjectFind(name1) != -1) ObjectDelete(name1);
ObjectCreate(name1, OBJ_TREND, window, Time[i], haHigh, Time[i], haLow);
ObjectSet(name1, OBJPROP_STYLE, STYLE_SOLID);
ObjectSet(name1, OBJPROP_RAY, 0);
ObjectSet(name1, OBJPROP_WIDTH, 1);
string name2 = "Heikin-Ashi-OC-"+i;
if(ObjectFind(name2) != -1) ObjectDelete(name2);
ObjectCreate(name2, OBJ_TREND, window, Time[i], haOpen, Time[i], haClose);
ObjectSet(name2, OBJPROP_WIDTH, 3);
//ObjectSet(name2, OBJPROP_STYLE, STYLE_SOLID);
ObjectSet(name2, OBJPROP_RAY, 0);
if (haOpen < haClose) {
ObjectSet(name1, OBJPROP_COLOR, Chartreuse);
ObjectSet(name2, OBJPROP_COLOR, Chartreuse);
}else{
ObjectSet(name1, OBJPROP_COLOR, Red);
ObjectSet(name2, OBJPROP_COLOR, Red);
}
}
return(0);
}
Кроме того, я заметил, что в вашем коде нет нижних хвостов.
Я думаю, что ваш расчет HA не совсем корректен.
Спасибо, Фи
за ваш любезный ответ, смазанный означает, что тело не является правильным прямоугольником, края изогнуты. Вы также правы, нет нижних хвостов... Я задаюсь вопросом, почему все это.
Как я могу сделать тела идеальными прямоугольниками, как график цен?
Вопрос:
1. Мы объявляем индикаторы и буферы сверху, затем указываем стиль индекса как DRAW_LINE. Затем мы говорим вставить линию тренда с этой шириной и цветом, чтобы представить индикатор. Таким образом, мы просто используем буферы для рисования объекта (линии тренда). Нужно ли нам объявлять индикаторы сверху и делать индексный стиль как draw_line?
Это немного запутанно иметь и drawline и вставлять объект trendline?
Прошу ваших экспертных комментариев и буду признателен, если вы сможете поправить мои мысли?
Вот в чем была проблема с хвостами,
haLow=MathMax(haOpen,Low[i]);
должно быть
haLow=MathMin(haOpen,Low[i]);
Мой предыдущий вопрос все еще остается там, пожалуйста, помогите?
за ваш любезный ответ, смазанный означает, что тело не является правильным прямоугольником, края изогнуты. Как я могу сделать тела идеальными прямоугольниками, как график цен?
Вопрос:
1. Мы объявляем индикаторы и буферы в верхней части, затем указываем стиль индекса как DRAW_LINE. Затем мы говорим вставить линию тренда с этой шириной и цветом, чтобы представить индикатор. Таким образом, мы просто используем буферы для рисования объекта (линии тренда). Нужно ли нам объявлять индикаторы сверху и делать индексный стиль как draw_line?
Это немного запутанно иметь и drawline и вставлять объект trendline?
Прошу ваших экспертных комментариев и буду признателен, если вы сможете поправить мои мысли?
Если они не указаны (в моем примере их нет), то окно индикатора изменяет свои размеры на основе отображаемых
максимального и минимального значений одного из индексов индикатора.
Мы никогда не говорим "вставить трендовую линию"... Объекты рисуются с определенными атрибутами времени и цены.
Буферы индексов находятся там (но невидимы), чтобы соответствующим образом изменять размер подокна по мере изменения цен во времени.