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

 

Хорошо, спасибо, мне придется прочитать и перечитать это несколько раз, чтобы понять это и да, я хочу, чтобы он сигнализировал только тогда, когда ОБЕ линии становятся синими или красными одновременно. Тогда каким должен быть код "разместить сделку на покупку"?

 
matrixebiz:
Хорошо, спасибо, мне придется прочитать и перечитать это несколько раз, чтобы понять это и да, я хочу, чтобы он сигнализировал только тогда, когда ОБЕ линии становятся синими или красными одновременно. Каким тогда будет код "разместить сделку на покупку"?

Термином, обозначающим этот индикатор, будет просто упоминание булевой переменной, например, "both_go_blue" как термин в условии покупки, и "both_go_red" как термин в условии продажи. Для иллюстрации это будет выглядеть следующим образом:

if ( .... && both_go_blue && ... ) ....

Обратите внимание, что я сделал предположения относительно индикатора, а именно, что каждый буфер индикации имеет либо "пустое значение", либо постоянное значение, которое одинаково для синей и красной индикации на одной линии. Если это предположение неверно, то фактический код должен быть немного более запутанным, но мы примем этот автобус, когда он придет.

 

Хорошо, спасибо за четкие объяснения. Теперь у меня должно получиться И последнее, как бы я закодировал советника, если бы я не только хотел сравнивать текущий и предыдущий бары, но и хотел бы сказать "если сигналы согласуются в пределах последних 2-4 баров, тогда все равно создается условие ПОКУПКИ" с разницей не более 4 баров, когда индикаторы согласуются друг с другом? Это изменит всю логику кодирования советника, правильно?

EDIT: также, что я сделал, чтобы создать условие, при котором советник срабатывал на покупку, когда один индикатор подал сигнал, а другой не подал, но по крайней мере был согласен и шел в том же направлении, сделка на покупку все равно срабатывала?

 
matrixebiz:
Хорошо, спасибо за четкие объяснения. Теперь у меня должно получиться .

И последнее, как бы я закодировал советника, если бы я не только хотел сравнивать текущий и предыдущий бары, но и хотел бы сказать "если сигналы согласуются в пределах последних 2-4 баров, тогда все равно создается условие BUY" не более чем с разницей в 4 бара, когда индикаторы согласуются друг с другом? Это изменит всю логику кодирования советника, верно?

Верно; вы можете сделать это двумя способами: 1) с помощью советника с состоянием, который сохраняет прошлые показания для сравнения с настоящими, или 2) считывать показания индикатора дальше в его прошлое. Я думаю, что второй подход лучше, поскольку в этом случае получается более надежный советник, который можно без проблем перезапустить. А с точки зрения производительности эти подходы примерно одинаковы.

Для (2) вы или я использовали бы фрагмент кода для сканирования переходов в обратном направлении, например, как (в принципе):

bool top_went_blue_in_5 = false;

for ( int i = 1; i < 6; i++ ) {

if ( iCustom( ...., 0, i ) != EMPTY_VALUE ) continue; // is blue

if ( iCustom( ...., 1, i ) != EMPTY_VALUE ) {

top_went_blue_in_5 = ( i > 1 ); // Red at i, and blue after

break;

}

}[/PHP]

EDIT: also, what did I do to create a condition where the EA triggered a BUY when One indicator signaled and the other indicator didn't signal but was at least in agreement and going in the same direction, BUY trade was still triggered ??

You are getting fancy ...

It involves a) to represent the "right direction" concept, and then have a disjunctive condition of the form:

if ( ( buy_signal_A && buy_direction_B ) || ( buy_signal_B && buy_direction_A ) ) ...

or, you might prefer a nested condition structure:

[PHP]if ( buy_signal_A || buy_signal_B ) {

if ( buy_direction_A && buy_direction_B ) {

...

}

}
 

Отправляю вам электронное письмо

 

Matrix, не могли бы вы помочь мне, где я могу получить MTF CI indi? Вы знаете, где я могу найти Stealth indies? Спасибо.

matrixebiz:
Хорошо, я понял Shift, придется больше читать о режиме.

Вы кодируете? У меня есть этот индикатор, который я вызываю из моего советника, но не уверен, как правильно его настроить. Смотрите картинку.

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

Пробовал несколько разных кодов, как тот, который я использовал с индикатором VQ;

double Entry1 = iCustom(NULL, 0, "VQ", 24, 30....., 0, 1);

double Entry2 = iCustom(NULL, 0, "VQ", 24, 30....., 0, 2);

double Up2 = iCustom(NULL, 0, "VQ", 24, 30....., 1, 2);

double Down2 = iCustom(NULL, 0, "VQ", 24, 30....., 2, 2);

Просто не правильно торгую.

Спасибо
 

Matrixebiz и Ральф,

Если вы хотите использовать VQ для советника, он имеет запаздывание в 2 бара. Я настоятельно рекомендую вам посмотреть мою работу, размещенную здесь:

https://www.mql5.com/en/forum/general

см. пост 319.

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

Один здесь: https://www.mql5.com/en/forum/173219

Пост 702.

Другой здесь:

https://www.mql5.com/en/forum/173060 Post 986

Спасибо,

Биг Бе

 

Пользовательские индикаторы

урок о том, как сделать сексуально привлекательные индикаторы

Язык MQL4 для новичков. Пользовательские индикаторы (часть 2) - Статьи по MQL4

 

Как получить несколько значений из пользовательских индикаторов?

Привет, друзья,

Мне нужно получить значения из пользовательского индикатора с помощью функции iCustom, но кажется, что iCustom может получить только одно возвращаемое значение.

Если пользовательский индикатор возвращает более одного значения, как я могу получить определенное значение, которое мне нужно?

Например, индикатор pivot будет возвращать 2 или более значений Support, Resistance ... как я могу получить каждое значение в индикаторе?

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

 

Обычно считывается количество буферов в индикаторе. Если буферов два, то с помощью iCustom адресуйте каждый буфер.

Пример:

double Buff0=iCustom(NULL, 0, "Pivot",13,0,0);

double Buff1=iCustom(NULL, 0, "Pivot",13,1,0);

double Buff2=iCustom(NULL, 0, "Pivot",13,2,0);

Если в индикаторе только два буфера, то буфер 0 normal относится к цвету индикатора, который представляет движение вверх. Буфер 1 normal относится к буферу индикатора, идущего вниз.

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

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