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

От xbms, 13 апреля, 2013 в Уголок Программиста

#551


Подскажите, а модифицировать отложки (установка сл - тп) лучше, если они становятся рыночными? Просто у меня при установки отложек и последующей модификации, в тестере вылазит ошибка OrderModify error 130. Причем через раз - первый запуск - ошибка, второй - нет ошибки...


130 ошибка стопа, значит не верно считается:)
#552

Еще вопрос - OrderProfit() возвращает значение убытка для закрытых ордеров? И как его получать, с помощью MODE_HISTORY ?

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

З.Ы. Еще раз спасибо и респект за видеоуроки, надеюсь, что их будет больше.

#553


Еще вопрос - OrderProfit() возвращает значение убытка для закрытых ордеров? И как его получать, с помощью MODE_HISTORY ?

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

З.Ы. Еще раз спасибо и респект за видеоуроки, надеюсь, что их будет больше.



OrderProfit() возвращает текущий профит в волюте! OrderTakeProfit() возвращает профит закрытого ордера! Посмотри документацию F1
#554
elruso, ты бы сам сначала документацию посмотрел, прежде чем отвечать. Цитирую дословно:
Цитата

double OrderTakeProfit()
Возвращает значение цены закрытия позиции при достижении уровня прибыльности (take profit) для текущего выбранного ордера

double OrderProfit()
Возвращает значение чистой прибыли (без учёта свопов и комиссий) для выбранного ордера. Для открытых позиций это - текущая нереализованная прибыль. Для закрытых ордеров - зафиксированная прибыль.

#555


Еще вопрос - OrderProfit() возвращает значение убытка для закрытых ордеров? И как его получать, с помощью MODE_HISTORY ?



1. Да. (отрицательный профит)
2. Здесь сложнее.
Если знаем тикет, то просто:
if (OrderSelect(ticket, SELECT_BY_TICKET, MODE_HISTORY))
profit = OrderProfit();


Если последний закрытый ордер, то так:
if (OrderSelect(1, SELECT_BY_POS, MODE_HISTORY))
profit = OrderProfit();


А, если нужно более серьёзно ковыряться в истории, то перелопачивать OrdersHistoryTotal(), сортировать по инструменту - OrderSymbol(), по времени закрытия - OrderCloseTime() и т.д.
#556

Последний урок, уж очень похож на урок по мартингейлу.

Изменено 18 ноября, 2013 пользователем Baggins

#557
Vorchunozavr, спасибо за подсказки.
Вобщем у меня вот такая получилась функция возврата значения профита (убытка) последнего закрытого ордера (может кому пригодится):

double LastOrderProfit()   
{
for (int i = OrdersHistoryTotal()-1; i>=0; i--)
{
if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY))
{
if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)
return (OrderProfit());
}
}

return (0);
}
#558

Вот, вроде всё правильно написал.
Только второе задание не понял как делать.

setka.mq431 скач.

Автор#559


Вот, вроде всё правильно написал.
Только второе задание не понял как делать.



Ну так а какой смысл в копировании советника с видео?
Цель - именно разобраться и выполнить задания...
#560

Переписал, протестил на демо. Тп у всей сетки изменяется, если в настройках поменять тэйкпрофит.
Среднюю цену вывел в функцию avgTP()

setka.mq436 скач.

#561

За идею - спасибо. Вопрос только один - а если в тренд попадешь?

#562

Кто может объяснить, почему, когда RSI(7) на графике направлен вниз, советник делает покупки?
Только ли из-за того, что, (будем говорить так,) после неудачной покупки, цена пошла не в нашу сторону?

#563


Кто может объяснить, почему, когда RSI(7) на графике направлен вниз, советник делает покупки?
Только ли из-за того, что, (будем говорить так,) после неудачной покупки, цена пошла не в нашу сторону?


телепаты и предсказатели, сегодня работают в другой ветке.

А нам нужен код советника, или как минимум его часть.
#564

Я, так понимаю, тут обсуждают советника из последнего урока, Setka, или я дверь перепутал?

#565


Я, так понимаю, тут обсуждают советника из последнего урока, Setka, или я дверь перепутал?


Здесь обсуждают конкретные вопросы, по конкретным темам с уклоном в mql4.
В том числе и последний урок, но не все его смотрели. Если спрашиваете что-то, вопрос должен быть конкретным желательно с картинками и кодом. >:dТогда есть большой шанс, что Вас поймут, и Вам ответят.
#566

Уважаемый "Финансовый махинатор"!!!
Поведайте "внуку лейтенанта Шмидта" вот о чём.
Как избавиться от проблемы зависания счетчика закрытых ордеров? Именно закрытых, с текущими проблем нет. Что в "тестере", что в "жизни" одна хрень - в какой-то момент счетчик просто висит со своими "дурацкими цифрами", бывает, до нескольких суток. А потом Бац!.... и отлипает......вот конь....
Конечно смена ТФ или релоад помогают, НО, хотелось-то чтоб он сам, так сказать, думал чё делает.
Отбор ордеров идет по двум параметрам: дата открытия (ну, мне просто надо это) и, естественно, дата закрытия в пуле MODE_HISTORY.
Ничё хитрого нет. Но виснет, козел.... Я нормально протестировать не могу.
Пробовал применять RefreshRates() на смене дат - не помогает.
Я в тумане.
Буду премного благодарен за прояснение ситуации, а может моих мозгов :))))

#567

Еще вопросик по округлениям лотов перед отправкой ордеров.
При расчете лота с множителем, например в мартине, если не делать NormalizeDouble, то лот как то странно округляется, по крайней мере в тестере: например при значении 0.0195 открывается лот 0.01.
Т.е. нужно ли в мартинах после расчета ордера применять NormalizeDouble?

#568

Подскажите пожалуйста, как правильно записать такую функцию:
"Каждый раз, когда сработал любой отложенный ордер, произвести подсчет общего объема открытых buy ордеров"

#569
Ricedeni, в видеоуроках не раз писалась функция типа CountTrades, с помощью которой можно считать ордера. Проверь с помощью нее, нет ли твоих лимиток в рынке, эту же функцию нетрудно модифицировать для подсчета объема ордеров нужного типа с помощью OrderLots(). Если не справишься, напишу, но лучше попытайся потренироваться сам.
#570


Ricedeni, в видеоуроках не раз писалась функция типа CountTrades, с помощью которой можно считать ордера. Проверь с помощью нее, нет ли твоих лимиток в рынке, эту же функцию нетрудно модифицировать для подсчета объема ордеров нужного типа с помощью OrderLots(). Если не справишься, напишу, но лучше попытайся потренироваться сам.



ok

Добавлено: 25-11-2013 17:10:07

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

Казалось бы, все просто:
1. берем переменную.
2. записываем в нее последний тикет.
3. потом, проверяем не появился ли на рынке более новый тикет, чем тот, что указан в переменной.

Но, что произойдет, после перезагрузки компа? Значение последнего тикета в переменной сотрется.

p.s. Буквально сегодня получил письмо, что на моем vps, на выходных произойдет перезагрузка.
p.p.s. Так и не понял, за что мне минус поставили, вопрос вроде не тривиальный.

Изменено 25 ноября, 2013 пользователем Ricedeni

#571

Помогите разобраться с вызовом пользовательского индикатора. Во внешних настройках индикатора стоит следующее:

extern int A_Period = 20;
extern int A_PriceType = 0;
extern int A_Method = 3;
extern bool Norm = TRUE;
extern int Digits = 2;

Как передать параметры, указанные в 4 и 5 строках, "extern bool Norm" и "extern int Digits"?

A1=iCustom(Symbol(),0,"A induk",new_Period,0,3,?х,?х,1,0);



Автор#572


Уважаемый "Финансовый махинатор"!!!
Поведайте "внуку лейтенанта Шмидта" вот о чём.
Как избавиться от проблемы зависания счетчика закрытых ордеров? Именно закрытых, с текущими проблем нет. Что в "тестере", что в "жизни" одна хрень - в какой-то момент счетчик просто висит со своими "дурацкими цифрами", бывает, до нескольких суток. А потом Бац!.... и отлипает......вот конь....
Конечно смена ТФ или релоад помогают, НО, хотелось-то чтоб он сам, так сказать, думал чё делает.
Отбор ордеров идет по двум параметрам: дата открытия (ну, мне просто надо это) и, естественно, дата закрытия в пуле MODE_HISTORY.
Ничё хитрого нет. Но виснет, козел.... Я нормально протестировать не могу.
Пробовал применять RefreshRates() на смене дат - не помогает.
Я в тумане.
Буду премного благодарен за прояснение ситуации, а может моих мозгов :))))



Предъявите код, для начала... посмотрим....

Добавлено: 26-11-2013 03:54:00


Помогите разобраться с вызовом пользовательского индикатора. Во внешних настройках индикатора стоит следующее:

extern int A_Period = 20;
extern int A_PriceType = 0;
extern int A_Method = 3;
extern bool Norm = TRUE;
extern int Digits = 2;

Как передать параметры, указанные в 4 и 5 строках, "extern bool Norm" и "extern int Digits"?
A1=iCustom(Symbol(),0,"A induk",new_Period,0,3,?х,?х,1,0);



Параметры в индикатор передаются в порядке их объявления в индикаторе... Соответственно порядок будет такой:
A1=iCustom(Symbol(), 0, "A induk", new_Period, 0, 3, TRUE, 2, 1, 0);
#573

Упростений язик програмирования торговских систем под MT4

Simple language allow trader to shift focus from technical details to trading logic. Generally, traders are not programmers and will never be. The attempt is to create a handy tool for building automated trading strategies.

RGT49.zip12 скач.
Introduction.pdf27 скач.
Engine_options.pdf17 скач.
Example1.zip14 скач.
Buffers.pdf15 скач.

Изменено 30 ноября, 2013 пользователем stivborg

#574

Как скачать видеокурс? На почту ничего не приходит.Нельзя было нормально выложить...

#575

Подскажите пожалуйста хорошую библиотеку функций. Мне понравилась вот эта (http://codebase.mql4.com/ru/source/20166) много полезных функций, к сожалению, она кривовато работает :(

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

Перейти к списку тем
Форум · 2.0.20260627.0025