Функция ICustom - страница 6

 

Ребята,

Мне нужна помощь по коду OzFX из DGC...

/*---------------------*/

/* OZFX ОБЫЧНЫЙ КОД */

/*---------------------*/

OzFX_Regular[k] = 0;

if (iAC(Symbol(), 0, k) > 0 &&

iAC(Symbol(), 0, k) > iAC(Symbol(), 0, k + 1) &&

iStochastic(Symbol(), 0, 5, 3, 3, MODE_SMA, 0, MODE_MAIN, k) > 50 )

{

if (iLastRegular != 1) OzFX_Regular[k] = 1;

iLastRegular = 1;

}

если iLastRegular = 1, то советнику будет выдан сигнал BUY ...

Здесь я хочу добавить еще одно условие для индикатора Lagurerre-ACS1 с настройками 0.6,1000,2, чтобы срабатывала покупка после того, как индикатор >0.15.

Это что-то вроде того, что описано ниже...?

/*---------------------*/

/* РЕГУЛЯРНЫЙ КОД OZFX */

/*---------------------*/

OzFX_Regular[k] = 0;

if (iAC(Symbol(), 0, k) > 0 &&

iAC(Symbol(), 0, k) > iAC(Symbol(), 0, k + 1) &&

iStochastic(Symbol(), 0, 5, 3, 3, MODE_SMA, 0, MODE_MAIN, k) > 50 &&

iCustom(Symbol(), 0, "Laguerre-ACS1", 0.6, 1000, 2, 0, k)> 0.15)

{

if (iLastRegular != 1) OzFX_Regular[k] = 1;

iLastRegular = 1;

}

спасибо заранее

sonic

 
sonicdeejay:
Ребята,

Мне нужна помощь по коду OzFX от DGC...

если iLastRegular равен 1, то советнику будет выдана команда BUY ...

Здесь я хочу добавить еще одно условие для индикатора Lagurerre-ACS1 с настройками 0.6,1000,2, срабатывание покупки после того, как индикатор >0.15...

Есть ли что-то подобное ниже...?

заранее спасибо

sonic

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

Просто совет. Когда вы пишете несколько условий, лучше делать их отдельно, потому что в вашем случае, даже если только первое условие действительно, все остальные вычисляются каждый тик, и это утяжеляет вычисления советника. Вот как можно было бы написать:

if(iAC(Symbol(), 0, k) > 0) {

if(iAC(Symbol(), 0, k) > iAC(Symbol(), 0, k + 1)) {

if(iStochastic(Symbol(), 0, 5, 3, 3, MODE_SMA, 0, MODE_MAIN, k) > 50) {

if(iCustom(Symbol(), 0, "Laguerre-ACS1", 0.6, 1000, 2, 0, k)> 0.15) {

затем ваш код здесь

}}}}

Лучше всего было бы отсортировать условия так, чтобы в начале условия стояло то, которое подает сигнал последним. Таким образом "цикл" условий будет просчитываться полностью не каждый тик, а когда почти все из них будут действительны.

Надеюсь, это поможет.

FerruFx

 
FerruFx:
Кажется, все в порядке, если учесть, что вызываемый буфер - 1-й (с именем 0). Полагаю, вы знаете, какой из них вам нужен.

Просто совет. Когда вы пишете несколько условий, лучше сделать их отдельно, потому что в вашем случае, даже если только первое условие действительно, все остальные вычисляются каждый тик и затем делают вычисления советника тяжелыми. Вот как можно было бы написать:

if(iAC(Symbol(), 0, k) > 0) {

if(iAC(Symbol(), 0, k) > iAC(Symbol(), 0, k + 1)) {

if(iStochastic(Symbol(), 0, 5, 3, 3, MODE_SMA, 0, MODE_MAIN, k) > 50) {

if(iCustom(Symbol(), 0, "Laguerre-ACS1", 0.6, 1000, 2, 0, k)> 0.15) {

затем ваш код здесь

}}}}

Лучше всего было бы отсортировать условия так, чтобы в начале условия стояло то, которое подает сигнал последним. Таким образом "цикл" условий будет просчитываться полностью не каждый тик, а когда почти все из них будут действительны.

Надеюсь, это поможет.

FerruFx

Не хотите мне помочь???

Sonic System!!! - Страница 16

sonic

 

Небольшая помощь...

Привет, я пытался запрограммировать ea, и я следовал вашему курсу (очень интересно!).

Я достаточно хорошо знаю, как программировать на java и немного c++.

Я пытался запрограммировать ea с индикаторами brain trend, идея заключается в следующем.

когда индикаторы brainTrend2stop и braintrend1stop DOT присутствуют покупаем (и наоборот).

но если я вызываю функцию icustom следующим образом

BuyValueCurrent = iCustom(NULL,TimeFrame,IndicatorName1,NumBars,0,1);

я получаю только значение индикатора на текущем баре.

Есть ли способ сделать его булевым? Я бы хотел написать функцию типа

buy=true

BuyCondition = (IndicatorName1=true && IndicatorName2=true);

кто-нибудь может помочь, пожалуйста, пожалуйста, пожалуйста???

 
payback:
Привет, я пытался запрограммировать ea, и я следовал вашему курсу (очень интересно!).

Я достаточно хорошо знаю, как программировать на java и немного c++

Я пытался запрограммировать ea с индикаторами brain trend, идея заключается в следующем

когда индикаторы brainTrend2stop и braintrend1stop DOT присутствуют покупаем (и наоборот).

но если я вызываю функцию icustom следующим образом

BuyValueCurrent = iCustom(NULL,TimeFrame,IndicatorName1,NumBars,0,1);

я получаю только значение индикатора на текущем баре.

Есть ли способ сделать его булевым? Я бы хотел написать функцию типа

buy=true

BuyCondition = (IndicatorName1=true && IndicatorName2=true);

Кто-нибудь может помочь, пожалуйста, пожалуйста, пожалуйста???

Не нужно постить один и тот же вопрос везде!

 

извините! но все равно спасибо!

 

Помогите пожалуйста... iStochastics и iCustom возвращают неверные значения

Привет всем,

Я столкнулся с некоторыми проблемами при использовании функции iStochastic, а также функции iCustom и надеюсь, что вы сможете мне помочь. При использовании обеих функций значения, которые я получаю, не совпадают с теми, которые я вижу на графике ни для стохастического индикатора, ни для моего собственного индикатора, который я вызываю с помощью функции iCustom.

В чем может быть причина и как я могу решить эту проблему? Буду признателен за помощь и заранее благодарю.

 
linalm:

Привет всем,

Я столкнулся с некоторыми проблемами при использовании функции iStochastic, а также функции iCustom и надеюсь, что вы сможете мне помочь. При использовании обеих функций значения, которые я получаю, не совпадают с теми, которые я вижу на графике ни для стохастического индикатора, ни для моего собственного индикатора, который я вызываю с помощью функции iCustom.

В чем может быть причина и как я могу решить эту проблему? Я ценю вашу помощь и заранее благодарю.

У меня были некоторые проблемы с тем, что iCustom возвращает разные значения при использовании функции NormalizeDouble().

 
double Buy1_1 = iCustom(NULL, 0, "i_Trend", 0, 0, 0, 20, 2, 13, 300, 0, 0);

double Buy1_2 = iCustom(NULL, 0, "i_Trend", 0, 0, 0, 20, 2, 13, 300, 1, 0);

Могу ли я узнать, в чем разница между этими 0 и 1...

Я проверил здесь, но, кажется, не понимаю...

iCustom - Документация по MQL4

Спасибо заранее

sonic

 
sonicdeejay:
Могу ли я узнать, в чем разница между этими 0 и 1...

Я проверил здесь, но, похоже, не понимаю...

iCustom - Документация по MQL4

Спасибо заранее

sonic

Это буферы # из индикатора iTrend, который вы вызываете.

FerruFx