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

 
AtApi:
Спасибо, 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 как максимальное значение в массиве.

надеюсь, понятно...

Неважно, я решил эту проблему!

 
mladen:
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 = long

if((cshorts < maxshorttrades && trend_down==-1) && (trendf_up0)) OpenSell(); // Indicator and filter = short

}

}

С наилучшими пожеланиями,

TFI

Файлы:
betrade.jpg  76 kb
 

Здравствуйте все, я использую (вручную) индикатор 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();

Спасибо.

 
tfi_markets:
Здравствуйте про-кодеры,

Интересно, может ли расчет моего фильтра силы тренда 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

Что касается функции, то да, она может быть вызвана таким образом

 
mladen:
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

Спасибо

 
NWFstudent:
Привет.

В последнее время я использую скользящее среднее и подумал, что мне также следует попробовать HMA slope в окне индикатора, я нашел его, но он не работает должным образом в моей платформе mt4.

hull_moving_average_2.01_amp_sr_lines_separate.mq4

Спасибо

Похоже, вы уже решили половину проблемы!

 
NWFstudent:
Привет.

В последнее время я использую скользящую среднюю и подумал, что мне также нужно попробовать HMA slope в окне индикатора, я нашел его, но он не работает должным образом в моей платформе mt4.

hull_moving_average_2.01_amp_sr_lines_separate.mq4

Спасибо

NWFstudent

Измените 2-й цвет с черного на какой-нибудь другой (и установите 3-й цвет таким же, как 2-й) Сейчас вы этого не видите просто потому, что фон и 2-й цвет одинаковые - черные.

 
mladen:
NWFstudent Измените 2-й цвет с черного на какой-нибудь другой (и установите 3-й цвет таким же, как 2-й) Сейчас вы не видите этого просто потому, что фон и 2-й цвет одинаковые - черные.

Вау, теперь я чувствую себя полным тупицей.

Я смотрел на ввод, и цвет вверх был синим, а вниз - красным, но, конечно, ты был прав, как всегда.

Извините за то, что был дебилом.