bismillah hedge.mq4
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «bismillah hedge.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Данный продукт представляет собой торгового советника для платформы MetaTrader 4, реализующего стратегию хеджирования. Советник размещает отложенные ордера типа Buy Stop и Sell Stop на нескольких уровнях цен, формируя сетку сделок в обоих направлениях.
Советник отслеживает состояние открытых позиций и при достижении определённых условий завершает торговую сессию, удаляя или закрывая ордера. Вся информация о текущих параметрах торговли отображается прямо на графике в виде текстовых меток.
Для идентификации своих ордеров советник использует фиксированный магический номер. Параметры торговли задаются через внешние настройки, а проверка минимального лота и стоп-уровня выполняется автоматически на основе данных рынка.
Настройки программы
| Настройка | Описание |
|---|---|
| EAName | Имя советника — Текстовый параметр, задающий имя торгового советника, используемое в настройках и идентификации. |
| pips | Шаг в пунктах — Целочисленный параметр, задающий шаг в пунктах между уровнями размещения отложенных ордеров. |
| lots | Объём лота — Числовой параметр, задающий объём лота для каждого размещаемого ордера. Если значение меньше минимально допустимого лота, оно автоматически корректируется до минимума. |
| FixedSpread | Фиксированный спред — Целочисленный параметр, задающий фиксированное значение спреда, используемое при расчёте ценовых уровней для отложенных ордеров. |
| NbLevels | Количество уровней — Целочисленный параметр, определяющий количество ценовых уровней, на которых размещаются отложенные ордера хеджирования. |
| ContinueTrading | Продолжение торговли — Переключатель, определяющий, следует ли продолжать торговлю после завершения сессии. При значении FALSE торговля прекращается после выполнения условий завершения. |
Поиск по коду файла
extern string EAName = "hedge close";
extern int pips = 100;
extern double lots = 0.01;
extern int FixedSpread = 3;
extern int NbLevels = 10;
extern bool ContinueTrading = TRUE;
bool gi_108 = FALSE;
bool gi_112 = FALSE;
int gi_116 = 0;
string gs_unused_120 = " Setting Tampilan EA";
int g_corner_128 = 1;
int g_color_132 = Green;
int g_fontsize_136 = 10;
string gs_calibri_140 = "Calibri";
int gi_148 = 15;
int gi_152 = 2;
bool gi_156 = TRUE;
bool gi_160 = TRUE;
bool gi_unused_164 = TRUE;
int g_magic_168 = 123321;
int gi_172 = 0;
int gi_unused_176 = 0;
int gi_unused_180 = 0;
int gi_unused_184 = 10;
int init() {
// код доступен только после оплаты
}
int deinit() {
ObjectDelete("ObjLots_Label");
ObjectDelete("ObjBuyGoal_Label");
ObjectDelete("ObjBuyGoalProfit_Label");
ObjectDelete("ObjSellGoal_Label");
ObjectDelete("ObjSellGoalProfit_Label");
ObjectDelete("ObjLevels_Label");
ObjectDelete("ObjPairTotal_Label");
ObjectDelete("ObjInitialprice_Label");
ObjectDelete("ObjSellGoalStop_Label");
ObjectDelete("ObjBuyGoalStop_Label");
ObjectDelete("ObjContinueTrading_Label");
return (0);
}
int start() {
// код доступен только после оплаты
}
int l_ticket_0 = 0;
int l_pos_4 = 0;
int li_unused_8 = 0;
int li_unused_12 = 0;
int l_count_16 = 0;
int li_20 = 0;
int li_24 = 0;
double l_price_28 = 0;
double l_price_36 = 0;
double l_price_44 = 0;
double l_price_52 = 0;
double ld_60 = FixedSpread;
double ld_68 = 0;
if (pips < MarketInfo(Symbol(), MODE_STOPLEVEL) + ld_60) pips = MarketInfo(Symbol(), MODE_STOPLEVEL) + 1.0 + ld_60;
if (lots < MarketInfo(Symbol(), MODE_MINLOT)) lots = MarketInfo(Symbol(), MODE_MINLOT);
for (l_pos_4 = 0; l_pos_4 < OrdersTotal(); l_pos_4++) {
OrderSelect(l_pos_4, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol() == Symbol() && OrderMagicNumber() == g_magic_168) {
l_count_16++;
if (!ld_68) ld_68 = StrToDouble(OrderComment());
}
}
if (gi_108 == TRUE) {
KillSession();
return (0);
}
if (gi_156 == TRUE && l_count_16 >= 1) {
EndSession();
return (0);
}
if (l_count_16 == 0 && gi_160 && !gi_112 || (gi_112 && Hour() == gi_116)) {
gi_156 = FALSE;
ld_68 = Ask;
l_price_28 = ld_68 + (NbLevels + 1) * pips * Point;
l_price_44 = ld_68 - (NbLevels + 1) * pips * Point;
l_price_36 = l_price_44 - ld_60 * Point;
l_price_52 = l_price_28 + ld_60 * Point;
for (l_pos_4 = 1; l_pos_4 <= NbLevels; l_pos_4++) {
OrderSend(Symbol(), OP_BUYSTOP, lots, ld_68 + l_pos_4 * pips * Point, 2, l_price_36, l_price_28, DoubleToStr(ld_68, MarketInfo(Symbol(), MODE_DIGITS)), g_magic_168, 0);
OrderSend(Symbol(), OP_SELLSTOP, lots, ld_68 - l_pos_4 * pips * Point, 2, l_price_52, l_price_44, DoubleToStr(ld_68, MarketInfo(Symbol(), MODE_DIGITS)), g_magic_168, 0);
}
} else {
l_price_28 = ld_68 + (NbLevels + 1) * pips * Point;
l_price_44 = ld_68 - (NbLevels + 1) * pips * Point;
l_price_36 = l_price_44 - ld_60 * Point;
l_price_52 = l_price_28 + ld_60 * Point;
if (Bid >= l_price_28) {
gi_156 = TRUE;
EndSession();
return (0);
}
if (Ask <= l_price_44) {
gi_156 = TRUE;
EndSession();
return (0);
}
if (gi_156 == TRUE) {
EndSession();
return (0);
}
li_20 = CheckProfits(lots, 0, 0, ld_68);
li_24 = CheckProfits(lots, 1, 0, ld_68);
if (li_20 < gi_172) {
for (l_pos_4 = NbLevels; l_pos_4 >= 1; l_pos_4--) {
if (Ask <= ld_68 + (l_pos_4 * pips - MarketInfo(Symbol(), MODE_STOPLEVEL)) * Point) l_ticket_0 = OrderSend(Symbol(), OP_BUYSTOP, l_pos_4 * lots, ld_68 + l_pos_4 * pips * Point, 2, l_price_36, l_price_28, DoubleToStr(ld_68, MarketInfo(Symbol(), MODE_DIGITS)), g_magic_168, 0);
if (l_ticket_0 > 0) li_20 += lots * (l_price_28 - ld_68 - l_pos_4 * pips * Point) / Point;
}
}
if (li_24 < gi_172) {
for (l_pos_4 = NbLevels; l_pos_4 >= 1; l_pos_4--) {
if (Bid >= ld_68 - (l_pos_4 * pips - MarketInfo(Symbol(), MODE_STOPLEVEL)) * Point) l_ticket_0 = OrderSend(Symbol(), OP_SELLSTOP, l_pos_4 * lots, ld_68 - l_pos_4 * pips * Point, 2, l_price_52, l_price_44, DoubleToStr(ld_68, MarketInfo(Symbol(), MODE_DIGITS)), g_magic_168, 0);
if (l_ticket_0 > 0) li_24 += lots * (ld_68 - l_price_44 - l_pos_4 * pips * Point) / Point;
}
}
}
string l_dbl2str_76 = DoubleToStr(lots, 2);
string ls_unused_84 = pips;
string ls_92 = NbLevels;
string l_dbl2str_100 = DoubleToStr(l_price_28, Digits);
string ls_108 = li_20;
string l_dbl2str_116 = DoubleToStr(l_price_44, Digits);
string ls_124 = li_24;
string ls_132 = l_count_16;
string l_dbl2str_140 = DoubleToStr(ld_68, Digits);
string l_dbl2str_148 = DoubleToStr(l_price_36, Digits);
string l_dbl2str_156 = DoubleToStr(l_price_52, Digits);
string l_bool_164 = ContinueTrading;
int l_x_172 = gi_152;
int l_y_176 = gi_148;
int li_180 = 15;
int l_y_184 = l_y_176 + li_180;
int l_y_188 = l_y_184 + li_180 + 10;
int l_y_192 = l_y_188 + li_180;
int l_y_196 = l_y_192 + li_180;
int l_y_200 = l_y_196 + li_180 + 10;
int l_y_204 = l_y_200 + li_180;
int l_y_208 = l_y_204 + li_180 + 10;
int li_212 = l_y_208 + li_180;
int li_216 = li_212 + li_180;
ObjectCreate("ObjContinueTrading_Label", OBJ_LABEL, 0, 0, 0);
ObjectSetText("ObjContinueTrading_Label", "Continuous Trade " + l_bool_164, g_fontsize_136, gs_calibri_140, g_color_132);
ObjectSet("ObjContinueTrading_Label", OBJPROP_CORNER, g_corner_128);
ObjectSet("ObjContinueTrading_Label", OBJPROP_XDISTANCE, l_x_172);
ObjectSet("ObjContinueTrading_Label", OBJPROP_YDISTANCE, l_y_176);
ObjectCreate("ObjLots_Label", OBJ_LABEL, 0, 0, 0);
ObjectSetText("ObjLots_Label", "Lots " + l_dbl2str_76, g_fontsize_136, gs_calibri_140, g_color_132);
ObjectSet("ObjLots_Label", OBJPROP_CORNER, g_corner_128);
ObjectSet("ObjLots_Label", OBJPROP_XDISTANCE, l_x_172);
ObjectSet("ObjLots_Label", OBJPROP_YDISTANCE, l_y_184);
ObjectCreate("ObjLevels_Label", OBJ_LABEL, 0, 0, 0);
ObjectSetText("ObjLevels_Label", "Levels " + ls_92, g_fontsize_136, gs_calibri_140, g_color_132);
ObjectSet("ObjLevels_Label", OBJPROP_CORNER, g_corner_128);
ObjectSet("ObjLevels_Label", OBJPROP_XDISTANCE, l_x_172 + 60);
ObjectSet("ObjLevels_Label", OBJPROP_YDISTANCE, l_y_184);
ObjectCreate("ObjInitialprice_Label", OBJ_LABEL, 0, Показано первые 50% кода (символов: 10386)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.