ea_price_action by @amazing_owner
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «ea_price_action by @amazing_owner.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
ea_price_action by @amazing_owner — торговый советник для MetaTrader 4, написанный на MQL4. Советник работает по символу текущего графика, использует заданный магический номер для идентификации своих ордеров и управляет торговлей в разрешённом временном диапазоне часов. В коде предусмотрены настройки включения повторной торговли и ограничения числа циклов, а также параметры объёма, стоп-лосса, тейк-профита, дистанции и множителя для управления серией ордеров.
Советник открывает рыночные ордера BUY и SELL, а также поддерживает отложенные ордера BUYLIMIT, BUYSTOP, SELLLIMIT и SELLSTOP через функцию отправки ордеров. Для уже открытых позиций выполняется модификация стоп-лосса и тейк-профита с учётом средней цены и заданных значений. Объём следующего ордера рассчитывается в зависимости от выбранного режима: фиксированный лот, умножение на множитель или учёт результата последней закрытой сделки.
В советнике реализована информационная панель на графике, отображающая данные счёта и торговую статистику. Также присутствует проверка доступности торговли и режима тестирования. Все входные параметры задаются через extern-переменные и позволяют настраивать работу советника без изменения кода.
Настройки программы
| Настройка | Описание |
|---|---|
| EA_Name | Имя советника — Название советника, отображаемое в информационной панели. |
| Use_TradeAgain | Пояснение к повторной торговле — Пояснение к параметру TradeAgain: TRUE — советник торгует снова, FALSE — советник выключается. |
| TradeAgain | Повторная торговля — Разрешает советнику повторно открывать сделки после завершения цикла. |
| Use_Loop | Пояснение к циклам — Пояснение к параметру Loop: например, 10 означает 10 циклов торговли. |
| Loop | Количество циклов — Максимальное количество повторных торговых циклов. |
| StartTrade | Час начала торговли — Час начала торговли. |
| EndTrade | Час окончания торговли — Час окончания торговли (не включая указанный час). |
| Use_DbLots | Пояснение к режиму лота — Пояснение к параметру DbLots: 1 — использовать множитель лота, 2 — использовать фиксированный лот. |
| DbLots | Режим расчёта лота — Режим расчёта объёма: 1 — использовать множитель лота, 2 — использовать фиксированный лот. |
| Lots | Объём лота — Базовый объём лота для торговых операций. |
| SL | Стоп-лосс — Размер стоп-лосса в пунктах. |
| TP | Тейк-профит — Размер тейк-профита в пунктах. |
| Distance | Дистанция — Расстояние в пунктах для дополнительных условий по цене. |
| Multiplier | Множитель лота — Коэффициент умножения объёма лота для последующих ордеров. |
| MaxLevel | Максимум уровней — Максимальное количество уровней (ордеров) в серии. |
| LotsDecimal | Точность лота — Количество знаков после запятой при нормализации объёма лота. |
| MagicNumber | Магический номер — Уникальный идентификатор ордеров советника. |
| EA_Comment | Комментарий советника — Текст комментария, добавляемый к торговым ордерам советника. |
| MoneyPerLot | Деньги на лот — Значение денежного расчёта на один лот, используемое в информационной панели. |
Поиск по коду файла
#property version "1.0"
extern string EA_Name = "EA HOKKYDJONG";
extern string Use_TradeAgain = "If => TRUE,EA will trade again,If => FALSE => EA will Off";
extern bool TradeAgain = TRUE;
extern string Use_Loop = "Example = 10,EA will trader for 10 Laps";
extern int Loop = 10000;
int Gi_108;
extern int StartTrade = 0;
extern int EndTrade = 24;
extern string Use_DbLots = "If = 1-> Use Multiplier Lot, If = 2-> Use Fixed Lot";
extern int DbLots = 1;
extern double Lots = 0.01;
extern double SL = 0.0;
extern double TP = 4.0;
extern double Distance = 3.0;
extern double Multiplier = 1.6;
extern int MaxLevel = 20;
double Gd_176 = 3.0;
extern double LotsDecimal = 2.0;
extern int MagicNumber = 163991;
extern string EA_Comment = "ea_hokkydjong";
double Gd_unused_204 = 0.0;
double G_price_212;
double G_price_220;
double G_bid_228;
double G_ask_236;
double Gd_244;
double Gd_252;
bool Gi_260;
datetime G_time_264 = 0;
int Gi_268 = 0;
double Gd_272;
int G_pos_280 = 0;
int Gi_284;
double Gd_288 = 0.0;
bool Gi_296 = FALSE;
bool Gi_300 = FALSE;
bool Gi_304 = FALSE;
int Gi_308;
bool Gi_312 = FALSE;
double Gd_316;
int Gi_324 = 65535;
int Gi_328 = 65535;
int Gi_332 = 16776960;
double Gd_336;
extern double MoneyPerLot = 1.7;
int init() {
// код доступен только после оплаты
}
int deinit() {
ObjectsDeleteAll();
return (0);
}
int start() {
// код доступен только после оплаты
}
double f0_4(int A_cmd_0) {
double lots_4;
int datetime_12;
switch (DbLots) {
case 0:
lots_4 = Lots;
break;
case 1:
lots_4 = NormalizeDouble(Lots * MathPow(Multiplier, Gi_268), LotsDecimal);
break;
case 2:
datetime_12 = 0;
lots_4 = Lots;
for (int pos_20 = OrdersHistoryTotal() - 1; pos_20 >= 0; pos_20--) {
if (OrderSelect(pos_20, SELECT_BY_POS, MODE_HISTORY)) {
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) {
if (datetime_12 < OrderCloseTime()) {
datetime_12 = OrderCloseTime();
if (OrderProfit() < 0.0) {
lots_4 = NormalizeDouble(OrderLots() * Multiplier, LotsDecimal);
continue;
}
lots_4 = Lots;
}
}
} else return (-3);
}
}
if (AccountFreeMarginCheck(Symbol(), A_cmd_0, lots_4) <= 0.0) return (-1);
if (GetLastError() == 134/* NOT_ENOUGH_MONEY */) return (-2);
return (lots_4);
}
int f0_12() {
int count_0 = 0;
for (int pos_4 = OrdersTotal() - 1; pos_4 >= 0; pos_4--) {
if (OrderSelect(pos_4, SELECT_BY_POS, MODE_TRADES))
if (OrderSymbol() != Symbol() || OrderMagicNumber() != MagicNumber) continue;
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber)
if (OrderType() == OP_SELL || OrderType() == OP_BUY) count_0++;
}
return (count_0);
}
int f0_5(int Ai_0, double A_lots_4, double A_price_12, int A_slippage_20, double Ad_24, int Ai_unused_32, int Ai_36, string A_comment_40, int A_magic_48, int A_datetime_52, color A_color_56) {
intПоказано первые 50% кода (символов: 12980)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.