Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
привет кодеры,
возможно ли создать советника для 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 находится в нисходящем тренде, но опять же, это может отфильтровать много прибыльных сделок). Если бы мне могли помочь с кодированием, я бы с удовольствием поэкспериментировал с этими различными факторами.
Из моего ручного тестирования я думаю, что у меня может быть прибыльная система, поэтому любая помощь будет оценена по достоинству.
Заранее спасибо!
Джейсон
Помощь в программировании
Привет кодерсгуру,
Мне нужна помощь в создании советника. Можете ли вы помочь, если да, то какова ваша плата?
Здравствуйте, Codersguru,
было бы здорово, если бы вы нашли немного времени, чтобы взглянуть на мою проблему:https://www.mql5.com/en/forum/general.
С наилучшими пожеланиями
Питер
Вопрос новичка
Не могли бы вы помочь, только начинаю
Подскажите, пожалуйста, как изменить цвета по умолчанию на свечах heiken ashi?
Я могу менять цвета на графике, но они возвращаются к красным и белым по умолчанию, если я меняю время или валюту.
спасибо
Гордон
Вы можете помочь, только начинаю
Подскажите, пожалуйста, как изменить цвета по умолчанию на свечах 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 слово на любой цвет, который вам нравится, а затем скомпилируйте пользовательский индикатор. Пожалуйста, дайте мне знать, если это может решить вашу проблему. Надеюсь, это поможет