ObjectCreate(name, OBJ_ARROW, 0, time, price); ObjectSet(name, OBJPROP_ARROWCODE, arrIndex); ObjectSet(name, OBJPROP_COLOR, col); ObjectSet(name, OBJPROP_WIDTH, width);
а вот если переделать например в этом коде
int init() { IndicatorBuffers(2); //---- drawing settings SetIndexStyle(0,DRAW_SECTION); //---- indicator buffers mapping SetIndexBuffer(0,ExtMapBuffer); SetIndexBuffer(1,ExtMapBuffer2); SetIndexEmptyValue(0,0.0); //---- indicator short name IndicatorShortName("ZigZag("+ExtDepth+","+ExtDeviation+","+ExtBackstep+")"); //---- initialization done return(0); }просто я так понимаю что создать объект вместо индекса нужно переделать не только одну строчкуи добавить параметры... Вопрос в том как уйти от SetIndexStyle к
ObjectCreate(name, OBJ_ARROW, 0, time, price); ObjectSet(name, OBJPROP_ARROWCODE, arrIndex); ObjectSet(name, OBJPROP_COLOR, col); ObjectSet(name, OBJPROP_WIDTH, width);если можете показать на примере индикатора в приложении.
Файлы:
zigzag.mq4
4 kb
то что в init это инициализация двух буферов ExtMapBuffer буфер для значений цен, по которым будет отрисовываться отрезки между не пустыми значениями DRAW_SECTION, второй ExtMapBuffer2 используется для расчетов и только..
а что хотите вы? чтоб вместо линий стрелки были или что?
Ну так и напишите : SetIndexStyle(0,DRAW_ARROW,6); можете еще размер добавить и цвет поменять....
Двойной Взгляд на Скользящую среднюю
давайте на более простом,
Если например переделать SetIndexStyle в скользящей средней по close (период 8) то будет такая картина,,, как добится такого результата? я и спрашиваю :) подмогите пожалуйста
Нет ничего проще :
//+------------------------------------------------------------------+ //| RIGHTPRICE .mq4 | //| Copyright © 2008, MetaQuotes Software Corp. | //| http://www.metaquotes.net | //+------------------------------------------------------------------+ #property copyright "Copyright © 2008, MetaQuotes Software Corp." #property link "http://www.metaquotes.net" #property indicator_chart_window extern int period=3; extern int shift =0; extern int metod =0; extern int prise =0; extern int bars =20; void init(){ObjectsDeleteAll();return;} int start(){ int counted_bars=IndicatorCounted(); if(counted_bars<0) return(-1); if(counted_bars>0) counted_bars--; int limit=Bars-counted_bars; if(limit>bars){limit=bars;} if(NevBar()){ for (int i = 0;i<limit;i++){SetArrow(DoubleToStr(Time[i],1),6,1,i,iMA(Symbol(),0,period,shift,metod,prise,i),Green);} } return;} void deinit(){ObjectsDeleteAll();return;} //-----------------------------------------------------------------------------+ // Функция контроля нового бара | //-----------------------------------------------------------------------------+ bool NevBar(){ static int PrevTime=0; if (PrevTime==Time[0]) return(false); PrevTime=Time[0]; return(true);} //+------------------------------------------------------------------+ //| Установка стрелок | //+------------------------------------------------------------------+ void SetArrow(string nm,int kod,int razm,int bar,double prs,color col){ //if(!DriveArrow)return; string Name=StringConcatenate(nm,TimeToStr(TimeLocal(),TIME_DATE|TIME_SECONDS)); ObjectCreate(Name,OBJ_ARROW,0,0,0,0,0,0,0); ObjectSet(Name,OBJPROP_ARROWCODE,kod); ObjectSet(Name,OBJPROP_STYLE,DRAW_ARROW); ObjectSet(Name,OBJPROP_TIME1,Time[bar]); ObjectSet(Name,OBJPROP_PRICE1,prs); ObjectSet(Name,OBJPROP_WIDTH,razm); ObjectSet(Name,OBJPROP_COLOR,col); return;}
Благодарю Вас,,, можно чтобы мне понять как такое сделать самому исходник то из чего вы переделали))
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Помогите пожалуйста понять принцип как переделать
SetIndexStyle(0, DRAW_ARROW,0,0,Red);
в
ObjectCreate(example, OBJ_ARROW, 0, 0,0, 0,0);