TrendMeLeaveMe
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «trendmeleaveme.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
TrendMeLeaveMe — торговый советник для MetaTrader 4, созданный Eng. Waddah Attar. Советник работает с трендовыми объектами на графике, смещая их границы на заданное расстояние в пунктах и формируя зону между верхней и нижней линиями.
На основе этой зоны советник открывает отложенные ордера BUYSTOP и SELLSTOP при достижении ценой определённых условий: для покупки — когда Ask находится в пределах зоны, для продажи — когда Bid находится в пределах зоны. Если соответствующий ордер уже существует, советник проверяет его цену и при необходимости модифицирует.
Все параметры торговли (объём, стоп-лосс, тейк-профит, шаги смещения) задаются отдельно для покупочных и продажных ордеров через настраиваемые переменные. Советник использует встроенные торговые функции MQL4 для отправки и модификации ордеров.
Настройки программы
| Настройка | Описание |
|---|---|
| BuyStop_Trend_Info | Информация BUYSTOP — Информационный текстовый параметр для настройки BUYSTOP. |
| BuyStop_TrendName | Имя тренда BUYSTOP — Имя трендового объекта на графике, используемого для определения зоны покупки. |
| BuyStop_TakeProfit | Тейк-профит BUYSTOP — Тейк-профит для BUYSTOP, задаётся в пунктах от верхней границы зоны. |
| BuyStop_StopLoss | Стоп-лосс BUYSTOP — Стоп-лосс для BUYSTOP, задаётся в пунктах от верхней границы зоны. |
| BuyStop_Lot | Объём BUYSTOP — Объём лота для отложенного ордера BUYSTOP. |
| BuyStop_StepUpper | Шаг верхней границы BUYSTOP — Шаг смещения верхней границы трендового объекта для зоны покупки, в пунктах. |
| BuyStop_StepLower | Шаг нижней границы BUYSTOP — Шаг смещения нижней границы трендового объекта для зоны покупки, в пунктах. |
| SellStop_Trend_Info | Информация SELLSTOP — Информационный текстовый параметр для настройки SELLSTOP. |
| SellStop_TrendName | Имя тренда SELLSTOP — Имя трендового объекта на графике, используемого для определения зоны продажи. |
| SellStop_TakeProfit | Тейк-профит SELLSTOP — Тейк-профит для SELLSTOP, задаётся в пунктах от нижней границы зоны. |
| SellStop_StopLoss | Стоп-лосс SELLSTOP — Стоп-лосс для SELLSTOP, задаётся в пунктах от нижней границы зоны. |
| SellStop_Lot | Объём SELLSTOP — Объём лота для отложенного ордера SELLSTOP. |
| SellStop_StepUpper | Шаг верхней границы SELLSTOP — Шаг смещения верхней границы трендового объекта для зоны продажи, в пунктах. |
| SellStop_StepLower | Шаг нижней границы SELLSTOP — Шаг смещения нижней границы трендового объекта для зоны продажи, в пунктах. |
Поиск по коду файла
extern string BuyStop_Trend_Info = "_______________________";
extern string BuyStop_TrendName = "buystop";
extern int BuyStop_TakeProfit = 50;
extern int BuyStop_StopLoss = 30;
extern double BuyStop_Lot = 0.1;
extern int BuyStop_StepUpper = 10;
extern int BuyStop_StepLower = 50;
extern string SellStop_Trend_Info = "_______________________";
extern string SellStop_TrendName = "sellstop";
extern int SellStop_TakeProfit = 50;
extern int SellStop_StopLoss = 30;
extern double SellStop_Lot = 0.1;
extern int SellStop_StepUpper = 50;
extern int SellStop_StepLower = 10;
int MagicBuyStop = 1101;
int MagicSellStop = 1102;
int glbOrderType;
int glbOrderTicket;
int init()
{
// код доступен только после оплаты
}
int deinit()
{
Comment("");
return(0);
}
int start()
{
// код доступен только после оплаты
}
double vH, vL, vM, sl, tp;
if(ObjectFind(BuyStop_TrendName) == 0)
{
SetObject("High" + BuyStop_TrendName,
ObjectGet(BuyStop_TrendName, OBJPROP_TIME1),
ObjectGet(BuyStop_TrendName, OBJPROP_PRICE1) + BuyStop_StepUpper*Point,
ObjectGet(BuyStop_TrendName, OBJPROP_TIME2),
ObjectGet(BuyStop_TrendName, OBJPROP_PRICE2) + BuyStop_StepUpper*Point,
ObjectGet(BuyStop_TrendName, OBJPROP_COLOR));
SetObject("Low" + BuyStop_TrendName,
ObjectGet(BuyStop_TrendName, OBJPROP_TIME1),
ObjectGet(BuyStop_TrendName, OBJPROP_PRICE1) - BuyStop_StepLower*Point,
ObjectGet(BuyStop_TrendName, OBJPROP_TIME2),
ObjectGet(BuyStop_TrendName, OBJPROP_PRICE2) - BuyStop_StepLower*Point,
ObjectGet(BuyStop_TrendName, OBJPROP_COLOR));
vH = NormalizeDouble(ObjectGetValueByShift("High"+BuyStop_TrendName,0),Digits);
vM = NormalizeDouble(ObjectGetValueByShift(BuyStop_TrendName,0),Digits);
vL = NormalizeDouble(ObjectGetValueByShift("Low"+BuyStop_TrendName,0),Digits);
sl = vH - BuyStop_StopLoss*Point;
tp = vH + BuyStop_TakeProfit*Point;
if(Ask <= vM && Ask >= vL && OrderFind(MagicBuyStop) == false)
if(OrderSend(Symbol(), OP_BUYSTOP, BuyStop_Lot, vH, 3, sl, tp,
"", MagicBuyStop, 0, Green) < 0)
Print("Err (", GetLastError(), ") Open BuyStop Price= ", vH, " SL= ",
sl," TP= ", tp);
if(Ask <= vM && Ask >= vL && OrderFind(MagicBuyStop) == true &&
glbOrderType == OP_BUYSTOP)
{
OrderSelect(glbOrderTicket, SELECT_BY_TICKET, MODE_TRADES);
if(vH != OrderOpenPrice())
if(OrderModify(glbOrderTicket, vH, sl, tp, 0, Green) == false)
Print("Err (", GetLastError(), ") Modify BuyStop Price= ", vH,
" SL= ", sl, " TP= ", tp);
}
}
if(ObjectFind(SellStop_TrendName) == 0)
{
SetObject("High" + SellStop_TrendName,
Показано первые 50% кода (символов: 4301)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.