![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
здравствуйте, мистер Младен
пожалуйста, сделайте MTF к нему
с уважением
Вот версия с несколькими таймфреймами
Привет, Младен,
вот образец
Младен,
шаг трейлинга работает одинаково для операций покупки илипродажи...
это перемещение "стоплосса" с помощью шага трейлинга.
например: (пример покупки)
EA Input:
=========
TakeProfit =22000 (22 points)
Trailing_Distance=4000 (4 points)
Trailing_Step =2000 (2 points)
StopLoss =8000 (8 points)
====operation entry
buy at price 3440.00
stoploss =3432.00 (entrance -8 points)
takeprofit =3462.00 (entrance +22 points)
-------
price reached =3444.00 (=4 points)
trailing distance reached (4000=4 points)
then move stoploss using 'step' (2000= 2 points)
new stoploss now is =3434.00 (=+2 points from step)
-------
price reached =3448.00 (=+4 points)
trailing distance reached (4000=4 points)
then move stoploss using 'step' (2000= 2 points)
new stoploss now is =3436.00 (=+2 points from step)
-------
price grown up to =3452.00 (=+4 points)
trailing distance reached (4000=4 points)
then move stoploss using 'step' (2000= 2 points)
new stoploss now is =3438.00 (=+2 points from step)
-------
when is a "buy" operation , step (increase the stoploss price)
when is a "sell" operation, step (decrease the stoploss price)
здравствуйте, мистер младен:
не могли бы вы сделать простую гистограмму этого полезного индикатора.
с уважением
Вот версия с несколькими временными рамками
Уважаемый Младен,
Мне нужна ваша помощь, чтобы проверить код советника для использования SmStrengthRange 09_v2.4 индикатор
после пары кросс ex EURUSD
(EUR кросс к USD верхней) то первый Divergence зеленая точка появляется = BUY
(EUR кросс к USD нижней) то первый Divergence красная точка появляется = SELL
Я только что попробовал себя, но не может работать
Пожалуйста, проверьте этот код и исправить
// Вызов индикатора
double USD=iCustom(NULL,0, "smStrengthRange09_v2.4",3,shift);
double USD1=iCustom(NULL,0, "smStrengthRange09_v2.4",3,shift+1);
double EUR=iCustom(NULL,0, "smStrengthRange09_v2.4",4,shift);
double EUR1=iCustom(NULL,0, "smStrengthRange09_v2.4",4,shift+1);
double GBP=iCustom(NULL,0, "smStrengthRange09_v2.4",5,shift);
double GBP1=iCustom(NULL,0, "smStrengthRange09_v2.4",5,shift+1);
double CHF=iCustom(NULL,0, "smStrengthRange09_v2.4",6,shift);
double CHF1=iCustom(NULL,0, "smStrengthRange09_v2.4",6,shift+1);
double JPY=iCustom(NULL,0, "smStrengthRange09_v2.4",7,shift);
double JPY1=iCustom(NULL,0, "smStrengthRange09_v2.4",7,shift+1);
double AUD=iCustom(NULL,0, "smStrengthRange09_v2.4",8,shift);
double AUD1=iCustom(NULL,0, "smStrengthRange09_v2.4",8,shift+1);
double CAD=iCustom(NULL,0, "smStrengthRange09_v2.4",9,shift);
double CAD1=iCustom(NULL,0, "smStrengthRange09_v2.4",9,shift+1);
double NZD=iCustom(NULL,0, "smStrengthRange09_v2.4",10,shift);
double NZD1=iCustom(NULL,0, "smStrengthRange09_v2.4",10,shift+1);
double green=iCustom(NULL,0, "smStrengthRange09_v2.4",11,shift);
double greena=iCustom(NULL,0, "smStrengthRange09_v2.4",11,shift+1);
double red=iCustom(NULL,0, "smStrengthRange09_v2.4",12,shift);
double reda=iCustom(NULL,0, "smStrengthRange09_v2.4",12,shift+1);
//Вход сигнала
if ((green!=EMPTY_VALUE && !(greena!=EMPTY_VALUE && EUR>USD)) signal1=1;
if((red!=EMPTY_VALUE && !(reda!=EMPTY_VALUE && EUR<USD)) signal2=2;
Прошу помощи, чтобы увидеть этот код и исправить.
Спасибо и пожелания
Уважаемый Младен,
Мне нужна ваша помощь, чтобы проверить код советника для использования SmStrengthRange 09_v2.4 индикатор
после пары кросс ex EURUSD
(EUR кросс к USD верхней) то первый Divergence зеленая точка появляется = BUY
(EUR кросс к USD нижней) то первый Divergence красная точка появляется = SELL
Я только что попробовал себя, но не может работать
Пожалуйста, проверьте этот код и исправить
// Вызов индикатора
double USD=iCustom(NULL,0, "smStrengthRange09_v2.4",3,shift);
double USD1=iCustom(NULL,0, "smStrengthRange09_v2.4",3,shift+1);
double EUR=iCustom(NULL,0, "smStrengthRange09_v2.4",4,shift);
double EUR1=iCustom(NULL,0, "smStrengthRange09_v2.4",4,shift+1);
double GBP=iCustom(NULL,0, "smStrengthRange09_v2.4",5,shift);
double GBP1=iCustom(NULL,0, "smStrengthRange09_v2.4",5,shift+1);
double CHF=iCustom(NULL,0, "smStrengthRange09_v2.4",6,shift);
double CHF1=iCustom(NULL,0, "smStrengthRange09_v2.4",6,shift+1);
double JPY=iCustom(NULL,0, "smStrengthRange09_v2.4",7,shift);
double JPY1=iCustom(NULL,0, "smStrengthRange09_v2.4",7,shift+1);
double AUD=iCustom(NULL,0, "smStrengthRange09_v2.4",8,shift);
double AUD1=iCustom(NULL,0, "smStrengthRange09_v2.4",8,shift+1);
double CAD=iCustom(NULL,0, "smStrengthRange09_v2.4",9,shift);
double CAD1=iCustom(NULL,0, "smStrengthRange09_v2.4",9,shift+1);
double NZD=iCustom(NULL,0, "smStrengthRange09_v2.4",10,shift);
double NZD1=iCustom(NULL,0, "smStrengthRange09_v2.4",10,shift+1);
double green=iCustom(NULL,0, "smStrengthRange09_v2.4",11,shift);
double greena=iCustom(NULL,0, "smStrengthRange09_v2.4",11,shift+1);
double red=iCustom(NULL,0, "smStrengthRange09_v2.4",12,shift);
double reda=iCustom(NULL,0, "smStrengthRange09_v2.4",12,shift+1);
//Вход сигнала
if ((green!=EMPTY_VALUE && !(greena!=EMPTY_VALUE && EUR>USD)) signal1=1;
if((red!=EMPTY_VALUE && !(reda!=EMPTY_VALUE && EUR<USD)) signal2=2;
Прошу помощи, чтобы увидеть этот код и исправить.
Спасибо и пожелания
Вы не проверяете кроссы. Вы просто проверяете, больше или меньше ли одно значение другого.
Для проверки пересечений вы должны проверить по крайней мере 2 значения из 2 буферов (4 значения для проверки)
Привет про-кодеры,
Я хотел бы реализовать bool RSI фильтр, который может быть либо включен, либо выключен.
Можно / нужно ли оптимизировать эту процедуру?
if(RSI_on=true)
{
if(trendNow!=trendPrev)
{
if(trendNow>0 && (NLD1>NLD2) && RSIfilter>51)
{
OpenBuy_ =true;
CloseSell_=true;
}
else
if(trendPrev>0 && (NLD1<NLD2) && RSIfilter<49)
{
OpenSell_=true;
CloseBuy_=true;
}
}
}
else
if(trendNow!=trendPrev)
{
if(trendNow>0 && (NLD1>NLD2))
{
OpenBuy_ =true;
CloseSell_=true;
}
else
if(trendPrev>0 && (NLD1<NLD2))
{
OpenSell_=true;
CloseBuy_=true;
}
}
Привет про-кодеры,
Я хотел бы реализовать bool RSI фильтр, который может быть либо включен, либо выключен.
Можно / нужно ли оптимизировать эту процедуру?
if(RSI_on=true)
{
if(trendNow!=trendPrev)
{
if(trendNow>0 && (NLD1>NLD2) && RSIfilter>51)
{
OpenBuy_ =true;
CloseSell_=true;
}
else
if(trendPrev>0 && (NLD1<NLD2) && RSIfilter<49)
{
OpenSell_=true;
CloseBuy_=true;
}
}
}
else
if(trendNow!=trendPrev)
{
if(trendNow>0 && (NLD1>NLD2))
{
OpenBuy_ =true;
CloseSell_=true;
}
else
if(trendPrev>0 && (NLD1<NLD2))
{
OpenSell_=true;
CloseBuy_=true;
}
}
Попробуйте вот так (это должен быть весь код, заменяющий верхний код):
if(trendNow>0 && (NLD1>NLD2) && (!RSI_on || (RSI_on && RSIfilter>51)))
{
OpenBuy_ =true;
CloseSell_=true;
}
else
if(trendPrev>0 && (NLD1<NLD2) && (!RSI_on || (RSI_on && RSIfilter<49)))
{
OpenSell_=true;
CloseBuy_=true;
}