![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Спасибо, mladen, хотя это не совсем то, что я ищу... двойной зигзаг не перерисовывается (оба зигзага выровнены), потому что он основан на фракталах... эти точки - те, из которых я хотел бы построить треугольник...
пытался немного изменить код, чтобы получить 2 последних верхних сигнала и 2 последних нижних сигнала, но застрял... позвольте мне показать вам, что я пытаюсь сделать:
эта часть рисует сигнал, когда оба зигзага выровнены:
// Do both zigzag agree on the signal?
if(SlowSignal == FastSignal && SlowSignal != EMPTY_VALUE)
{
if(SlowSignal == OP_BUY)
{
ExtMapBuffer3 = fr_support - nShift*Point;
} else {
ExtMapBuffer3 = fr_resistance + nShift*Point;
}
[/CODE]
after this i want to get the most recent upper and the previously upper and most recent lower and the previously lower like this
[CODE]
HighOldest = ExtMapBuffer3[ArrayMaximum(ExtMapBuffer3,BarsBack,i+2)];
LowOldest = ExtMapBuffer3[ArrayMinimum(ExtMapBuffer3,BarsBack,i+2)];
так что, по идее, я должен получить последний сигнал из ExtMapBuffer3 и самый старый из HighOldest.
тогда у меня будет 2 точки для построения трендовых линий...
но по какой-то причине где-то в буфере должно быть EMPTY_VALUE, потому что когда я делаю ArrayMaximum, он возвращает EMPY_VALUE как максимальное значение в массиве.
надеюсь, понятно...Неважно, я решил эту проблему!![](https://c.mql5.com/forextsd/smiles/teeth_smile.png)
TFI У вас есть один лишний параметр, которого не должно быть: "" после названия индикатора (после "Efficiency_v1.1"). Удалите часть "" (пустую строку) после имени индикатора.
Здравствуйте, Младен,
большое спасибо за Ваше предложение. Мне интересно, возможно, я неправильно уловил сигнал фильтра, потому что советник больше не открывает сделку, хотя ограничение для открытия длинной / короткой сделки выполнено (нулевая линия пересечена). Не могли бы вы проанализировать мой код с учетом ваших знаний?
Большое спасибо (еще раз) :-)
if(openedOrders<=0)
{
double trend_up = iCustom(Symbol(),0,"Hull moving average 2 strict nmc","", HMA_Period, HMA_Price, HMA_Speed,0,3,1);
double trend_down = iCustom(Symbol(),0,"Hull moving average 2 strict nmc","", HMA_Period, HMA_Price, HMA_Speed,0,3,2);
double trendf_up = iCustom(Symbol(),0,"Efficiency_v1.1",Price,Length,Smooth,Signal,MA_Mode,NoiseMode,0,1,1); // Signal Buffer 1
double trendf_down = iCustom(Symbol(),0,"Efficiency_v1.1",Price,Length,Smooth,Signal,MA_Mode,NoiseMode,0,1,2);
int clongs = 0;
int cshorts = 0;
for(i=OrdersTotal()-1;i>=0; i--)
{
if(OrderType()==OP_BUY) clongs++; // Check # of long trades.
if(OrderType()==OP_SELL) cshorts++; // Check # of short trades
}
if(trend_up!=trend_down)
{
if((clongs 0 && trendf_down<0)) OpenBuy(); // Indicator and filter = longif((cshorts < maxshorttrades && trend_down==-1) && (trendf_up0)) OpenSell(); // Indicator and filter = short
}
}
С наилучшими пожеланиями,
TFI
Здравствуйте все, я использую (вручную) индикатор AbsoluteStrength.
Не мог бы кто-нибудь добавить Alarm, когда синяя линия пересекается с пунктирной синей линией или красная линия пересекается с пунктирной красной линией (как показано на прилагаемом скриншоте).
allabsolutestrength_v2.3_600.mq4
Большое спасибо
Петр Яхода
Здравствуйте про-кодеры,
Я хотел бы узнать, может ли расчет моего фильтра силы тренда ADX быть правильным?
bool ADX_filter()
{
bool result=false;
double ADXfactor= 1;
double ADXminus = iADX(Symbol(),0,14,PRICE_OPEN,MODE_MINUSDI,0);
double ADXplus = iADX(Symbol(),0,14,PRICE_OPEN,MODE_PLUSDI,0);
double ADXmain = iADX(Symbol(),0,14,PRICE_OPEN,MODE_MAIN,0);
if(ADXplus>ADXfactor*ADXminus && ADXmain>=20 && ADXmain<=40) result=true; // buy
if(ADXminus=20 && ADXmain<=40) result=false; // sell
return(result);
}
[/CODE]
It may be called like this:
[CODE]
if(clongs<maxlongtrades && trend_up==1 && (ADX_filter()==true)) OpenBuy();
Спасибо.
Здравствуйте про-кодеры,
Интересно, может ли расчет моего фильтра силы тренда ADX быть правильным?
bool ADX_filter()
{
bool result=false;
double ADXfactor= 1;
double ADXminus = iADX(Symbol(),0,14,PRICE_OPEN,MODE_MINUSDI,0);
double ADXplus = iADX(Symbol(),0,14,PRICE_OPEN,MODE_PLUSDI,0);
double ADXmain = iADX(Symbol(),0,14,PRICE_OPEN,MODE_MAIN,0);
if(ADXplus>ADXfactor*ADXminus && ADXmain>=20 && ADXmain<=40) result=true; // buy
if(ADXminus=20 && ADXmain<=40) result=false; // sell
return(result);
}
[/CODE]
It may be called like this:
[CODE]
if(clongs<maxlongtrades && trend_up==1 && (ADX_filter()==true)) OpenBuy();
tfi_markets
Что касается функции, то да, она может быть вызвана таким образом
tfi_markets Что касается функции, да, она может быть вызвана следующим образом
Здравствуйте, Младен,
спасибо за ваш комментарий. Я бы хотел, чтобы мой код был в основном простым и без ошибок, тем более что отладка на MQL4 / MT4 может быть сложной задачей.
Предположим, я хотел бы торговать первичными сильными трендами, где ADX больше 20, я могу также написать код немного проще, например:
bool ADX_filter()
{
bool result=false;
if(iADX(NULL,0,14,PRICE_HIGH,MODE_MAIN,0)>20) result = true; // buy
if (iADX(NULL,0,14,PRICE_HIGH,MODE_MAIN,0)<20) result = false; // sell
return (result);
}
if(clongs1 && ADX_filter()==true)) OpenBuy();
if(cshorts<maxshorttrades && trendc==-1 &&(CCIFilter<-1 && ADX_filter()==false)) OpenSell()
Правильно?
Заранее спасибо и хороших выходных.
Здравствуйте.
В последнее время я использую hull moving average и подумал, что я должен также попробовать HMA slope в окне индикатора, я нашел его, но он не работает должным образом в моей платформе mt4.
hull_moving_average_2.01_amp_sr_lines_separate.mq4
Спасибо
Привет.
В последнее время я использую скользящее среднее и подумал, что мне также следует попробовать HMA slope в окне индикатора, я нашел его, но он не работает должным образом в моей платформе mt4.
hull_moving_average_2.01_amp_sr_lines_separate.mq4
СпасибоПохоже, вы уже решили половину проблемы!
Привет.
В последнее время я использую скользящую среднюю и подумал, что мне также нужно попробовать HMA slope в окне индикатора, я нашел его, но он не работает должным образом в моей платформе mt4.
hull_moving_average_2.01_amp_sr_lines_separate.mq4
СпасибоNWFstudent
Измените 2-й цвет с черного на какой-нибудь другой (и установите 3-й цвет таким же, как 2-й) Сейчас вы этого не видите просто потому, что фон и 2-й цвет одинаковые - черные.
NWFstudent Измените 2-й цвет с черного на какой-нибудь другой (и установите 3-й цвет таким же, как 2-й) Сейчас вы не видите этого просто потому, что фон и 2-й цвет одинаковые - черные.
Вау, теперь я чувствую себя полным тупицей.![](https://c.mql5.com/forextsd/smiles/tongue.png)
Я смотрел на ввод, и цвет вверх был синим, а вниз - красным, но, конечно, ты был прав, как всегда.
Извините за то, что был дебилом.![](https://c.mql5.com/forextsd/smiles/tongue.png)