easervant12_avg+..mq4
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «easervant12_avg+..mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Данный продукт представляет собой советник (Expert Advisor) для платформы MetaTrader 4, написанный на языке MQL4. Советник анализирует направление дневного тренда с помощью индикатора RSI и отображает текущую тенденцию (рост, падение, боковик) в виде информационных меток на графике.
Советник поддерживает управление торговыми позициями: открытие ордеров, установку стоп-лосса и тейк-профита, а также модификацию существующих позиций. Включён режим усреднения, при котором при достижении определённого ценового диапазона открываются дополнительные позиции с увеличенным лотом.
Также реализована функция трейлинга стоп-лосса для фиксации прибыли при благоприятном движении цены. При достижении совокупной прибыли, превышающей заданный процент от баланса счёта, советник закрывает все открытые позиции. Адаптирован для работы как с 4-значными, так и с 2/3/5-значными котировками.
Настройки программы
| Настройка | Описание |
|---|---|
| TakeProfit | Тейк-профит — Уровень тейк-профита в пунктах, устанавливаемый при открытии новых позиций. |
| StopLoss | Стоп-лосс — Уровень стоп-лосса в пунктах, устанавливаемый при открытии новых позиций. |
| LockProfit | Уровень фиксации прибыли для трейлинга — Уровень прибыли в пунктах, при достижении которого активируется трейлинг стоп-лосса для фиксации прибыли. |
| Averaging | Усреднение — Включает или выключает режим усреднения позиции. При активном режиме советник открывает дополнительные позиции с увеличенным лотом при движении цены против текущей позиции. |
| Lot_Multiplier | Множитель лота — Множитель, определяющий увеличение лота при каждом последующем усреднении позиции. |
| Range | Ценовой диапазон для усреднения — Ценовой диапазон в пунктах, при достижении которого открываются новые усреднённые позиции. |
| Level | Уровень лимита позиций — Максимальное количество открытых позиций, при котором советник продолжает открывать новые усреднённые ордера. |
| Bila false maka TP_Money_Percents juga tidak berfungsi (Modify_TPSL) | Изменение ТП/СЛ — Включает автоматическое изменение тейк-профита и стоп-лосса. При отключении данной настройки параметр процента прибыли TP_Money_Percents также не работает. |
| TP_Money_Percents | Процент прибыли для закрытия — Процент от баланса счёта. При достижении совокупной прибылью данного порога советник закрывает все открытые позиции. Работает только при активной настройке Modify_TPSL. |
Поиск по коду файла
extern int TakeProfit = 4;
extern int StopLoss = 10;
extern int LockProfit = 100;
extern bool Averaging = true;
extern double Lot_Multiplier = 1.0;
extern double Range = 4;
extern int Level = 100;
extern bool Modify_TPSL = false; //Bila false maka TP_Money_Percents juga tidak berfungsi
extern double TP_Money_Percents = 0.40;
string gsa_88[4];
int ticket=0;
int a=0;
int init() {
// код доступен только после оплаты
}
int deinit() {
ObjectDelete("ObjLabel1");
ObjectDelete("ObjLabel2");
ObjectDelete("ObjLabel3");
ObjectDelete("ObjLabel4");
return (0);
}
int start() {
// код доступен только после оплаты
}
double l_irsi_0 = iRSI(NULL, PERIOD_D1, 14, PRICE_CLOSE, 0);
int l_pos_8 = 0;
gsa_88[0] = "Dwi Malistyo - e*@dwim.web.id";
gsa_88[1] = "";
gsa_88[2] = "";
gsa_88[4] = "";
gsa_88[3] = "";
if (l_irsi_0 < 45.0) gsa_88[2] = "Daily Trend : Downtrend";
else {
if (l_irsi_0 > 55.0) gsa_88[4] = "Daily Trend : Uptrend";
else gsa_88[2] = "Daily Trend : Sideways";
}
ObjectCreate("ObjLabel1", OBJ_LABEL, 0, 0, 0);
ObjectSet("ObjLabel1", OBJPROP_CORNER, 1);
ObjectSet("ObjLabel1", OBJPROP_XDISTANCE, 10);
ObjectSet("ObjLabel1", OBJPROP_YDISTANCE, 15);
ObjectSetText("ObjLabel1", gsa_88[0], 7, "Arial", SteelBlue);
ObjectCreate("ObjLabel2", OBJ_LABEL, 0, 0, 0);
ObjectSet("ObjLabel2", OBJPROP_CORNER, 1);
ObjectSet("ObjLabel2", OBJPROP_XDISTANCE, 10);
ObjectSet("ObjLabel2", OBJPROP_YDISTANCE, 25);
ObjectSetText("ObjLabel2", gsa_88[1], 7, "Arial", SteelBlue);
ObjectCreate("ObjLabel3", OBJ_LABEL, 0, 0, 0);
ObjectSet("ObjLabel3", OBJPROP_CORNER, 1);
ObjectSet("ObjLabel3", OBJPROP_XDISTANCE, 10);
ObjectSet("ObjLabel3", OBJPROP_YDISTANCE, 35);
ObjectSetText("ObjLabel3", gsa_88[2], 7, "Arial", Red);
ObjectSetText("ObjLabel3", gsa_88[4], 7, "Arial", Lime);
ObjectCreate("ObjLabel4", OBJ_LABEL, 0, 0, 0);
ObjectSet("ObjLabel4", OBJPROP_CORNER, 1);
ObjectSet("ObjLabel4", OBJPROP_XDISTANCE, 10);
ObjectSet("ObjLabel4", OBJPROP_YDISTANCE, 45);
ObjectSetText("ObjLabel4", gsa_88[3], 7, "Arial", Yellow);
if (Digits == 4) {
for (l_pos_8 = 0; l_pos_8 < OrdersTotal(); l_pos_8++) {
OrderSelect(l_pos_8, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol() == Symbol()) {
if (OrderType() == OP_BUY) {
if (OrderStopLoss() == 0.0 && OrderTakeProfit() == 0.0) {
if (OrderModify(OrderTicket(), OrderOpenPrice(), Bid - StopLoss * Point, Ask + TakeProfit * Point, 0) == TRUE) gsa_88[3] = "Put SL and TP at trade BUY no: #" + OrderTicket();
else gsa_88[3] = "ERROR -- Put SL and TP at trade BUY no: #" + OrderTicket();
ObjectSet("ObjLabel4", OBJPROP_CORNER, 1);
ObjectSet("ObjLabel4", OBJPROP_XDISTANCE, 10);
ObjectSet("ObjLabel4", OBJPROP_YDISTANCE, 45);
ObjectSetText("ObjLabel4", gsa_88[3], 7, "Arial", Yellow);
} else {
if (Bid - OrderOpenPrice() > LockProfit * Point) {
if (OrderStopLoss() <= OrderOpenPrice()) {
if (OrderModify(OrderTicket(), OrderOpenPrice(), OrderOpenPrice() + 1.0 * Point, OrderTakeProfit(), 0) == TRUE) gsa_88[3] = "Modify SL at trade BUY no: #" + OrderTicket();
else gsa_88[3] = "ERROR -- Modifying SL at trade BUY no: #" + OrderTicket();
ObjectSet("ObjLabel4", OBJPROP_CORNER, 1);
ObjectSet("ObjLabel4", OBJPROP_XDISTANCE, 10);
ObjectSet("ObjLabel4", OBJPROP_YDISTANCE, 45);
ObjectSetText("ObjLabel4", gsa_88[3], 7, "Arial", Yellow);
} else {
if (Bid - OrderStopLoss() > LockProfit * Point) OrderModify(OrderTicket(), OrderOpenPrice(), Bid - LockProfit * Point, OrderTakeProfit(), 0);
gsa_88[3] = "Trailing SL trade no: #" + OrderTicket();
ObjectSet("ObjLabel4", OBJPROP_CORNER, 1);
ObjectSet("ObjLabel4", OBJPROP_XDISTANCE, 10);
ObjectSet("ObjLabel4", OBJPROP_YDISTANCE, 45);
ObjectSetText("ObjLabel4", gsa_88[3], 7, "Arial", Yellow);
}
}
}
} else {
if (OrderType() == OP_SELL) {
if (OrderStopLoss() == 0.0 && OrderTakeProfit() == 0.0) {
if (OrderModify(OrderTicket(), OrderOpenPrice(), Ask + StopLoss * Point, Bid - TakeProfit * Point, 0) == TRUE) gsa_88[3] = "Put SL and TP at trade SELL no: #" + OrderTicket();
else gsa_88[3] = "ERROR -- Put SL and TP at trade SELL no: #" + OrderTicket();
ObjectSet("ObjLabel4", OBJPROP_CORNER, 1);
ObjectSet("ObjLabel4", OBJPROP_XDISTANCE, 10);
ObjectSet("ObjLabel4", OBJPROP_YDISTANCE, 45);
ObjectSetText("ObjLabel4", gsa_88[3], 7, "Arial", Yellow);
} else {
if (OrderOpenPrice() - Ask > LockProfit * Point) {
if (OrderStopLoss() >= OrderOpenPrice()) {
if (OrderModify(OrderTicket(), OrderOpenPrice(), OrderOpenPrice() - 1.0 * Point, OrderTakeProfit(), 0) == TRUE) gsa_88[3] = "Modify SL at trade SELL no: #" + OrderTicket();
else gsa_88[3] = "ERROR -- Modifying SL at trade SELL no: #" + OrderTicket();
ObjectSet("ObjLabel4", OBJPROP_CORNER, 1);
ObjectSet("ObjLabel4", OBJPROP_XDISTANCE, 10);
ObjectSet("ObjLabel4", OBJPROP_YDISTANCE, 45);
ObjectSetText("ObjLabel4", gsa_88[3], 7, "Arial", Yellow);
} else {
if (OrderStopLoss() - Ask > LockProfit * Point) OrderModify(OrderTicket(), OrderOpenPrice(), Ask + LockProfit * Point, OrderTakeProfit(), 0);
gsa_88[3] = "Trailing SL at trade no: #" + OrderTicket();
ObjectSet("ObjLabel4", OBJPROP_CORNER, 1);
ObjectSet("ObjLabel4", OBJPROP_XDISTANCE, 10);
ObjectSet("ObjLabel4", OBJPROP_YDISTANCE, 45);
ObjectSetText("ObjLabel4", gsa_88[3], 7, "Arial", Yellow);
}
}
}
}
}
}
}
} else {
if (Digits == 2 || Digits == 3 || Digits == 5) {
for (l_pos_8 = 0; l_pos_8 < OrdersTotal(); l_pos_8++) {
OrderSelect(l_pos_8, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol() == Symbol()) {
if (OrderType() == OP_BUY) {
if (OrderStopLoss() == 0.0 && OrderTakeProfit() == 0.0) {
if (OrderModify(OrderTicket(), OrderOpenPrice(), Bid - 10.0 * (StopLoss * Point), Ask + 10.0 * (TakeProfit * Point), 0) Показано первые 50% кода (символов: 9591)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.