Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 114
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
R Какие объекты не различаются? и что значит заменить тип объекта, то свойства схлопнуться?
это значит что если в мой текущий код заменить объект горизонтальная линия на линия тренда или вертикальная линия по текущей свечке, то все равно работать будет что - то одно и красного цвета вне зависимости от указания параметров другого объекта.
цель всех этих манипуляций - совместить индикатор и советника, я сейчас пытаюсь найти саму ошибку из - за чего так происходит.
т.е. создает перемещает и удаляет вполне нормально, но мне нужен синий цвет при покупке красный при продаже а не красный в любом случае.Приветствую. Подскажите что дает запись в () скобках после "double bb" и что в данном случае дает запись в {} скобках для "double bb(int buff,int shift)"
И еще тут. Buy и Sell имеют тип bool. Как понять что им присваивается при использовании "< , &&, >" ?
{
if(!UseHTF){
Buy = (bb(0,1) < bb(1,1) && bb(0,2) > bb(1,2));
Sell = (bb(0,1) > bb(1,1) && bb(0,2) < bb(1,2));}
if(UseHTF){
Buy = (bbh(0,1) < bbh(1,1) && bb(0,1) < bb(1,1) && bb(0,2) > bb(1,2));
Sell = (bbh(0,1) > bbh(1,1) && bb(0,1) > bb(1,1) && bb(0,2) < bb(1,2));}
Приветствую. Подскажите что дает запись в () скобках после "double bb" и что в данном случае дает запись в {} скобках для "double bb(int buff,int shift)"
И еще тут. Buy и Sell имеют тип bool. Как понять что им присваивается при использовании "< , &&, >" ?
{
if(!UseHTF){
Buy = (bb(0,1) < bb(1,1) && bb(0,2) > bb(1,2));
Sell = (bb(0,1) > bb(1,1) && bb(0,2) < bb(1,2));}
if(UseHTF){
Buy = (bbh(0,1) < bbh(1,1) && bb(0,1) < bb(1,1) && bb(0,2) > bb(1,2));
Sell = (bbh(0,1) > bbh(1,1) && bb(0,1) > bb(1,1) && bb(0,2) < bb(1,2));}
2. Булевым переменным присваивается результат всего логического выражения, следующим за знаком присвоения (=). Если все условия истинны, то переменной присваивается true, иначе - false
это значит что если в мой текущий код заменить объект горизонтальная линия на линия тренда или вертикальная линия по текущей свечке, то все равно работать будет что - то одно и красного цвета вне зависимости от указания параметров другого объекта.
цель всех этих манипуляций - совместить индикатор и советника, я сейчас пытаюсь найти саму ошибку из - за чего так происходит.
т.е. создает перемещает и удаляет вполне нормально, но мне нужен синий цвет при покупке красный при продаже а не красный в любом случае.значит вы опять что-то не правильно задаете параметры графического объекта
скорее всего.
вроде все по учебникам, но результат не тот, поэтому и кинул код сюда.
Не могу понять, почему в терминале присутствует Глобальная Переменная Клиентского Терминала, если я её не создавал ? (функция GlobalVariablesTotal() выдаёт значение "1"). Может быть там есть какая-нибудь предустановленная Терминалом ? Тогда почему, когда я хочу узнать её имя и вызываю функцию GlobalVariableName(0) или GlobalVariableName(1), то никаких имён не выводится. Подскажи пожалуйста, в чём может быть дело ?
Приветствую. Нужно получить данные по красной линии индикатора который не накладывается на график цены а отображается отдельно под ним. Пытаюсь это сделать как и с индикаторами которые накладываются на график, но что-то не так. Где я ошибаюсь?
Вот сам индикатор
#property link "yuriytokman@gmail.com"
//ну если проще запулить в одно окно три мульти с настройками
//1 EUR-USD
//2 EURGBP
//3 EURJPY
//если все три в состоянии перекупленности значит Бай и наоборот
#property indicator_separate_window
#property indicator_buffers 6
#property indicator_color1 Green
#property indicator_color2 Red
#property indicator_color3 Yellow
#property indicator_level1 0
#property indicator_level2 5
#property indicator_level3 -5
extern string Symbol_1 = "EURUSD";
extern string Symbol_2 = "EURGBP";
extern string Symbol_3 = "EURJPY";
extern int RSI_1_Period = 14;//период первого индикатора РСИ
extern int RSI_2_Period = 28;//период второго индикатора РСИ
extern int applied_price = 0;//используемая цена 0-6
extern int ma_period = 14;//период сглаживания
extern int ma_method = 0;//метод сглаживания 0-3
double buf[];
double MA_buf[];
double buf2[];
double MA_buf2[];
double buf3[];
double MA_buf3[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,2);
SetIndexBuffer(0, buf);
SetIndexStyle(4,DRAW_NONE);
SetIndexBuffer(4,MA_buf);
SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,2);
SetIndexBuffer(1, buf2);
SetIndexStyle(3,DRAW_NONE);
SetIndexBuffer(3,MA_buf2);
SetIndexStyle(2,DRAW_LINE,STYLE_SOLID,2);
SetIndexBuffer(2, buf3);
SetIndexStyle(5,DRAW_NONE);
SetIndexBuffer(5,MA_buf3);
IndicatorShortName("ytg_Def_RSI_3_Symbol");
Comment("yuriytokman@gmail.com");
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
Comment("");
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
//----
double RSI_1, RSI_2, RSI_12, RSI_22, RSI_13, RSI_23;
int limit;
int counted_bars=IndicatorCounted();
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
limit=Bars-counted_bars;
for(int i=limit; i>=0; i--)
{
RSI_1 = iRSI(Symbol_1,0,RSI_1_Period,applied_price,i);
RSI_2 = iRSI(Symbol_1,0,RSI_2_Period,applied_price,i);
MA_buf[i] = (RSI_1-RSI_2);
RSI_12 = iRSI(Symbol_2,0,RSI_1_Period,applied_price,i);
RSI_22 = iRSI(Symbol_2,0,RSI_2_Period,applied_price,i);
MA_buf2[i] = (RSI_12-RSI_22);
RSI_13 = iRSI(Symbol_3,0,RSI_1_Period,applied_price,i);
RSI_23 = iRSI(Symbol_3,0,RSI_2_Period,applied_price,i);
MA_buf3[i] = (RSI_13-RSI_23);
}
for(i=limit; i>=0; i--)
{
buf[i] = iMAOnArray(MA_buf,0,ma_period,0,ma_method,i);
buf2[i] = iMAOnArray(MA_buf2,0,ma_period,0,ma_method,i);
buf3[i] = iMAOnArray(MA_buf3,0,ma_period,0,ma_method,i);
}
//----
return(0);
}
Приветствую. Нужно получить данные по красной линии индикатора который не накладывается на график цены а отображается отдельно под ним. Пытаюсь это сделать как и с индикаторами которые накладываются на график, но что-то не так. Где я ошибаюсь?
Вот сам индикатор
extern string Symbol_2 = "EURGBP";
extern string Symbol_3 = "EURJPY";
extern int RSI_1_Period = 14;//период первого индикатора РСИ
extern int RSI_2_Period = 28;//период второго индикатора РСИ
extern int applied_price = 0;//используемая цена 0-6
extern int ma_period = 14;//период сглаживания
extern int ma_method = 0;//метод сглаживания 0-3
Открываете окно входных параметров, и по порядку их перечисляете в iCustom
У вас пропущены первые три строковых значения: