Извиняюсь, что всё сразу не получилось уложить!
Неужели это ни кого не заинтересовало?
А смысл?
Неужели это ни кого не заинтересовало?
А смысл?
У меня есть немного по другому переделаный этот же индикатор(прикладываю исходник), но я хотел бы сравнить их работу, где будет более ясная картина.
//+------------------------------------------------------------------+ //| prusax_v2.mq4 //| 2008 modified by zIG //+------------------------------------------------------------------+ #property indicator_chart_window #property indicator_buffers 4 #property indicator_color1 White #property indicator_color2 White #property indicator_color3 Red #property indicator_color4 Red #property indicator_width1 2 #property indicator_width2 2 #property indicator_width3 2 #property indicator_width4 2 //---- buffers double BufferUP[]; double BufferDN[]; double BufferUP1[]; double BufferDN1[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { string short_name; //---- indicator line IndicatorBuffers(4); SetIndexStyle(0,DRAW_HISTOGRAM); SetIndexBuffer(0,BufferUP); SetIndexStyle(1,DRAW_HISTOGRAM); SetIndexBuffer(1,BufferUP1); SetIndexStyle(2,DRAW_HISTOGRAM); SetIndexBuffer(2,BufferDN); SetIndexStyle(3,DRAW_HISTOGRAM); SetIndexBuffer(3,BufferDN1); SetIndexDrawBegin(0,10); SetIndexDrawBegin(1,10); SetIndexDrawBegin(2,10); SetIndexDrawBegin(3,10); //---- return(0); } //+------------------------------------------------------------------+ //| //+------------------------------------------------------------------+ int start() { int i,counted_bars=IndicatorCounted(); for(i=Bars-counted_bars-1;i>=0;i--) { if(i==0) { BufferUP[i] = High[i]; BufferUP1[i] = (High[i]-(((High[i]-Open[i])+(Close[i]-Low[i]))/2)); BufferDN[i] = (High[i]-(((High[i]-Open[i])+(Close[i]-Low[i]))/2)); BufferDN1[i] = (High[i]-(((High[i]-Open[i])+(Close[i]-Low[i]))/2))-(((Open[i]-Low[i])+(High[i]-Close[i]))/2); } else { if(Close[i]>Open[i]) { BufferUP[i] = High[i]; BufferUP1[i] = Open[i]; BufferDN[i] =0.0; BufferDN1[i] =0.0; } else if(Close[i]<Open[i]) { BufferUP[i] = 0.0; BufferUP1[i] = 0.0; BufferDN[i] =Open[i]; BufferDN1[i] =Low[i]; } } } return(0); } //+------------------------------------------------------------------+
Неужели это ни кого не заинтересовало?
А смысл?
У меня есть немного по другому переделаный этот же индикатор(прикладываю исходник), но я хотел бы сравнить их работу, где будет более ясная картина.
Первый не перерисовывает на первом баре, второй перерисовывает. А идею все таки хотелось бы услышать.
Да и скобки раскрой в этом выражении
BufferDN1[i] = (High[i]-(((High[i]-Open[i])+(Close[i]-Low[i]))/2))-(((Open[i]-Low[i])+(High[i]-Close[i]))/2);Посмотри что получится.
Неужели это ни кого не заинтересовало?
А смысл?
У меня есть немного по другому переделаный этот же индикатор(прикладываю исходник), но я хотел бы сравнить их работу, где будет более ясная картина.
Первый не перерисовывает на первом баре, второй перерисовывает. А идею все таки хотелось бы услышать.
Да и скобки раскрой в этом выражении
BufferDN1[i] = (High[i]-(((High[i]-Open[i])+(Close[i]-Low[i]))/2))-(((Open[i]-Low[i])+(High[i]-Close[i]))/2);Посмотри что получится.
Значит второй индикатор перерисовывает? А какие скобки убрать? Я попробовал убрать первую и последнюю скобку, так после презагрузки индикатор
вообще пропал. Какие всё же скобки надо убрать. Про идею я по моему выше написал. Просто при закрытии бара мы бы видели разницу, если она с минусом, т.е. с показанием, что движение идёт вниз и если на следующем баре эта разница дальше увеличивается, то движение продолжается вниз. Так начиная с минутки и на все таймфреймы. Вот пожалуй и всё .
Неужели это ни кого не заинтересовало?
А смысл?
У меня есть немного по другому переделаный этот же индикатор(прикладываю исходник), но я хотел бы сравнить их работу, где будет более ясная картина.
Первый не перерисовывает на первом баре, второй перерисовывает. А идею все таки хотелось бы услышать.
Да и скобки раскрой в этом выражении
BufferDN1[i] = (High[i]-(((High[i]-Open[i])+(Close[i]-Low[i]))/2))-(((Open[i]-Low[i])+(High[i]-Close[i]))/2);Посмотри что получится.
Значит второй индикатор перерисовывает? А какие скобки убрать? Я попробовал убрать первую и последнюю скобку, так после презагрузки индикатор
вообще пропал. Какие всё же скобки надо убрать. Про идею я по моему выше написал. Просто при закрытии бара мы бы видели разницу, если она с минусом, т.е. с показанием, что движение идёт вниз и если на следующем баре эта разница дальше увеличивается, то движение продолжается вниз. Так начиная с минутки и на все таймфреймы. Вот пожалуй и всё .
Если убрать все скобки (все), то получится BufferDN1[i] = Low[i];
Может ты S как-то по другому должен считать, судя по рисункам.
Может ты S как-то по другому должен считать, судя по рисункам.
S - Это граница разделения. Верхнюю разницу я считал следующим образом: от самого верхнего значения Н отнимал значение S получается разница Т.
Потом от значения S отнимал значение L получалась разница О. Далее от Т отнимаем О, если со знаком +, то разница на баре белого цвета, если разница со знаком -(минус), то красного цвета, если разница равна нулю(0), то бар остаётся зелёный
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Прошу переделать индикатор (прикладываю исходник), который отображает соотношение движения вверх и вниз. Я хотел бы, чтобы он выглядил как на картинке, которую прикладываю. Там я написал, чтобы было более менее понятно, но тут объясняю подробнее:
Я бар разграничил: верхнюю часть бара отметил буквой «Н» середину разграничивающую цвета «S» и низ бара буквой «L». Потом отнимаем верхнее значение цены «Н» от средней цены «S» (к примеру 1,5479-1,5472= 0,0007), эту разницу обозначим «Т», далее отнимаем от средней цены «S» нижнее значение цены «L» (к примеру 1,5472-1,5455=0,0017), эту разницу обозначим «О». Потом от верхней разницы «Т» отнимаем нижнюю разницу «О», в нашем случае это 0,0007-0,0017=-0,0010. Эта разница получилась со знаком минус (-), следовательно после закрытия бара эта разница на баре будет красного цвета. Если эта разница получается со знаком плюс (+), то естественно после закрытия бара разница будет белого цвета. Ну а если разница после закрытия будет равна нулю(0), то бар остаётся зелёного цвета . Вот пожалуй и всё.