Спрашивайте! - страница 8

 

привет кодеры,

возможно ли создать советника для Triggerlines, как я вижу на истории, он проделал отличную работу, но немного сложно постоянно нянчиться с ним.

Обычно я совмещаю его с тренд менеджером, так что когда триггерлайнс пересекается вверх и меняет цвет на синий и у TM есть синий сигнал на покупку, если вы можете создать советника, который может совмещать оба индикатора, это было бы очень полезно .Спасибо большое.

 

ema-крест

Здравствуйте, codersguru,

Я пытался получить некоторую помощь с советником, похожим на ваш, потому что я не программист ни в коем случае. Однако, я не могу вызвать интерес, поэтому я подумал, раз ваш советник так близок, может быть, его можно адаптировать для того, что я пытаюсь сделать. Ниже приведено простое объяснение 3 переменных:

Если EMA 9 пересекается выше EMA 30, а Momentum(21) пересекает 100, создается сигнал на покупку. Выход на покупку будет сгенерирован, если EMA 9 пересечется ниже EMA 30, независимо от того, что делает линия импульса.

Если EMA 9 пересекается ниже EMA 30, а Momentum(21) пересекает отметку ниже 100, формируется сигнал на продажу. Выход на продажу будет сформирован, когда ЕМА 9 пересечется выше ЕМА 30, независимо от того, что делает линия импульса.

Что вы думаете? Можно ли это как-то подкорректировать или это вообще выполнимый советник? Любая помощь будет оценена по достоинству!

BW

 

IndicatorCounted

Здравствуйте, Codegru,

Сначала я хочу поблагодарить вас за такую замечательную работу, за уроки по MT4. Еще неделю назад МТ4 казался мне очень трудным, но теперь я начинаю опираться.

Я пытаюсь преобразовать индикатор в советника. Индикатор использует "int counted_bars = IndicatorCounted()", для подсчета баров, в советнике я думаю я не могу использовать это, так как это связано с индикатором.

Как я могу решить эту проблему.

Спасибо большое....

 

Система ADX

Здравствуйте, Гуру Кодера,

Я только что прочитал руководство по MQL4 в прошлые выходные и создал свой первый советник.

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

В общем, вот мой первый советник: я не знаю, прибыльная это система или нет, но результаты бэк-теста моего советника не совпадают с результатами ручного бэк-теста, который я проводил. Я знаю, что есть два фильтра, которые я не смог понять, как запрограммировать, но я займусь этим после того, как все объясню. (Я приложил текстовый файл с кодом).

Вот основа моей системы:

Начальная установка:

15-метровый временной интервал

Если он находится между 200 и 1400 EST.

Если ADX больше 20.

Если диапазон [1] последнего бара меньше диапазона [2] предыдущего бара. (Внутренний период).

Если диапазон [1] последнего бара меньше 7 пунктов.

Условная установка A:

Если 20-периодная EMA поднялась.

Если Bid больше максимума [1] последнего бара (я предполагаю, что графики показывают только Bid... это так?).

Покупаем по цене спроса со стоп-лоссом на один тик ниже минимума последнего периода.

Условная установка B:

Если 20-периодная EMA находится внизу.

Если Bid меньше минимума последнего бара [1].

Продаем по Bid со стоп-лоссом на один тик выше high+ask последнего бара.

Я хочу установить тейк-профит при определенном соотношении риск:вознаграждение. В своем бэк-тестировании я обнаружил, что когда баров периода Inside меньше 5, соотношение вознаграждения 3:1 является хорошим. (лимитный ордер на 30 пунктов (5(диапазон) + 3(спред) + 2(SL и вход))*3=30)..... Однако я не думаю, что правильно запрограммировал это в своем коде.

Первый вопрос:

Правильно ли я использую код для инициирования сделок? Правильно ли я использовал максимумы, аски и т.д.?

Второй вопрос:

Мой временной фильтр, похоже, не работает. Правильно ли я это делаю?

Третий вопрос:

Я хочу, чтобы сделки инициировались только на ОДИН ПИП выше High+ask последнего бара. Я думаю, что мой текущий код будет инициировать сделки при прорыве цены выше этой цены. Как мне это исправить?

Четвертый вопрос:

Я думаю, что это самая большая ошибка в моем коде: У меня нет фильтра для случаев, когда 20-EMA разворачивается, но ADX все еще выше 20. Я также хотел бы посмотреть, как эта система работает, если 20-EMA разворачивается, ADX падает (но не ниже 20), а затем снова поднимается, так что МОЖНО было бы отфильтровать сделки, когда ADX находится в нисходящем тренде, но опять же, это может отфильтровать много прибыльных сделок). Если бы мне могли помочь с кодированием, я бы с удовольствием поэкспериментировал с этими различными факторами.

Из моего ручного тестирования я думаю, что у меня может быть прибыльная система, поэтому любая помощь будет оценена по достоинству.

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

Джейсон

Файлы:
ipadxema.txt  5 kb
 

Помощь в программировании

Привет кодерсгуру,

Мне нужна помощь в создании советника. Можете ли вы помочь, если да, то какова ваша плата?

 

Здравствуйте, Codersguru,

было бы здорово, если бы вы нашли немного времени, чтобы взглянуть на мою проблему:https://www.mql5.com/en/forum/general.

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

Питер

 

Вопрос новичка

Не могли бы вы помочь, только начинаю

Подскажите, пожалуйста, как изменить цвета по умолчанию на свечах heiken ashi?

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

спасибо

Гордон

 
gordon:
Вы можете помочь, только начинаю

Подскажите, пожалуйста, как изменить цвета по умолчанию на свечах heiken ashi?

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

спасибо

Гордон

Привет, Гордон, не могли бы вы разместить здесь файл MQ4, тогда мы сможем вместе помочь вам. Надеюсь, это поможет

 

спасибо Дэйв,

#property indicator_chart_window

#property indicator_buffers 4

#property indicator_color1 Red

#property indicator_color2 White

#property indicator_color3 Red

#property indicator_color4 White

//---- буферы

double ExtMapBuffer1[];

double ExtMapBuffer2[];

double ExtMapBuffer3[];

double ExtMapBuffer4[];

//----

int ExtCountedBars=0;

//+------------------------------------------------------------------+

//| Пользовательская функция инициализации индикатора |

//|------------------------------------------------------------------|

int init()

{

//---- индикаторы

SetIndexStyle(0,DRAW_HISTOGRAM, 0, 1, Red);

SetIndexBuffer(0, ExtMapBuffer1);

SetIndexStyle(1,DRAW_HISTOGRAM, 0, 1, White);

SetIndexBuffer(1, ExtMapBuffer2);

SetIndexStyle(2,DRAW_HISTOGRAM, 0, 3, Red);

SetIndexBuffer(2, ExtMapBuffer3);

SetIndexStyle(3,DRAW_HISTOGRAM, 0, 3, White);

SetIndexBuffer(3, ExtMapBuffer4);

//----

SetIndexDrawBegin(0,10);

SetIndexDrawBegin(1,10);

SetIndexDrawBegin(2,10);

SetIndexDrawBegin(3,10);

//---- отображение буферов индикаторов

SetIndexBuffer(0,ExtMapBuffer1);

SetIndexBuffer(1,ExtMapBuffer2);

SetIndexBuffer(2,ExtMapBuffer3);

SetIndexBuffer(3,ExtMapBuffer4);

//---- инициализация выполнена

return(0);

}

//+------------------------------------------------------------------+

//| Пользовательская функция деинициализации индикатора |

//+------------------------------------------------------------------+

int deinit()

{

//---- TODO: добавьте свой код сюда

//----

return(0);

}

//+------------------------------------------------------------------+

//| Пользовательская функция итерации индикатора |

//+------------------------------------------------------------------+

int start()

{

double haOpen, haHigh, haLow, haClose;

if(Bars<=10) return(0);

ExtCountedBars=IndicatorCounted();

//---- проверка на возможные ошибки

if (ExtCountedBars<0) return(-1);

//---- последний подсчитанный бар будет пересчитан.

if (ExtCountedBars>0) ExtCountedBars--;

int pos=Bars-ExtCountedBars-1;

while(pos>=0)

{

haOpen=(ExtMapBuffer3[pos+1]+ExtMapBuffer4[pos+1])/2;

haClose=(Open[pos]+High[pos]+Low[pos]+Close[pos])/4;

haHigh=MathMax(High[pos], MathMax(haOpen, haClose));

haLow=MathMin(Low[pos], MathMin(haOpen, haClose));

if (haOpen<haClose)

{

ExtMapBuffer1[pos]=haLow;

ExtMapBuffer2[pos]=haHigh;

}

else

{

ExtMapBuffer1[pos]=haHigh;

ExtMapBuffer2[pos]=haLow;

}

ExtMapBuffer3[pos]=haOpen;

ExtMapBuffer4[pos]=haClose;

pos--;

}

//----

return(0);

}

//+---------------------------

 

Привет, Гордон, как вы можете видеть на коде, который вы только что опубликовали, если вы хотите изменить цвет, просто измените ALL WHITE и RED слово на любой цвет, который вам нравится, а затем скомпилируйте пользовательский индикатор. Пожалуйста, дайте мне знать, если это может решить вашу проблему. Надеюсь, это поможет

Причина обращения: