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

 

спасибо младен .....

но не работает ....

//+------------------------------------------------------------------+

//| text.mq4 |

//| Copyright 2013, MetaQuotes Software Corp. |

//| http://www.metaquotes.net |

//+------------------------------------------------------------------+

#property copyright "Copyright 2013, MetaQuotes Software Corp."

#property link "http://www.metaquotes.net"

#property indicator_chart_window

extern int timeframe1 = PERIOD_H1;

extern int timeframe2 = PERIOD_D1;

//+------------------------------------------------------------------+

//| Custom indicator initialization function |

//+------------------------------------------------------------------+

int init()

{

return(0);

}

//+------------------------------------------------------------------+

//| Custom indicator deinitialization function |

//+------------------------------------------------------------------+

int deinit()

{

//----

//----

return(0);

}

//+------------------------------------------------------------------+

//| Custom indicator iteration function |

//+------------------------------------------------------------------+

int start()

{

int counted_bars=IndicatorCounted();

//----

string name1="";

string name2="";

color color1;

color color2;

double H1 = iClose(NULL,timeframe1,0);

double D1H = iHigh(NULL,timeframe2,1);

double D1L = iLow(NULL,timeframe2,1);

if(H1>D1H)

{

name1 = "up"; color1 = Blue;

}

if(H1<D1L)

{

name2 = "down"; color2 = Red;

}

ObjectCreate("signal",OBJ_LABEL,0,0,0,0,0);

ObjectSet("signal",OBJPROP_XDISTANCE,3);

ObjectSet("signal",OBJPROP_YDISTANCE,12);

ObjectSetText("signal",name1,12,"Tahoma",color1);

ObjectCreate("signal2",OBJ_LABEL,0,0,0,0,0);

ObjectSet("signal2",OBJPROP_XDISTANCE,59);

ObjectSet("signal2",OBJPROP_YDISTANCE,12);

ObjectSetText("signal2",name2,12,"Tahoma",color2);

//----

return(0);

}

//+------------------------------------------------------------------+

Файлы:
1223123.png  22 kb
 
rizkyd:

спасибо младен .....

но не работает ....

Я думаю, что этот мир кода может вас заинтересовать.

Вместо графического объекта я использовал обычные буферы.

Этот инди сравнивает ВСЕГДА H1 и D1.

Таким образом, он не будет отмечать цены выше таймфрейма H1, но он будет отмечать

на равных или более низких таймфреймах, чем H1. Иногда

это выглядит странно на более низких таймфреймах (как будто помечая бары

слишком рано), но если вы посмотрите ближе к часовому сдвигу, то все будет

нормально.

dhl_e.mq4

Файлы:
dhl_e.mq4  3 kb
gbpusdh1.png  30 kb
 
Kalenzo:
Я думаю, что этот мир кода может вас заинтересовать.

Вместо графического объекта я использовал обычные буферы.

Этот инди сравнивает ВСЕГДА H1 и D1.

Таким образом, он не будет отмечать цены выше таймфрейма H1, но он будет

отмечает цены на равных или более низких таймфреймах, чем H1. Иногда

это выглядит странно на более низких таймфреймах (как будто помечая бары

слишком рано), но если вы посмотрите ближе к часовому сдвигу, то все будет

все в порядке.

dhl_e.mq4

Спасибо kalenzo ... буду пробовать это инди

 
rizkyd:

спасибо младен .....

но не работает ....

//+------------------------------------------------------------------+

//| text.mq4 |

//| Copyright 2013, MetaQuotes Software Corp. |

//| http://www.metaquotes.net |

//+------------------------------------------------------------------+

#property copyright "Copyright 2013, MetaQuotes Software Corp."

#property link "http://www.metaquotes.net"

#property indicator_chart_window

extern int timeframe1 = PERIOD_H1;

extern int timeframe2 = PERIOD_D1;

//+------------------------------------------------------------------+

//| Custom indicator initialization function |

//+------------------------------------------------------------------+

int init()

{

return(0);

}

//+------------------------------------------------------------------+

//| Custom indicator deinitialization function |

//+------------------------------------------------------------------+

int deinit()

{

//----

//----

return(0);

}

//+------------------------------------------------------------------+

//| Custom indicator iteration function |

//+------------------------------------------------------------------+

int start()

{

int counted_bars=IndicatorCounted();

//----

string name1="";

string name2="";

color color1;

color color2;

double H1 = iClose(NULL,timeframe1,0);

double D1H = iHigh(NULL,timeframe2,1);

double D1L = iLow(NULL,timeframe2,1);

if(H1>D1H)

{

name1 = "up"; color1 = Blue;

}

if(H1<D1L)

{

name2 = "down"; color2 = Red;

}

ObjectCreate("signal",OBJ_LABEL,0,0,0,0,0);

ObjectSet("signal",OBJPROP_XDISTANCE,3);

ObjectSet("signal",OBJPROP_YDISTANCE,12);

ObjectSetText("signal",name1,12,"Tahoma",color1);

ObjectCreate("signal2",OBJ_LABEL,0,0,0,0,0);

ObjectSet("signal2",OBJPROP_XDISTANCE,59);

ObjectSet("signal2",OBJPROP_YDISTANCE,12);

ObjectSetText("signal2",name2,12,"Tahoma",color2);

//----

return(0);

}

//+------------------------------------------------------------------+

Вы сравниваете два разных таймфрейма.

Если текущий бар таймфрейма 1 выше или ниже первого закрытого бара таймфрейма 2, то будет выведено сообщение. Если текущий бар таймфрейма 1 не выше и не ниже предыдущих high и low таймфрейма 2, то ничего не будет показано. Из кода, который вы опубликовали, кажется, что это было вашим намерением (в моих тестах он работал нормально).

___________________

PS: он не будет показывать текст на исторических данных (предыдущих данных). Если вы хотите, чтобы он отображался на исторических данных, то все должно быть написано совершенно иначе, как в классическом индикаторе.

 

Советник для автоматического размещения стоплосса и тейкпрофита в зависимости от линии Фибо

Привет

Я хочу создать советника, который может размещать стоп лосс и тейк профит по каждому ордеру!

Советник должен видеть цену продажи или цену покупки, например, для цены покупки:

если цена открытия ордера находится между линиями 38.2 и 50, то советник автоматически размещает стоп лосс на одной линии до фибо=23.6 и тейк профит на одной линии после фибо=61.8.

с помощью этой процедуры советник делает для позиции на продажу, например, если позиция Sell stop@ X price и 38.2 fibo<x<50 fibo! Советник автоматически размещает тейк-профит на 23.6 фибо и стоп-лосс на 61.8 фибо линии!!!

кто-нибудь может помочь мне с кодом этого советника или подсказать мне похожий код этого советника!!!

****note:

линия fibo автоматически рассчитывается по Low и High последнего дня!!!!

Спасибо

 
mladen:
Вы сравниваете два разных таймфрейма.

Если текущий бар таймфрейма 1 выше или ниже первого закрытого бара таймфрейма 2, то будет выведено сообщение. Если текущий бар таймфрейма 1 не выше и не ниже предыдущих high и low таймфрейма 2, то ничего не будет показано. Из кода, который вы опубликовали, кажется, что это было вашим намерением (в моих тестах он работал нормально).

___________________

PS: он не будет показывать текст на исторических данных (предыдущих данных). Если вы хотите, чтобы он показывал на исторических данных, то все должно быть написано совершенно иначе, как в классическом индикаторе.

Спасибо вам mladen ... если у вас есть время, пожалуйста, сделайте так, чтобы он показывал исторические данные ....

PS : этот инди может помочь мне показать тренд вверх или тренд вниз.

 
rizkyd:
спасибо вам mladen ... если у вас есть время, пожалуйста, сделайте его для показа исторических данных .... PS : этот инди может помочь мне показать мне тренд вверх или тренд вниз

rizkyd

Пробовали ли вы использовать для этого мультитаймфреймовый канал дончиана (например, установить таймфрейм канала дончиана на день и период на 1, и вы получите почти то же самое, что вы ищете).

 

Новичку нужен совет/помощь

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

Я новичок на Форекс, и в данный момент интересуюсь индикаторами и советниками. У меня есть некоторое понимание кода mq4, но этого пока недостаточно, чтобы получить то, что я хочу. Поэтому я хотел бы попросить совета/помощи у экспертов или людей, которые знают достаточно о кодировании mq4.

Моя текущая задача - добавить пользовательский индикатор в советник, и, кстати, у меня есть хороший шаблон советника (думаю), я собираюсь поделиться им с вами.

Итак, мои конечные сигналы на покупку/продажу от индикатора следующие: g_ibuf_BUY[1] и g_ibuf_SELL[1]

здесь часть кода, когда индикатор воспроизводит звук, всплывает, отправляет письмо.

void Alert_PlaySound_SendMail() {

string ls_ms = "MS PRO";

if (g_ibuf_BUY[1] == Low[1] - Arrow_Distance * Point && gi_flag_alert != Time[0]) {

if (Alert_PopUp_On) Alert(ls_ms + ": BUY | " + Symbol() + " " + TfToStr(Period()) + " | ", TimeToStr(TimeLocal(), TIME_SECONDS), " | " + DoubleToStr(Ask, 4));

PlaySound(ProcessBuySound(Buy_Sound));

gi_flag_alert = Time[0];

if (Send_Email) {

SendMail(ls_ms + " Alert! ", Symbol() + " " + TfToStr(Period()) + " - BUY signal issued at " + TimeToStr(TimeLocal(), TIME_SECONDS) + " on " + TimeToStr(TimeCurrent(),

TIME_DATE) + " (Last price: " + DoubleToStr(Ask, 4) + ")" + "\r\n \r\n Scalper PRO");

}

}

if (g_ibuf_SELL[1] == High[1] + Arrow_Distance * Point && gi_flag_alert != Time[0]) {

if (Alert_PopUp_On) Alert(ls_ms + ": SELL | " + Symbol() + " " + TfToStr(Period()) + " | ", TimeToStr(TimeLocal(), TIME_SECONDS), " | " + DoubleToStr(Ask, 4));

PlaySound(ProcessSellSound(Sell_Sound));

gi_flag_alert = Time[0];

if (Send_Email) {

SendMail(ls_ms + " Alert! ", Symbol() + " " + TfToStr(Period()) + " - SELL signal issued at " + TimeToStr(TimeLocal(), TIME_SECONDS) + " on " + TimeToStr(TimeCurrent(),

TIME_DATE) + " (Last price: " + DoubleToStr(Ask, 4) + ")" + "\r\n \r\n Scalper PRO");

}

}

}

Следующим шагом будет добавление этих сигналов в шаблон советника? Как... нужно ли мне использовать функцию iCustom или что-то еще, что нужно добавить в индикатор, прежде чем я смогу его использовать? Любая помощь будет оценена по достоинству. Спасибо.

Файлы:
 
otnepx:
Здравствуйте,

Я новичок на Форекс, и в данный момент интересуюсь индикаторами и советниками. Я немного разбираюсь в коде mq4, но этого пока недостаточно, чтобы получить то, что я хочу. Поэтому я хотел бы попросить совета/помощи у экспертов или людей, которые достаточно хорошо разбираются в кодировании mq4.

Моя текущая задача - добавить пользовательский индикатор в советник, и, кстати, у меня есть хороший шаблон советника (думаю), я собираюсь поделиться им с вами Итак, мои конечные сигналы покупки/продажи от индикатора следующие: g_ibuf_BUY[1] и g_ibuf_SELL[1].

здесь часть кода, когда индикатор воспроизводит звук, всплывает, отправляет письмо.

void Alert_PlaySound_SendMail() {

string ls_ms = "MS PRO";

if (g_ibuf_BUY[1] == Low[1] - Arrow_Distance * Point && gi_flag_alert != Time[0]) {

if (Alert_PopUp_On) Alert(ls_ms + ": BUY | " + Symbol() + " " + TfToStr(Period()) + " | ", TimeToStr(TimeLocal(), TIME_SECONDS), " | " + DoubleToStr(Ask, 4));

PlaySound(ProcessBuySound(Buy_Sound));

gi_flag_alert = Time[0];

if (Send_Email) {

SendMail(ls_ms + " Alert! ", Symbol() + " " + TfToStr(Period()) + " - BUY signal issued at " + TimeToStr(TimeLocal(), TIME_SECONDS) + " on " + TimeToStr(TimeCurrent(),

TIME_DATE) + " (Last price: " + DoubleToStr(Ask, 4) + ")" + "\r\n \r\n Scalper PRO");

}

}

if (g_ibuf_SELL[1] == High[1] + Arrow_Distance * Point && gi_flag_alert != Time[0]) {

if (Alert_PopUp_On) Alert(ls_ms + ": SELL | " + Symbol() + " " + TfToStr(Period()) + " | ", TimeToStr(TimeLocal(), TIME_SECONDS), " | " + DoubleToStr(Ask, 4));

PlaySound(ProcessSellSound(Sell_Sound));

gi_flag_alert = Time[0];

if (Send_Email) {

SendMail(ls_ms + " Alert! ", Symbol() + " " + TfToStr(Period()) + " - SELL signal issued at " + TimeToStr(TimeLocal(), TIME_SECONDS) + " on " + TimeToStr(TimeCurrent(),

TIME_DATE) + " (Last price: " + DoubleToStr(Ask, 4) + ")" + "\r\n \r\n Scalper PRO");

}

}

}
Следующим шагом будет добавление этих сигналов в шаблон советника? Как... нужно ли использовать функцию iCustom или что-то еще, что нужно добавить в индикатор, прежде чем я смогу его использовать? Любая помощь будет оценена по достоинству. Спасибо.

Вы не можете импортировать алерты в другой мир кода (индикатор, советник).

Самый чистый способ сделать то, что вы хотите, это использовать iCustom().

 

Уважаемый Mladen/MrTools,

Прошу Вас сделать индикатор, основанный на приведенной ниже логике, для 1-минутного графика... Он также должен предупреждать о покупке/продаже стрелками на графике ...

логика для входа в покупку:

минутная EMA(90) пересекает минутную EMA(390) (то есть предыдущая минутная ema 90 меньше ema 390) и ema(90) должна быть больше ema(150).

логика для выхода на покупку:

минутная EMA(90) > EMA(390) и ema(90) < ema(150).

логика для входа на продажу :

минутная EMA(90) снижает минутную EMA(390) (то есть предыдущая минутная ema 90 больше ema 390) и ema(90) должна быть меньше ema(150).

логика для выхода на продажу:

минутная EMA(90) ema(150).

*******************************************************

Код гнезда для той же логики также представлен ниже:

выражение сигнала на покупку

EMA(CLOSE,90) > EMA(CLOSE,390) и REF(EMA(CLOSE,90),1) EMA(CLOSE,150)

выражение выхода на покупку

EMA(CLOSE,90) > EMA(CLOSE,390) и EMA(CLOSE,90) < EMA(CLOSE,150)

выражение сигнала на продажу

EMA(CLOSE,90) REF(EMA(CLOSE,390),1) и EMA(CLOSE,90) < EMA(CLOSE,150)

выражение выхода на продажу

EMA(CLOSE,90) EMA(CLOSE,150)

Спасибо

Большое спасибо