tight_trailing_stops(manual).mq4
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «tight_trailing_stops(manual).mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Данный файл представляет собой торговый советник для платформы MetaTrader 4, написанный на языке MQL4. Советник предназначен для управления стоп-лоссами открытых позиций: он поддерживает два режима — трейлинговый стоп и фиксацию прибыли (tight stop).
В режиме трейлингового стопа советник отслеживает движение цены и сдвигает уровень стоп-лосса вслед за позицией с заданным шагом. При развороте цены в сторону открытия позиции ордер автоматически закрывается. В режиме tight stop позиции закрываются, когда неуправляемая прибыль достигает заданного порога в пипсах.
Советник идентифицирует свои ордера по магическому номеру и не позволяет отслеживать более одного ордера одновременно на одном символе. Все параметры работы доступны как внешние настройки, которые можно изменить перед запуском.
Настройки программы
| Настройка | Описание |
|---|---|
| UseTightStop | Включить tight stop — Логический переключатель, включающий или выключающий режим фиксации прибыли (tight stop) для открытых позиций. |
| ScalpPips | Пипсы фиксации прибыли — Целочисленный параметр, задающий порог прибытия в пипсах для автоматического закрытия позиции в режиме фиксации прибыли (tight stop). |
| UseTrailing | Включить трейлинг — Логический переключатель, включающий или выключающий режим трейлингового стопа для открытых позиций. |
| TrailingAct | Активация трейлинга — Числовой параметр, определяющий расстояние от цены открытия позиции, при превышении которого активируется трейлинговый стоп. |
| TrailingStep | Шаг трейлингового стопа — Числовой параметр, задающий расстояние в точках для сдвига уровня стоп-лосса при движении цены в пользу позиции. |
Поиск по коду файла
#define OrderID 1928378
extern bool UseTightStop=false;
extern int ScalpPips=3;
extern bool UseTrailing = false;
extern double TrailingAct = 6;
extern double TrailingStep = 3;
int TrailPrice;
void TrailingPositions() {
for (int i=0; i<OrdersTotal(); i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
if (OrderSymbol()==Symbol() ) {
if (OrderType()==OP_SELL) {
if (OrderOpenPrice()-Ask>TrailingAct*Point && TrailPrice ==0) {
TrailPrice=Ask+TrailingStep*Point;
Print("TRAIL PRICE SET: ",TrailPrice);
if(TrailingStep > 8){
ModifyStopLoss(TrailPrice);
}
}
if (TrailPrice!=0 && Ask+TrailingStep*Point < TrailPrice ){
TrailPrice=Ask-TrailingStep*Point;
Print("TRAIL PRICE MODIFIED: ",TrailPrice);
if(TrailingStep > 8){
ModifyStopLoss(TrailPrice);
}
}
if (TrailPrice != 0 && Ask >= TrailPrice ){
CloseOrder(2);
}
}
if (OrderType()==OP_BUY) {
if (Bid-OrderOpenPrice() > TrailingAct*Point && TrailPrice ==0) {
TrailPrice=Bid-TrailingStep*Point;
Print("TRAIL PRICE MODIFIED: ",TrailPrice);
if(TrailingStep > 8){
ModifyStopLoss(TrailPrice);
}
}
if (TrailPrice!= 0 && Bid-TrailingStep*Point > TrailPrice ){
TrailPrice=Bid-TrailingStep*Point;
Print("TRAIL PRICE MODIFIED: ",TrailPrice);
if(TrailingStep > 8){
ModifyStopLoss(TrailPrice);
}
}
if (TrailPrice != 0 && Bid <= TrailPrice ){
CloseOrder(1);
}
}
}
}
}
}
void CloseOrder(int ord){
for(int i=0;i<OrdersTotal();i++){
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if (OrderType()==OP_BUYПоказано первые 50% кода (символов: 2598)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.