Таким образом, мы можем передать неизменный стоп-лосс и зафиксировать цены в функции OrderModify(). Перед изменением ордера мы проверяем, что наша индикаторы скальпинга форекс новая цена отложенного ордера не совпадает с текущей ценой отложенного ордера. Этот метод также обладает тем преимуществом, что позволяет нам размещать точный стоп-лосс и фиксировать цены без влияния проскальзывания.
Если в течение промежутка времени с момента формирования торгового приказа программой(t 1) до момента принятия решения сервером (t 6) на рынке не произошло каких-либосущественных изменений, торговый приказ, как правило, будет исполнен. По умолчанию метод размещения стоп-лосса и тейк-профита с помощью рыночного ордера заключается в размещении их с помощью функции OrderSend(). В этом случае нам нужно будет разместить стоп-лосс и тейк-профит после размещения ордера с помощью функции OrderModify().
Торговый приказ может быть сформирован трейдером или программой. Для создания торговыхприказов по инициативе трейдера в составе клиентского терминала имеется панельуправления ордерами (см. описание клиентского терминала). Формирование торговыхприказов в программе происходит в соответствии с алгоритмом в результате исполненияторговых функций. Нигде в других местах (ни в клиентском терминале, ни на сервере)торговые приказы самопроизвольно не формируются.
Если через некотороевремя цена изменится, можно повторить попытку удаления ордера, снова запустив скриптна исполнение. Далее управление в исполняемой программе будет передано оператору цикла while (блок6-10). В блоке 6-7 выполняется проверка наличия найденных рыночных ордеров.
Первая система будет называться StopOrder и торговать на пробой уровней ZigZag’a. Соответственно, когда уровни сформируются, у нас появятся ордера Buy Stop и Sell Stop. В MQL такой тип заявки именуется как OP_BUYSTOP и OP_SELLSTOP.
Вы также можете создавать более сложные процедуры обработки ошибок, которые предоставляют настраиваемые сообщения об ошибках на основе кода ошибки, или выполнять другие действия. Затем мы распечатаем предупреждение на экране пользователя с помощью встроенной функции Alert(). Предупреждение будет содержать код ошибки, описание ошибки и краткое описание операции, которую мы только что попытались выполнить. Таким образом, вы будете точно знать, в каком разделе вашей программы возникла ошибка. Нам нужно сохранить возвращаемое значение GetLastError() в 3 совета как читать книги по саморазвитию с пользой переменной, потому что после вызова GetLastError() код ошибки будет очищен, а следующий вызов GetLastError() вернет 0. Мы объявим глобальную переменную с именем ErrorCode и используем ее для хранения значения GetLastError().
Print() печатает содержимое аргумента функции в журнал экспертов. Журнал экспертов можно просмотреть на вкладке «Эксперты» в окне «Терминал» или на вкладке «Журнал» в окне «Тестер», если вы используете тестер стратегий. AccountEquity() — это MQL-функция, которая возвращает текущий баланс счета. Мы делим EquityPercent на 100, чтобы получить дробное значение (0,02). Затем мы умножаем его на AccountEquity(), чтобы вычислить сумму используемого капитала. 2% от долларов — это 200 долларов, и они будут храниться в переменной RiskAmount.
Используемый ордер зависит от направления торговли, цены входа и текущей цены. Актуален он и для выставления параметров тейк-профита и стоп-лосса для каждой сделки. Удобен в работе «Трейлинг-стоп универсальный», который за несколько секунд выполняет действия с пассивный доход от акций заданными параметрами (тейк-профит, стоп-лосс, перестановка в ноль или трейлинг-стоп). Клиентский терминал осуществляет принятое решение (один из двух вариантов). Мы проверяем возможные ошибки, проверяя вывод таких функций, как OrderSend(), OrderModify() и OrderClose(). Если функция не завершилась успешно, функция вернет -1 для OrderSend() или false для OrderModify() и OrderClose().
В блоке 7-8, в зависимости от типа ордера вычисляется цена закрытия – для ордеров Buyэто значение Bid, а для ордеров Sell – Ask (см. Требования и ограничения торговых операций). Если в качестве параметров функции передать неизмененные значения, то в этом случаебудет сгенерирована ошибка 1 (ERR_NO_RESULT). На некоторых торговых серверах можетбыть установлен запрет на применение срока истечения отложенных ордеров. В этомслучае при попытке задать ненулевое значение в параметре expiration будет сгенерированаошибка 147 (ERR_TRADE_EXPIRATION_DENIED).
Dolar | 38,7510 | % 0.36 |
Euro | 43,7642 | % 0.46 |
Sterlin | 51,6967 | % 0.56 |
,00 | % 0.00 | |
,00 | % 0.00 | |
Çeyrek | 6.802,00 | % 0,62 |
G. Altın | 4.162,45 | % 1,44 |
BIST 100 | % | |
% 0.00 | ||
B. Cash | ,00 | % 0.00 |