Как кодировать? - страница 209

 

Привет всем...

кто-нибудь может показать мне, как начать кодировать индикаторы и советников?

 
kessing:
Привет всем... кто-нибудь может показать мне, как начать кодировать индикаторы и советники?

Привет,

Смотрите здесь: https://www.mql5.com/en/forum/172969/page2

 
kessing:
Привет всем... кто-нибудь может показать мне, как начать кодировать индикаторы и советники?

Прочитайте эту тему (первое сообщение): https://www.mql5.com/en/forum/178706

и эту тему: https://www.mql5.com/en/forum/173290

 
kessing:
Привет всем... кто-нибудь может показать мне, как начать кодировать индикаторы и советников?

Есть много информации как здесь, так и на FF. Вы также можете воспользоваться поиском в Google.

Для простого введения в программирование EA посмотрите ссылку в моем sig. Это хорошее место для начинающего программиста.

Удачи!

Lux

 
 

Индикатор к советнику

Привет всем,

Я хотел бы попросить помощи у всех, кто может сделать советника из прилагаемого индикатора Waddah Attar Explosion.

С нетерпением жду ответа.

Спасибо.

-s-

Файлы:
 

ea universal Ma 2 cross

Привет, друзья!

Я ищу, чтобы модифицировать ea этого Fireave's (с этого форума).

ea называется "universal ma cross ea".

Я хочу создать ea, которая будет входить на 2 подтвержденных креста (например, пара ema 2 & 4 и другая пара ema 5 & 20).

вот основной код, что я должен сделать?

//----------------------- УСТАНОВИТЬ ЗНАЧЕНИЕ ДЛЯ ПЕРЕМЕННОЙ

if(ConfirmedOnEntry==true)

{

if(CheckTime==iTime(NULL,TimeFrame,0)) return(0); else CheckTime = iTime(NULL,TimeFrame,0);

FastMACurrent = iMA(NULL,TimeFrame,FastMAPeriod,FastMAshift,FastMAType,FastMAPrice,1);

SlowMACurrent = iMA(NULL,TimeFrame,SlowMAPeriod,SlowMAshift,SlowMAType,SlowMAPrice,1);

}

else

{

FastMACurrent = iMA(NULL,TimeFrame,FastMAPeriod,FastMAshift,FastMAType,FastMAPrice,0);

SlowMACurrent = iMA(NULL,TimeFrame,SlowMAPeriod,SlowMAshift,SlowMAType,SlowMAPrice,0);

}

CrossDirection = subCrossDirection(FastMACurrent,SlowMACurrent);

Я перепробовал все, но не нашел решения... пожалуйста, помогите мне ради здоровья этого сообщества , мне нужно что-то похожее на это:

//----------------------- УСТАНАВЛИВАЕТ ЗНАЧЕНИЕ ДЛЯ ПЕРЕМЕННОЙ

if(ConfirmedOnEntry==true)

{

if(CheckTime==iTime(NULL,TimeFrame,0)) return(0); else CheckTime = iTime(NULL,TimeFrame,0);

FastMACurrent = iMA(NULL,TimeFrame,2,FastMAshift,FastMAType,FastMAPrice,1);

SlowMACurrent = iMA(NULL,TimeFrame,4,SlowMAshift,SlowMAType,SlowMAPrice,1);

FastMACurrent2 = iMA(NULL,TimeFrame,5,FastMAshift,FastMAType,FastMAPrice,1);

SlowMACurrent2 = iMA(NULL,TimeFrame,20,SlowMAshift,SlowMAType,SlowMAPrice,1);

}

else

{

FastMACurrent = iMA(NULL,TimeFrame,2,FastMAshift,FastMAType,FastMAPrice,0);

SlowMACurrent = iMA(NULL,TimeFrame,4,SlowMAshift,SlowMAType,SlowMAPrice,0);

FastMACurrent2 = iMA(NULL,TimeFrame,5,FastMAshift,FastMAType,FastMAPrice,0);

SlowMACurrent2 = iMA(NULL,TimeFrame,20,SlowMAshift,SlowMAType,SlowMAPrice,0);

}

CrossDirection = subCrossDirection(FastMACurrent,SlowMACurrent && FastMACurrent2,SlowMACurrent2);

Файлы:
 

Что не так с моим индикатором? Сообщение об ошибке

Здравствуйте,

Вот код из моего индикатора:

#property indicator_separate_window

#property indicator_buffers 2

#property indicator_color1 LightSeaGreen

#property indicator_color2 Blue

extern string Timeframe_Momentum = "PERIOD_H1";

extern int Periode_Momentum = 500;

extern int Periode_MA_Momentum = 8;

double Buffer_Mom[];

double Buffer_Ma[];

int init()

{

//---- индикаторы

SetIndexStyle(0,DRAW_LINE);

SetIndexStyle(1,DRAW_LINE);

SetIndexBuffer(0,Buffer_Mom);

SetIndexBuffer(1,Buffer_Ma);

//----

SetIndexEmptyValue(0,0.0);

SetIndexEmptyValue(1,0.0);

SetIndexDrawBegin(0,100);

SetIndexDrawBegin(1,100);

//----

return(0);

}

int deinit()

{

//----

return(0);

}

void start()

{

int counted_bars=IndicatorCounted();

int limit=Считанные_бары;

if(counted_bars>0) limit++;

//----

for(int i=0; i<limit; i++)

{

Buffer_Mom=iMomentum(NULL,Timeframe_Momentum,Periode_Momentum,PRICE_CLOSE,i);

Buffer_Ma=iMAOnArray(Buffer_Mom,0,Periode_MA_Momentum,0,MODE_SMA,i);

}

return(0);

}

Вот код, который я использую в основной программе:

double GMI1 = iCustom(NULL,0, "GMI",Timeframe_Momentum,Periode_Momentum,Periode_MA_Momentum, 0,1);

double GMI2 = iCustom(NULL,0, "GMI",Timeframe_Momentum,Periode_Momentum,Periode_MA_Momentum, 1,2);

Теперь мои проблемы:

Я получаю следующее сообщение об ошибке: EURUSD,M5: invalid integer number as parameter 2 for Indicator call function

И на моем графике нет Buffer_Ma! Что не так с моим кодом?!

 

Здравствуйте

Как вычислить стандартное отклонение между Open и High предыдущего бара?

Любая помощь была бы очень кстати.

Спасибо

Бено

 

PERIOD_H1 является интергерентным макросом, попробуйте изменить эту строку на

extern int TimeFrame_Momentum = PERIOD_H1;

или просто замените PERIOD_H1 на 60 и попробуйте так.

sunshineh:
Привет,

вот код из моего индикатора:

#property indicator_separate_window

#property indicator_buffers 2

#property indicator_color1 LightSeaGreen

#property indicator_color2 Blue

extern string Timeframe_Momentum = "PERIOD_H1";

extern int Periode_Momentum = 500;

extern int Periode_MA_Momentum = 8;

double Buffer_Mom[];

double Buffer_Ma[];

int init()

{

//---- индикаторы

SetIndexStyle(0,DRAW_LINE);

SetIndexStyle(1,DRAW_LINE);

SetIndexBuffer(0,Buffer_Mom);

SetIndexBuffer(1,Buffer_Ma);

//----

SetIndexEmptyValue(0,0.0);

SetIndexEmptyValue(1,0.0);

SetIndexDrawBegin(0,100);

SetIndexDrawBegin(1,100);

//----

return(0);

}

int deinit()

{

//----

return(0);

}

void start()

{

int counted_bars=IndicatorCounted();

int limit=Считанные_бары;

if(counted_bars>0) limit++;

//----

for(int i=0; i<limit; i++)

{

Buffer_Mom=iMomentum(NULL,Timeframe_Momentum,Periode_Momentum,PRICE_CLOSE,i);

Buffer_Ma=iMAOnArray(Buffer_Mom,0,Periode_MA_Momentum,0,MODE_SMA,i);

}

return(0);

}

Вот код, который я использую в основной программе:

double GMI1 = iCustom(NULL,0, "GMI",Timeframe_Momentum,Periode_Momentum,Periode_MA_Momentum, 0,1);

double GMI2 = iCustom(NULL,0, "GMI",Timeframe_Momentum,Periode_Momentum,Periode_MA_Momentum, 1,2);

Теперь мои проблемы:

Я получаю следующее сообщение об ошибке: EURUSD,M5: invalid integer number as parameter 2 for Indicator call function

И на моем графике нет Buffer_Ma! Что не так с моим кодом?!