Использовать дополнительные два индимкаторных буфера и стить
отрисовки DRAW_HISTOGRAM.
Объясните пожалуйста подробнее. Не понимаю как указать нижню и верхнюю границу для штриховки.
Вот моя нерабочая попытка:
//+------------------------------------------------------------------+ //| j001.mq4 | //| Copyright © 2007, Antonuk Oleg | //| banderass@i.ua | //+------------------------------------------------------------------+ #property copyright "Copyright © 2007, Antonuk Oleg" #property link "banderass@i.ua" #property indicator_separate_window #property indicator_buffers 4 #property indicator_color1 OrangeRed #property indicator_color2 Green #property indicator_color3 OrangeRed #property indicator_color4 Green //---- buffers double ExtMapBuffer1[]; double ExtMapBuffer2[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- indicators SetIndexStyle(0,DRAW_LINE); SetIndexStyle(1,DRAW_LINE); SetIndexStyle(2,DRAW_HISTOGRAM); SetIndexStyle(3,DRAW_HISTOGRAM); SetIndexBuffer(0,ExtMapBuffer1); SetIndexBuffer(1,ExtMapBuffer2); SetIndexBuffer(2,ExtMapBuffer1); SetIndexBuffer(3,ExtMapBuffer2); IndicatorShortName("justTest"); int windowIndex=WindowFind("justTest"); //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { int limit; int counted_bars=IndicatorCounted(); //---- последний посчитанный бар будет пересчитан if(counted_bars>0) counted_bars--; limit=Bars-counted_bars; //---- основной цикл for(int i=0; i<limit; i++) { ExtMapBuffer1[i]=iMA(0,0,8,0,MODE_SMA,PRICE_HIGH,i); ExtMapBuffer2[i]=iMA(0,0,16,0,MODE_SMA,PRICE_LOW,i); } //---- return(0); } //+------------------------------------------------------------------+
Файлы:
j002.mq4
3 kb
В отдельном окне заштриховать гистограммой не получится
хмм, очень жаль. Может попробывать объектами-линиями вручную
заштриховать??
banderass:
хмм, очень жаль. Может попробывать объектами-линиями вручную заштриховать??
хмм, очень жаль. Может попробывать объектами-линиями вручную заштриховать??
//+------------------------------------------------------------------+ //| тест.mq4 | //| | //| | //+------------------------------------------------------------------+ #property copyright "" #property link "" //#property show_inputs int init(){ } int deinit(){ Draw(0,10,200,5,30,100,5,"shtrih",".",8,Red);//Удаление } int start(){ Draw(1,10,200,5,30,100,5,"shtrih",".",8,Red);//рисование Sleep(3000); } int Draw(bool Mode,int StartHz,int StopHz,int StepHz,int StartVr,int StopVr,int StepVr,string ObjName,string Sym,int Rzm,int Col){ int Hz,Vr; for(Hz=StartHz;Hz<=StopHz;Hz=Hz+StepHz){ for(Vr=StartVr;Vr<=StopVr;Vr=Vr+StepVr){ if(Mode){ ObjectCreate(ObjName+"."+Hz+"."+Vr, OBJ_LABEL, 0,0,0); ObjectSet(ObjName+"."+Hz+"."+Vr, OBJPROP_XDISTANCE, Hz); ObjectSet(ObjName+"."+Hz+"."+Vr, OBJPROP_YDISTANCE, Vr); ObjectSetText(ObjName+"."+Hz+"."+Vr,Sym, Rzm, "VeHghana", Col); } else{ObjectDelete(ObjName+"."+Hz+"."+Vr);} }} return(0); }може эта функция подойдет, надеюсь разберетесь
спасибо большое, буду пробывать
ничего не выйдет таким способом, так как даже нет объекта-линии. Есть только полупрямые(трендовые линии). Хотя можно рисовать по 2 объекта. Но тут уже морока с цветом фона. Есть способ его определить?
banderass:
Есть только полупрямые(трендовые линии).
Есть только полупрямые(трендовые линии).
Используйте OBJPROP_RAY - и не будеть у вас больше луча.
Itso
Спасибо, значит вариант с линиями в силе. А пока что у меня есть рабочий вариант закраски с помощью дополнительных буфферов.
Спасибо, значит вариант с линиями в силе. А пока что у меня есть рабочий вариант закраски с помощью дополнительных буфферов.
Файлы:
j003_1.mq4
3 kb
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Заштриховать в том смысле, что бы заполнить пробелы вертикальными линиями, как в индикаторе Ишимоку.