- Помогите добавить звук при кидании индикатора и при удалении его
- Не работает вкладка (уровни)
- Индикаторы: Parabolic_ZZ
Здравствуйте, прошу встроить(или же объяснить как это сделать или же кинуть простой код в котором уже встроены уровни фибо) сюда колонку, через которую в строчку можно было бы прописать % — уровни фибо)
ObjectSetString(0,nm,OBJPROP_LEVELTEXT,e,lev[e]); // описание ObjectSetDouble(0,nm,OBJPROP_LEVELVALUE,e,lev[e]); // значение ObjectSetInteger(0,nm,OBJPROP_LEVELCOLOR,e,lev[e]); // цвет ObjectSetInteger(0,nm,OBJPROP_LEVELSTYLE,e,lev[e]); // стиль ObjectSetInteger(0,nm,OBJPROP_LEVELWIDTH,e,lev[e]); // толщина
Нужно задать количество уровней фибо, и заполнить их значениями: ObjectSetInteger(0,nm,OBJPROP_LEVELCOLOR, номер уровня, значение уровня);
Так вот-же в документации есть пример
//+------------------------------------------------------------------+ //| Задает количество уровней и их параметры | //+------------------------------------------------------------------+ bool FiboLevelsSet(int levels, // количество линий уровня double &values[], // значения линий уровня color &colors[], // цвет линий уровня ENUM_LINE_STYLE &styles[], // стиль линий уровня int &widths[], // толщина линий уровня const long chart_ID=0, // ID графика const string name="FiboLevels") // имя объекта { //--- проверим размеры массивов if(levels!=ArraySize(colors) || levels!=ArraySize(styles) || levels!=ArraySize(widths) || levels!=ArraySize(widths)) { Print(__FUNCTION__,": длина массива не соответствует количеству уровней, ошибка!"); return(false); } //--- установим количество уровней ObjectSetInteger(chart_ID,name,OBJPROP_LEVELS,levels); //--- установим свойства уровней в цикле for(int i=0;i<levels;i++) { //--- значение уровня ObjectSetDouble(chart_ID,name,OBJPROP_LEVELVALUE,i,values[i]); //--- цвет уровня ObjectSetInteger(chart_ID,name,OBJPROP_LEVELCOLOR,i,colors[i]); //--- стиль уровня ObjectSetInteger(chart_ID,name,OBJPROP_LEVELSTYLE,i,styles[i]); //--- толщина уровня ObjectSetInteger(chart_ID,name,OBJPROP_LEVELWIDTH,i,widths[i]); //--- описание уровня ObjectSetString(chart_ID,name,OBJPROP_LEVELTEXT,i,DoubleToString(100*values[i],1)); } //--- успешное выполнение return(true); }

- docs.mql4.com
Нужно задать количество уровней фибо, и заполнить их значениями: ObjectSetInteger(0,nm,OBJPROP_LEVELCOLOR, номер уровня, значение уровня);
Так вот-же в документации есть пример
50,75,150,155 и тд в 1 стройке?
Спасибо
т.к у меня много уровней фибо, и чтобы не создавать в настройках каждое новое поля, я бы хотел чтобы можно было вывести уровни через 1 строчку, собственно это и есть вопрос, как прописать вывод:
50,75,150,155 и тд в 1 стройке?
Спасибо
Создать массив данных, и занести туда руками значения.
Далее, перебирать в цикле, и заполнять значениями с массивов
for(int i=e;e<9;e++) { // в данном случае 9 уровней, и соответственно в массивах по 9 элементов ObjectSetString(0,nm,OBJPROP_LEVELTEXT,e,txt[e]); // описание ObjectSetDouble(0,nm,OBJPROP_LEVELVALUE,e,val[e]); // значение ObjectSetInteger(0,nm,OBJPROP_LEVELCOLOR,e,clr[e]); // цвет ObjectSetInteger(0,nm,OBJPROP_LEVELSTYLE,e,stl[e]); // стиль ObjectSetInteger(0,nm,OBJPROP_LEVELWIDTH,e,wdt[e]); // толщина }
Создать массив данных, и занести туда руками значения.
Далее, перебирать в цикле, и заполнять значениями с массивов
Пожалуйста помогите:
вот массив:
double lev[5]={10,20,30,40,70};
вот он в цикле:
void PutFibo(string name,datetime time1,double price1,datetime time2,double price2) { ObjectDelete(0,name); ObjectCreate(0,name,OBJ_FIBO,0,time1,price1,time2,price2); for(int i=0;i<5;i++) ObjectSetDouble(0,name,OBJPROP_LEVELVALUE,i,lev[i]); return; }
Пожалуйста помогите:
нету результата:
вот массив:
вот он в цикле:
Пробуйте
#property copyright "Copyright 2010" #property link "" #property version "1.00" #property strict #property indicator_chart_window #property indicator_buffers 0 #property indicator_plots 0 input int t1=1; input int t2=11; input double p1=1.16; input double p2=1.15; double lev[]={0, 1, 1.3, 1.5, 1.7, 1.9}; string txt[]={"0","100","30","50","70","90"}; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- indicator buffers mapping //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void PutFibo(string name,datetime time1,double price1,datetime time2,double price2) { ObjectDelete(0,name); if(ObjectFind(0,name)<0) ObjectCreate(0,name,OBJ_FIBO,0,time1,price1,time2,price2); int c=ArraySize(lev); ObjectSetInteger(0,name,OBJPROP_LEVELS,c); for(int i=0;i<c;i++) { ObjectSetDouble(0,name,OBJPROP_LEVELVALUE,i,lev[i]); ObjectSetString(0,name,OBJPROP_LEVELTEXT,i,txt[i]); if(i==2) ObjectSetInteger(0,name,OBJPROP_LEVELCOLOR,i,clrRed); else ObjectSetInteger(0,name,OBJPROP_LEVELCOLOR,i,clrAqua); } return; } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) { // ArraySetAsSeries(time,true); MT5 // ArraySetAsSeries(high,true); MT5 // ArraySetAsSeries(low,true); MT5 //--- PutFibo("f1",time[12],high[12],time[31],low[31]); //--- return value of prev_calculated for next call return(rates_total); } //+------------------------------------------------------------------+
Пробуйте
работает Спасибо!!!
но почему у меня не работало, я не могу понять, я уровни писал не 1.9 а 90
хмм
Спасибо еще раз
работает Спасибо!!!
но почему у меня не работало, я не могу понять, я уровни писал не 1.9 а 90
хмм
Спасибо еще раз
Обратите внимание на: ObjectSetInteger(0,name,OBJPROP_LEVELS,c);

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования