Перейти к содержанию

Обучение языку MQL4 под MetaTrader 4


Рекомендуемые сообщения

Обучение языку MQL4 под MetaTrader 4 Опубликовано

Спс, я уже разобрался, сов не хочет видеть индюк, я его переделал под другой индюк, и о чудо, он заработал, работающий сов выложил на форум
http://tlap.com/forum/torgovye-sistemy/2/h1h4-forex-ultra-filter/1127, там кто-то сову просил я туда и бросил!

  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

  • Ответов 6,8k
  • Создано
  • Последний ответ

Популярные авторы

Популярные авторы

Популярные посты

Смотрим видео-уроки, изучаем MQL:       Скачать видеокурс «MQL программирование. Как самому написать форекс советник/ индикатор/ скрипт»   P.S. Тема про Обучение MQ

Перейти

Циклы цикл for Иногда необходимо повторять одно и то же действие несколько раз подряд. Для этого используют циклы. К примеру, мы хотим проанализировать последние 10 баров и выяснить наименьшую цен

Перейти

Речь идет о том, что не будет значимых нововведений. А только баги периодически будут править. А вот все новое мол - в МТ5. Когда они вживую сказали то же самое на конференции в Москве, я уточнил: "То

Перейти
Обучение языку MQL4 под MetaTrader 4 Опубликовано


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


Добавлено: 28-07-2015 12:53:41

Еще 1 вопрос, в 2 строках OrderModify(ticket, OrderOpenPrice(), SL, TP, 0); и
OrderSelect(trade, SELECT_BY_POS, MODE_TRADES); выдает вот такую фразу: return value of 'OrderModify' should be checked ultra-signal.mq4 75 9 при этом все строки были написаны по видео и сверял несколько раз, но пишет 4 варнинга и при тесте не может оставить 1 ордер, постоянно висит buy и sell одновременно


OrderModify() и OrderSelect() должны возвращать булевое значение.Поставьте перед ними bool rez = и всё.
Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано
miniTrader сам формат datetime не позволяет... Есть ф-ция GetTickCount(), но она работает с виндовым таймером и пригодна только для вычисления интервалов. На самом деле пинг от сервера до Вашего компа делает инфу о миллисекундах ненужной. имхо.
  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано

Все мне не дает покоя индикатор ультра сигнал(хз чего), просмотрев 1,2,3 видео я так и не понял, как, мне в строку
double h1 = iCustom(NULL, 0, "Ultra-Signal", 0, 1); в источник данных подставить сравнение по видео если а2>0 но не равно значению, может мне кто на пальцах объяснить, а то лежит уже 3 совы грузом, если 2 буфера совы у меня работают, а 3 и больше уже не хотят!

Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано
big13 из Вашего поста ничего не понял, кроме того, что Вы пытаетесь индюк без параметров вызвать. Видео не смотрел, поэтому, если хотите помощи - конкретно пишите.
  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано


big13 из Вашего поста ничего не понял, кроме того, что Вы пытаетесь индюк без параметров вызвать. Видео не смотрел, поэтому, если хотите помощи - конкретно пишите.

Смысл такой, ультра сигнал, индюк с закрытым исходником, есть 6 буферов, по видео следует, что после исследования индикатора и нахождения параметров которые изменяются в строку
double h1 = iCustom(NULL, 0, "Ultra-Signal", 0, 1); надо подставить значение буфера, который изменяется, и в строку
double l1 = iCustom(NULL, 0, "Ultra-Signal", 1, 1) обратное значение, прикрепляю сов, который пытаюсь заставить работать, сразу уточняю, что если в индикаторе всего 2 буфера, совы работают, если больше, на ультра сигнале их 6,сов на каждом тике открывает и закрывает сделку!
П.с. при исследовании выяснил, что параметры меняются в 0 и 1 буферах

Adjustable_MA_ultrafiltr.mq4

Изменено пользователем big13
Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано

Помогите пожалуйста сделать из этого индикатора вот такой индикатор:

(Чистый спред) = Бычий спред (зеленая гистограмма) - Медвежий спред (красная гистограмма)

VSA_Spred.mq4

Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано

Всем доброго времени суток!
Касательно моей последней просьбы о помощи, она не актуальна, я во всем разобрался сову запустил!

  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано

Уважаемый OII!
В новых версиях МТ4 у меня не работает SimpleForexTester.( Нашел его на этом сайте)
Подскажите пожалуйста как можно его заставить работать.
Или пора с ним распрощаться?






























































































































































































Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано
formula я даже не знаю что это... Вы задайте этот вопрос в соответствующей ветке.
Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано

Сергей, добрый день. Подскажите, каким образом из экселевской таблицы нанести на график вертикальные линии. Просто анализирую графики другими методами программирования, в результате получаю экселевскую таблицу, в которой по датам отмечены профитные и убыточные сделки. Пока не знаю MQL, делаю так и вручную наношу эти линии. Здорово было бы скриптом загружать их на график. В курсе молодого бойца не нашла этого. Экселевскую таблицу могу получить в любом виде.

Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано
sovoka я делал ранее скрипт который читает .csv файл (который можно получить из экселя) поищите в этой теме. Подробностей уже не помню...
Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано

Фууух, наконец-то разобрался. Писал советник как на уроке по трейлинг стопу. Сначала посмотрел видео, потом написал по памяти советник с Trailingstop и Treilingstep. В тестере получил следующее- Советник тралит бай, но вообще не тралит селл. Открывает одну сделку(селл) и держит ее до конца теста. Сто раз сверился с видео что я делаю не так. Форум дочитал до 70 страницы.Дальше читать терпения не хватило. В общем в коде который на видео ошибка в строке if (OrderStopLoss()>Ask + (TrailingStep+TrailingStop)*Point). Блок функции установка СЛ на селл. Получается что если у нас первый ордер установлен с значением Стоплосс=0, а он у нас так и установлен, то это условие никогда не выполнится, так как 0 не может быть больше цены(н-р 1.3540)+ (трейлингстеп(50)+трелингстоп(30))*0,0001. Поменял знак. Сейчас выглядит так: if (OrderStopLoss()

Изменено пользователем igid
  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано

Доброе утро. Написала свой первый скрипт, а он ничего не выводит. Не знаю, почему, буду благодарна любой подсказке. Запускаю из окна навигатора.

One.mq4

Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано


Доброе утро. Написала свой первый скрипт, а он ничего не выводит. Не знаю, почему, буду благодарна любой подсказке. Запускаю из окна навигатора.

В проверку хэндла файла после открытия вставьте элзе принт("Файл не найден.")
Если файл корректно открыт вставте принт в цикл чтения и построчно выводите в журнал.
Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано

Так и не разобрался. Написал 4 советника с разными тралами. У всех в тесте ошибка 130. Не знаю почему она возникает и как сделать так, чтобы ее не было. Еще трал по фракталам вроде работает, но когда тестируешь с визуализацией - тест дальше первой сделки не идет( отрывается первый ордер и все, дальше никаких признаков жизни). А трала по pSAR заметил такую вещь. Советник открыл БАЙ, но цена тут же пошла вниз. А значения то индикатора получается сверху свечи, то есть стоплосс не может быть больше текущей цены. И у нас открыта позиция на долгое время без стоплосса. На скрине отметил это красной стрелкой. Подскажите как быть в данной ситуации?

FractalTrailing.mq4
ExtremumTrailing.mq4
MATrailing.mq4
ParabolikTrailing.mq4
ScreenClip.png

Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано


Так и не разобрался. Написал 4 советника с разными тралами. У всех в тесте ошибка 130. Не знаю почему она возникает и как сделать так, чтобы ее не было. Еще трал по фракталам вроде работает, но когда тестируешь с визуализацией - тест дальше первой сделки не идет( отрывается первый ордер и все, дальше никаких признаков жизни). А трала по pSAR заметил такую вещь. Советник открыл БАЙ, но цена тут же пошла вниз. А значения то индикатора получается сверху свечи, то есть стоплосс не может быть больше текущей цены. И у нас открыта позиция на долгое время без стоплосса. На скрине отметил это красной стрелкой. Подскажите как быть в данной ситуации?



Вот поправленный трал с фракталами:

void Trailing()
{
SL = 0;
fractal_down = NormalizeDouble(iFractals(NULL,0,MODE_LOWER,5),Digits);
fractal_up = NormalizeDouble(iFractals(NULL,0,MODE_UPPER,5),Digits);
for (int i =0;i {
if (OrderSelect(i,SELECT_BY_POS))
{
if (OrderSymbol()==Symbol()&&OrderMagicNumber()==Magic)
if (OrderType()==OP_BUY)
{
if(fractal_down>0)
{
SL=NormalizeDouble(fractal_down,Digits);
if (OrderStopLoss()!=SL)
{
if(SL bool rez = OrderModify(OrderTicket(),OrderOpenPrice(),SL,0,0);
}
}
}
if (OrderType()==OP_SELL)
{
if(fractal_up>0)
{
SL=NormalizeDouble(fractal_up,Digits);
if (OrderStopLoss()!=SL)
{
if(SL > Ask + MarketInfo(Symbol(),MODE_STOPLEVEL)*Point)
bool rez = OrderModify(OrderTicket(),OrderOpenPrice(),SL,0,0);
}
}
}
}

}


}


Ошибка 130 - это неправильные стопы.Возможно просто стоп-лосс который Вы хотите разместить находится слишком близко
от текущей цены.
Сделайте проверку if(SL > Ask + MarketInfo(Symbol(),MODE_STOPLEVEL)*Point) Изменено пользователем Konstebl
  • Лайк 2
Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано



Ошибка 130 - это неправильные стопы.Возможно просто стоп-лосс который Вы хотите разместить находится слишком близко
от текущей цены.
Сделайте проверку if(SL > Ask + MarketInfo(Symbol(),MODE_STOPLEVEL)*Point)


Спасибо. От ошибки избавился, Но все равно советники не тестируются при визуализации. У Вас также?
Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано

Здравствуйте.
Давно искал нечто подобное, но нашел только на мт5. Может Вам встречался для мт4 или напишем, перепишем?






ссылка: https://www.mql5.com/ru/market/product/850#
  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано




Ошибка 130 - это неправильные стопы.Возможно просто стоп-лосс который Вы хотите разместить находится слишком близко
от текущей цены.
Сделайте проверку if(SL > Ask + MarketInfo(Symbol(),MODE_STOPLEVEL)*Point)


Спасибо. От ошибки избавился, Но все равно советники не тестируются при визуализации. У Вас также?


double Lowestprice()
{
double Lprice;
double Lowprice=100000;
for (int i=0;i { // 1-я скобка
Lprice=iLow(Symbol(),0,i);
if(Lprice Lowprice=Lprice;
} // 2-я скобка
return(Lowprice);
}
//+------------------------------------------------------------------+
double Highestprice()
{
double Hprice;
double Highprice=0;
for (int i=0;i { // 1-я скобка
Hprice=iHigh(Symbol(),0,i);
if(Hprice>Highprice)
Highprice=Hprice;
} // 2-я скобка
return(Highprice);
}

Вы в этих функциях не поставили скобки(выделены).И советник стал тестироваться.
Только какие это экстремумы это просто хай или лоу предыдущей свечи! Изменено пользователем Konstebl
  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано

Уважаемые гуру,
только начал изучение темы, написал пару строк по третему уроку, но выскакивают четыри ошибки при компиляции:

return value of 'OrderModify' should be checked
return value of 'OrderModify' should be checked
return value of 'OrderSelect' should be checked
return value of 'OrderSelect' should be checked

Никак не могу разобраться в чём причина
Может кто помочь?

Test311.mq4

Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано


Уважаемые гуру,
только начал изучение темы, написал пару строк по третему уроку, но выскакивают четыри ошибки при компиляции:

return value of 'OrderModify' should be checked
return value of 'OrderModify' should be checked
return value of 'OrderSelect' should be checked
return value of 'OrderSelect' should be checked

Никак не могу разобраться в чём причина

Может кто помочь?



Поставьте перед этими функциями bool rez = и всё.
  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано

Буквально страницу назад об этом писали. Функции OrderSend() и OrderModify() возвращают булево значение true или false при успешной операции или неудачной. Предполагается, что вас интересует столь важное действие как открытие или модификация ордера и вы захотите это проверить.
В самом простом варианте пишите:
bool result = OrderModify() - и это предупреждение компиляции исчезнет.

  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Специальное предложение


  • Рекомендуемые брокеры

  • ×
    ×
    • Создать...