Помощь в кодировании - страница 112

 
mladen:
Вместо использования iCustom() для rsi и cci используйте встроенные функции.

Параметры, необходимые для RSI :

iCCI( [TD]string symbol, int timeframe, int period, int applied_price, int shift)
double iRSI([/TD]string symbol, int timeframe, int period, int applied_price, int shift)[/TD]

[/TR] [/TR]

[/TABLE]

Параметры, необходимые для CCI :

[TABLE="class: docvar"]

[TR]

[TD]double

А для CMO первый параметр - LastBarOnly, а второй - CMO_Range, поэтому вызов iCustom() должен быть примерно таким :

iCustom(NULL,0, "cmo",false,CMORange,0,i);

где CMORange будет некоторым параметром

Я новичок в mql4, не могли бы вы написать, пожалуйста?

 
anonimm:
я новичок в mql4, можете ли вы написать? пожалуйста

Сделайте что-то вроде этого:

#property indicator_chart_window

#property indicator_buffers 2

#property indicator_color1 Crimson

#property indicator_color2 RoyalBlue

extern int barsToProcess=100;

extern int RsiPeriod = 14;

extern int RsiPrice = PRICE_CLOSE;

extern int CciPeriod = 14;

extern int CciPrice = PRICE_TYPICAL;

extern int CmoRange = 14;

//

double ExtMapBuffer1[];

double ExtMapBuffer2[];

//------------------------------------------------------------------

//

//------------------------------------------------------------------

int init()

{

SetIndexBuffer(0,ExtMapBuffer1); SetIndexStyle(0,DRAW_ARROW); SetIndexArrow(0,233);

SetIndexBuffer(1,ExtMapBuffer2); SetIndexStyle(1,DRAW_ARROW); SetIndexArrow(1,234);

return(0);

}

int deinit() { return(0); }

//------------------------------------------------------------------

//

//------------------------------------------------------------------

int start()

{

int counted_bars=IndicatorCounted();

if(counted_bars>0)counted_bars--;

int limit=Bars-counted_bars; if(limit>barsToProcess)limit=barsToProcess;

for(int i=limit;i>=0;i--)

{

double rsi=iRSI(NULL,0,RsiPeriod,RsiPrice,i);

double cci=iCCI(NULL,0,CciPeriod,CciPrice,i);

double cmo=iCustom(NULL,0,"cmo",false,CmoRange,0,i);

if(rsi>60.0 && cci>150.0 && cmo>30.0)

ExtMapBuffer1=High+5*Point;

else ExtMapBuffer1=EMPTY_VALUE;

if(rsi<40.0 && cci<-150.0 && cmo<-30.0)

ExtMapBuffer2=Low-5*Point;

else ExtMapBuffer2=EMPTY_VALUE;

}

return(0);

}

Прикрепляю тестовый индикатор (такой же, как код выше).

Файлы:
_test.mq4  2 kb
 

Я размещаю здесь одну из лучших дивергенций Stochastic от FX5, которые я когда-либо видел (я перепробовал множество подобных индексов),

Она показывает "нормальную дивергенцию" и очень интересную "Скрытую дивергенцию".

Может ли кто-нибудь добавить в код возможность изменять цвет линий тренда на графике и стохастика?

И может ли кто-нибудь использовать этот код для такой красивой дивергенции RSI, потому что я никогда не находил ее.

Большое спасибо кодеру, который это сделает.

Хорошего дня

Zilliq

https://mon-partage.fr/f/qtt6kDOR/

Ps: Спасибо модератору, который изменил этот пост в нужном месте ;-)

Файлы:
 
zilliq:
Я размещаю здесь одну из лучших дивергенций Стохастика из FX5, которые я когда-либо видел (я перепробовал много подобных дивергенций),

Он показывает "обычную дивергенцию" и очень интересную "Скрытую дивергенцию".

Может ли кто-нибудь добавить в код возможность изменять цвет линий тренда на графике и стохастика?

И может ли кто-нибудь использовать этот код для такой красивой дивергенции RSI, потому что я никогда не находил ее.

Большое спасибо кодеру, который это сделает.

Хорошего дня

Zilliq

https://mon-partage.fr/f/qtt6kDOR/

Ps: Спасибо модератору, который изменил этот пост в нужном месте ;-)

zilliq

Попробуйте это сейчас: цвета могут быть установлены из параметров

Файлы:
 

Большое спасибо Младен ,

Я попробую немедленно

Zilliq

 

Привет Младен

Значения индикатора корреляции из advanced elite не отображаются, не могли бы вы помочь? Спасибо.

 
nevar:
Привет Mladen Значения индикатора корреляции из advanced elite не отображаются, можете помочь? Спасибо.

Здравствуйте Невар, если это этот https://www.mql5.com/en/forum/180028, вы получили dll также и включили импорт dll?

 

Спасибо MrTools

Да, это решается с помощью файла dll.

 

Требуется помощь в кодировании....

Я играюсь с OBJ_VLINE и ничего не получается. Используя следующий код, я могу нарисовать VLINE на пересечении двух скользящих средних, как пример.

{

string name="vline "+DoubleToStr(i,0);

ObjectCreate(name,OBJ_VLINE,0,iTime(Symbol(),0,i),0);

}

На самом деле я пытаюсь создать VLINE и горизонтальную линию в точке, где MA меняет наклон с положительного на отрицательный. Горизонтальная линия показывает фактическую цену, где происходит изменение. Я использую следующий код для изменения цвета в зависимости от наклона.

fasttrend=fasttrend;

если (MABuf>MABuf) fasttrend= 1;

если (MABuf<MABuf) fasttrend=-1;

if (fasttrend>0)

{

FastUpBuffer = MABuf;

if (fasttrend<0) FastUpBuffer=MABuf;

FastDnBuffer = EMPTY_VALUE;

}

else if (fasttrend<0)

{

FastDnBuffer = MABuf;

если (fasttrend>0) FastDnBuffer = MABuf;

FastUpBuffer = EMPTY_VALUE

}

Моя первая попытка привела к тому, что линии рисовались на каждом баре, что было красочно, но не совсем то, что я имел в виду. Я также не знаю, как удалить старый "крестик", когда создается новый. Есть ли какая-нибудь функция, которая это делает? Я хотел бы установить это как альтернативу стрелкам для обозначения изменения наклона, где мы можем видеть фактическую цену на баре, где индикатор действительно изменил направление.

Спасибо за любую помощь,

Алекс

 
hughesfleming:
Нужна помощь в кодировании....

Я играю с OBJ_VLINE и не могу быстро продвинуться. Используя следующий код, я могу нарисовать VLINE на пересечении двух скользящих средних, как пример.

{

string name="vline "+DoubleToStr(i,0);

ObjectCreate(name,OBJ_VLINE,0,iTime(Symbol(),0,i),0);

}

На самом деле я пытаюсь создать VLINE и горизонтальную линию в точке, где MA меняет наклон с положительного на отрицательный. Горизонтальная линия показывает фактическую цену, где происходит изменение. Я использую следующий код для изменения цвета в зависимости от наклона.

fasttrend=fasttrend;

если (MABuf>MABuf) fasttrend= 1;

если (MABuf<MABuf) fasttrend=-1;

if (fasttrend>0)

{

FastUpBuffer = MABuf;

if (fasttrend<0) FastUpBuffer=MABuf;

FastDnBuffer = EMPTY_VALUE;

}

else if (fasttrend<0)

{

FastDnBuffer = MABuf;

если (fasttrend>0) FastDnBuffer = MABuf;

FastUpBuffer = EMPTY_VALUE

}

Моя первая попытка привела к тому, что линии рисовались на каждом баре, что было красочно, но не совсем то, что я имел в виду. Я также не знаю, как удалить старый "крестик", когда создается новый. Есть ли какая-нибудь функция, которая это делает? Я хотел бы установить это как альтернативу стрелкам для обозначения изменения наклона, где мы можем видеть фактическую цену на баре, где индикатор действительно изменил направление.

Спасибо за любую помощь,

Алекс

Алекс

Вы пробовали что-то вроде этого (для добавления горизонтальной линии ) :

{

string name="vline"+Time;ObjectCreate(name,OBJ_VLINE,0,Time,0);

name="hline"+Time;ObjectCreate(name,OBJ_HLINE,0,Time,MABuff);

}