Добрый день.
Делаю первые шаги в mql5. Сгенерировал советник на основе индикаторов RSI М5 и RSI M15. Подскажите, как настроить так, чтобы сделка совершалась по срабатыванию обоих сигналов одновременно? Вес для обоих стоит 1. Если вес ставлю по 0.5, то сделки не совершаются совсем. Параметр Signal threshold value to open = 90.
Обучение языку MQL5 под MetaTrader 5📌
От pavlus777, 1 августа, 2016 в Уголок Программиста
Доброго времени суток Господа Программисты.
Подскажите пожалуйста, что исправить в данной функции, что бы метка ставилась только на крайнем экстремуме, а не во всех местах остановки цены
void _GetExtremumZZPrice()
{
int ke = 0; // будем в них подсчитывать количество меток
int ZZHandle;
double ZZ[];
datetime Time[];
ZZHandle = iCustom(_Symbol, PeriodPatterns, "Examples\\Zigzag", DepthZZ, DeviationZZ, BackstepZZ);
if (ZZHandle
ArraySetAsSeries(ZZ,true);
if (CopyBuffer(ZZHandle,0,1,2,ZZ) return;
int copied=CopyTime(NULL,0,1,2,Time);
if(copied {
Print("Не удалось скопировать времена открытия");
return;
}
bool created;// будем получать результат попытки создания объекта
for(int i=0;i {
if(ZZ!=0 && ZZ!=EMPTY_VALUE)// нашли точку
{
if(ke {
//--- попробуем создать объект
created=ObjectCreate(0,string(ZZ),OBJ_ARROW_LEFT_PRICE,0,Time,ZZ);
if(created)// если создался - сделаем ему тюнинг
{
//--- установим цвет метки
ObjectSetInteger(0,string(ZZ),OBJPROP_COLOR,clrYellow);
//--- установим стиль окаймляющей линии
ObjectSetInteger(0,string(ZZ),OBJPROP_STYLE,0);
//--- установим размер метки
ObjectSetInteger(0,string(ZZ),OBJPROP_WIDTH,1);
ke++;
}
}
}
}
}
а не во всех местах остановки цены
Данная функция ВООБЩЕ НЕ РАБОТОСПОСОБНА! В ней куча ошибок! Приведите скрин, что у вас получилось и что вы хотите.
ЦитатаДанная функция ВООБЩЕ НЕ РАБОТОСПОСОБНА! В ней куча ошибок! Приведите скрин, что у вас получилось и что вы хотите.
Извините, я думал Вы догадаетесь поставить параметры индикатора
input ENUM_TIMEFRAMES PeriodPatterns = PERIOD_H4;
input int DepthZZ = 12;
input int DeviationZZ = 5;
input int BackstepZZ = 3;
Хочу чтобы остались только метки на перегибе (экстремуме) ZigZaga , а остальные не отображались
Добавлено: 25-11-2018 16:49:52
У меня работает , но вот так. Выделенные метки нужно оставить остальные убрать
Изменено 25 ноября, 2018 пользователем Leery
У меня работает , но вот так.
Проблем с подстановкой параметров у меня нет!
Везде где нужно обратиться к элементу массивов ZZ и Time вы совершили ошибку. Такой код даже не скомпилируется, я не говорю даже о запуске в MT5.
Может код предоставлен другой в отличии что на скрине?
В этом коде в цикле rof, ZZ и Time меняем на
ZZ и Time
Вот полный код советника ;) который и компилируется и криво работает ( по крайней мере у меня)
fcplm как я говорил с входными параметрами нет проблем. Другое дело когда предоставляешь код, пользуйся кнопкой вставить "код". Как раз в твоем случае "форум съел" фигурные [] скобки, на отсутствие которых я обратил внимание.
Твой код действует согласно логике правильно. Так как ты пишешь не индикатор а советник, тебе также предстоит написать код который будет убирать лишние значения.
ЦитатаТак как ты пишешь не индикатор а советник, тебе также предстоит написать код который будет убирать лишние значения
Это уже будет вторая задача. а я пока с первой не разобрался :(
вторая задача
Тогда я не понимаю!
Какая первая задача?
ЦитатаКакая первая задача?
Сначала оставить метки только на экстремумах
только на экстремумах
Слушай, так про че я тебе и говорю! лишние надо удалять!
Добавлено: 26-11-2018 16:41:21
По логике кода происходит так. Прорисовывается зигзаг в низ, это дает сигнал на обозначение уровня. На следующей свече, цена ушла еще ниже, зигзаг рисуется еще ниже, а это дает сигнал прорисовать еще уровень. И так далее. А прошлые уровни ты не удаляешь! Вот и получается захламленность.
Изменено 26 ноября, 2018 пользователем MikR0ReR
а вытащить только перегибы как Mql4 здесь не получится?
получится?
Получится!
Подумай! Твой индюк состоит из ZigZag, к та муже задачи один в один (буковка в буковку, циферка в циферку). Нафига изобретать велосипед, вози код ZigZag и поменяй объект отрисовки, не линию, а поставь значение цены.
Изменено 26 ноября, 2018 пользователем MikR0ReR
Новый урок:
http://tradelikeapro.ru/mql5-ea-na-vneshnem-indikatore/
В справочнике есть функция OrderSend есть пример для реализации
#define EXPERT_MAGIC 123456 // MagicNumber эксперта
//+------------------------------------------------------------------+
//| Открытие позиции Buy |
//+------------------------------------------------------------------+
void OnStart()
{
//--- объявление и инициализация запроса и результата
MqlTradeRequest request={0};
MqlTradeResult result={0};
//--- параметры запроса
request.action =TRADE_ACTION_DEAL; // тип торговой операции
request.symbol =Symbol(); // символ
request.volume =0.1; // объем в 0.1 лот
request.type =ORDER_TYPE_BUY; // тип ордера
request.price =SymbolInfoDouble(Symbol(),SYMBOL_ASK); // цена для открытия
request.deviation=5; // допустимое отклонение от цены
request.magic =EXPERT_MAGIC; // MagicNumber ордера
//--- отправка запроса
if(!OrderSend(request,result))
PrintFormat("OrderSend error %d",GetLastError()); // если отправить запрос не удалось, вывести код ошибки
//--- информация об операции
PrintFormat("retcode=%u deal=%I64u order=%I64u",result.retcode,result.deal,result.order);
}
Что обозначает {0} в MqlTradeRequest request и MqlTradeResult result?
Изменено 15 января, 2019 пользователем 0ll
Добрый день. Подскажите, почему при работе советника из урока "MQL5: Пишем советник на Мартингейле" выводится ошибка: "Не удалось установить TakeProfit, код ошибки 10036"
10036 - TRADE_RETCODE_POSITION_CLOSED - Позиция с указанным POSITION_IDENTIFIER уже закрыта
Код советника из урока не изменял.
Что обозначает {0}
MqlTradeRequest и MqlTradeResult являются структурами, следовательно команда {0} заполняет значения элементов, в данном случае предполагаю, что эти значения заполняются "0". В режиме отладки можно это проверить.
"Не удалось установить TakeProfit, код ошибки 10036"
Счет какой Неттинговый или Хеджинговый?
Добавлено: 30-01-2019 12:43:48
Ничего не пойму. Почему мы заполняем переменные из одного буфера, соответственно там должны получится одинаковые данные, а потом сравниваем эти переменные?
Код вставить не даёт форум, вставлю картинку с кодом.
Изменено 30 января, 2019 пользователем s22aa
Вы заполняете переменные из одного буфера, но разными значениями! на одном проходе цикла i может быть заполнена только одна переменная.Ничего не пойму. Почему мы заполняем переменные из одного буфера, соответственно там должны получится одинаковые данные, а потом сравниваем эти переменные?
на одном проходе цикла i может быть заполнена только одна переменная.
Спасибо, теперь понятно.
Сам то я ничего не умею, разве что скопипастить, в последнем видео был индикатор trendi, вот я с него скопипастил всё в свой индюк Insid_Outside_Bar, теперь пытаюсь на нём сделать сову, а ничего не выходит, ордера не открываются, беда. Сейчас буду разбираться, может я с циклом , что попутал.
http://tradelikeapro.ru/pishem-ea-martin-na-mql5/
Перезаписали урок в связи с изменениями в MT5 metaeditore
Подскажите почему индикатор рисует точки там где их быть не должно.
С помощью "Вложение:выберите файл" прикрепил картинку и индюк, но предварительный просмотр их мне не показывает :(
Вставить код индюка с помощью кнопки "вставить код" вообще ругается на какие то ссылки.Бедааа.
Подскажите почему индикатор рисует точки там где их быть не должно.
С помощью "Вложение:выберите файл" прикрепил картинку и индюк, но предварительный просмотр их мне не показывает :(
Вставить код индюка с помощью кнопки "вставить код" вообще ругается на какие то ссылки.Бедааа.
Insid_Outside_Bar.mq5
ZloyZam, ваш ответ видел давно и только сегодня допёр, что ответ в прикреплённом индикаторе )))
Сегодня выходные, поэтому посмотреть как работает ваш вариант не могу, но проблему рисования лишних точек, я решил заполнением буферов нулями
ArrayFill (BuffDn, prev_calculated, rates_total - prev_calculated, 0);
Как я понял проблема была в том, что в буфере последнего нового только формирующегося бара, был а всякая фигня.
Но всё равно спасибо за ответ.
Для публикации сообщений создайте учётную запись или авторизуйтесь
Перейти к списку тем