tralingstop_v3.mq4
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «tralingstop_v3.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Данный продукт представляет собой торговый советник для платформы MetaTrader 4, написанный на языке MQL4. Основное назначение — автоматическая корректировка уровней стоп-лосса на открытых ордерах в соответствии с расчётными значениями, полученными на основе данных ценового графика.
Советник вычисляет два уровня: нижний (для ордеров на покупку) и верхний (для ордеров на продажу), используя минимальные и максимальные цены за заданное количество баров с последующим смещением на указанное число пунктов. Также учитывается текущий спред.
При обнаружении подходящих условий советник вызывает функцию OrderModify для изменения стоп-лосса у соответствующих ордеров. Текущие рассчитанные значения отображаются на графике через функцию Comment, а при модификации ордеров отправляются уведомления через функцию Alert.
Настройки программы
| Настройка | Описание |
|---|---|
| BarsNum | Количество баров, используемых для расчёта минимальной и максимальной цены при определении уровней стоп-лосса. |
| PipDistance | Смещение в пунктах, добавляемое к рассчитанным ценовым уровням для формирования конечных значений стоп-лосса. |
Поиск по коду файла
extern int BarsNum = 5;
extern int PipDistance = 1;
double LTS, STS, Spread;
int start() {
// код доступен только после оплаты
}
int count = 0;
Spread = MarketInfo(Symbol(), MODE_SPREAD) * Point;
LTS = NormalizeDouble(Low[Lowest(NULL, 0, MODE_LOW, BarsNum, 1)] - (PipDistance * Point), Digits);
STS = NormalizeDouble(High[Highest(NULL, 0, MODE_HIGH, BarsNum, 1)] + Spread + (PipDistance * Point), Digits);
Comment("LTS: ", LTS, " - STS: ", STS);
if (OrdersTotal() != 0) {
while (count < OrdersTotal()) {
OrderSelect(count, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol() == Symbol()) {
if (OrderType() == OP_BUY && (LTS > OrderStopLoss() || OrderStopLoss() == 0)) {
OrderModify(OrderTicket(), 0, LTS, 0, 0, Blue);
Alert("OP_BUY Error: ", GetLastError(), " - ", LTS, " - ", OrderTicket());
}
Показано первые 50% кода (символов: 1230)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.