SWB with Pauls MACD
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «pauls macd ea checks re-entry and high tf.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Этот товар — торговый советник для MetaTrader 4, написанный на языке MQL4. Он предназначен для автоматической торговли на одном символе по сигналам индикатора MACD, с учётом старшего таймфрейма и дополнительных фильтров. Советник обрабатывает событие start (аналог OnTick в MQL4) и выполняет торговые операции через OrderSend. В коде реализованы функции управления ордерами, расчёта сигналов и закрытия позиций.\n\nСоветник поддерживает настраиваемые параметры: размер стартового лота, множитель лота, шаг увеличения, уровни фильтрации MACD, таймфрейм для старшего анализа, а также управление стоп-лоссом и тейк-профитом. Есть режим скрытой торговли (stealth_mode), при котором стоп-лосс и тейк-профит не выставляются на сервере, а также возможность торговли в пятницу и дневной целевой профит.\n\nЛогика входа основана на пересечении линий MACD на текущем и старшем таймфреймах с дополнительными условиями. При наличии убытка или достижении заданного профита в деньгах советник закрывает все ордера по заданному магическому номеру. Также предусмотрено усреднение позиций при движении цены против открытой сделки.\n\nВажно: советник не даёт гарантий прибыли и не является рекомендацией к торговле. Все параметры и поведение описаны на основе исходного кода, без раскрытия точных алгоритмов и формул.
Настройки программы
| Настройка | Описание |
|---|---|
| tp_in_money | Цель в деньгах — Целевая прибыль в валюте депозита, при достижении которой все ордера закрываются. |
| range | Диапазон усреднения — Расстояние в пунктах между ордерами в серии усреднения. |
| fastEMA | Быстрая EMA — Период быстрой экспоненциальной скользящей средней для расчёта MACD. |
| slowEMA | Медленная EMA — Период медленной экспоненциальной скользящей средней для расчёта MACD. |
| macdSMA | Период сигнальной SMA — Период сигнальной линии MACD. |
| UpperMACd_Filter | Верхний фильтр MACD — Верхний порог значения MACD для фильтрации сигналов на продажу. |
| LowerMACd_Filter | Нижний фильтр MACD — Нижний порог значения MACD для фильтрации сигналов на покупку. |
| Higher_timeframe | Старший таймфрейм — Таймфрейм в минутах для анализа MACD на старшем периоде. |
| start_lot | Стартовый лот — Начальный размер лота для первого ордера в серии. |
| lot_multiplier | Множитель лота — Если включено, лот каждого следующего ордера умножается на множитель; иначе используется приращение. |
| multiplier | Коэффициент умножения — Коэффициент умножения лота для последующих ордеров при включённом множителе. |
| increament | Приращение лота — Шаг увеличения лота для каждого последующего ордера в серии усреднения. |
| use_daily_target | Использовать дневную цель — Включает контроль дневной цели по прибыли; при её достижении торговля останавливается. |
| daily_target | Дневная цель — Целевая прибыль за день в валюте депозита, при достижении которой торговля приостанавливается. |
| EachTickMode | Режим каждого тика — Если включено, советник проверяет сигналы на каждом тике; иначе — только при появлении нового бара. |
| trade_in_fri | Торговля в пятницу — Разрешает или запрещает открытие новых сделок в пятницу. |
| magic | Магический номер — Уникальный идентификатор (магический номер) для ордеров, открываемых советником. |
| level | Уровень ордеров — Максимальное количество одновременно открытых ордеров в одной серии. |
| use_sl_and_tp | Использовать SL и TP — Если включено, ордера выставляются с указанными стоп-лоссом и тейк-профитом. |
| sl | Стоп-лосс — Размер стоп-лосса в пунктах от цены открытия ордера. |
| tp | Тейк-профит — Размер тейк-профита в пунктах от цены открытия ордера. |
| stealth_mode | Скрытый режим — Если включено, стоп-лосс и тейк-профит не выставляются на сервере, а управляются виртуально. |
Поиск по коду файла
#define buy -2
#define sell 2
extern double tp_in_money=1.0;
extern double range=40;
extern double fastEMA=10;
extern double slowEMA=20;
extern double macdSMA=7;
extern double UpperMACd_Filter=0.0010;
extern double LowerMACd_Filter=-0.0010;
extern double Higher_timeframe=1440;
extern double start_lot=0.01;
extern bool lot_multiplier=False;
extern double multiplier=2.0;
extern double increament=0.01;
extern bool use_daily_target=false;
extern double daily_target=100;
extern bool EachTickMode = false;
extern bool trade_in_fri=true;
extern int magic=1;
extern int level=10;
extern bool use_sl_and_tp=false;
extern double sl=60;
extern double tp=30;
extern bool stealth_mode=true;
double pt;
double minlot;
double stoplevel;
int prec=0;
int a=0;
int ticket=0;
int BarCount;
int Current;
bool TickCheck = False;
int init()
{
// код доступен только после оплаты
}
int deinit()
{
return(0);
}
int start()
{
// код доступен только после оплаты
}
if(use_daily_target && dailyprofit()>=daily_target)
{
Comment("\ndaily target achieved.");
return(0);
}
if(!trade_in_fri && DayOfWeek()==5 && total()==0)
{
Comment("\nstop trading in Friday.");
return(0);
}
if(total()==0 && a==0)
{
if(signal()==buy)
{
if(stealth_mode)
{
if(use_sl_and_tp) ticket=OrderSend(Symbol(),0,start_lot,Ask,3,Ask-sl*pt,Ask+tp*pt,"",magic,0,Blue);
else ticket=OrderSend(Symbol(),0,start_lot,Ask,3, 0, 0,"",magic,0,Blue);
}
else
{
if(use_sl_and_tp)
{
if(OrderSend(Symbol(),0,start_lot,Ask,3,Ask-sl*pt,Ask+tp*pt,"",magic,0,Blue)>0)
{
for(int i=1; i<level; i++)
{
if(lot_multiplier) ticket=OrderSend(Symbol(),2,NormalizeDouble(start_lot*MathPow(multiplier,i),prec),Ask,3,(Ask-(range*i)*pt)-sl*pt,(Ask-(range*i)*pt)+tp*pt,"",magic,0,Blue);
else ticket=OrderSend(Symbol(),2,NormalizeDouble(start_lot+increament*i,prec) ,Ask,3,(Ask-(range*i)*pt)-sl*pt,(Ask-(range*i)*pt)+tp*pt,"",magic,0,Blue);
}
}
}
else
{
if(OrderSend(Symbol(),0,start_lot,Ask,3,0,0,"",magic,0,Blue)>0)
{
for(i=1; i<level; i++)
{
if(lot_multiplier && signal()==buy) ticket=OrderSend(Symbol(),2,NormalizeDouble(start_lot*MathPow(multiplier,i),prec),Ask,3,0,0,"",magic,0,Blue);
else if (signal()==buy) ticket=OrderSend(Symbol(),2,NormalizeDouble(start_lot+increament*i,prec) ,Ask,3,0,0,"",magic,0,Blue);
}
}
}
}
}
if(signal()==sell)
{
if(stealth_mode)
{
if(use_sl_and_tp) ticket=OrderSend(Symbol(),1,start_lot,Bid,3,Bid+sl*pt,Bid-tp*pt,"",magic,0,Red);
else ticket=OrderSend(Symbol(),1,start_lot,Bid,3, 0, 0,"",magic,0,Red);
}
else
{
if(use_sl_and_tp)
{
if(OrderSend(Symbol(),1,start_lot,Bid,3,Bid+sl*pt,Bid-tp*pt,"",magic,0,Red)>0)
{
for(i=1; i<level; i++)
{
if(lot_multiplier) ticket=OrderSend(Symbol(),3,NormalizeDouble(start_lot*MathPow(multiplier,i),prec),Bid,3,(Bid+(range*i)*pt)+sl*pt,(Bid+(range*i)*pt)-tp*pt,"",magic,0,Red);
else ticket=OrderSend(Symbol(),3,NormalizeDouble(start_lot+increament*i,prec) ,Bid,3,(Bid+(range*i)*pt)+sl*pt,(Bid+(range*i)*pt)-tp*pt,"",magic,0,Red);
}
}
}
else
{
if(OrderSend(Symbol(),1,start_lot,Bid,3,0,0,"",magic,0,Red)>0)
{
for(i=1; i<level; i++)
{
if(lot_multiplier) ticket=OrderSend(Symbol(),3,NormalizeDouble(start_lot*MathPow(multiplier,i),prec),Bid ,3,0,0,"",magic,0,Red);
else ticket=OrderSend(Symbol(),3,NormalizeDouble(start_lot+increament*i,prec) ,Bid ,3,0,0,"",magic,0,Red);
}
}
}
}
}
}
if(stealth_mode && total()>0 && total()<level)
{
int type; double op, lastlot;
for(i=0; i<OrdersTotal(); i++)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()!=Symbol() || OrderMagicNumber()!=magic) continue;
type=OrderType();
op=OrderOpenPrice();
lastlot=OrderLots();
}
if(signal2()==buy)
if(type==0 && Ask<=op-range*pt)
if(type==0)
{
if(use_sl_and_tp)
{
if(lot_multiplier) ticket=OrderSend(Symbol(),0,NormalizeDouble(lastlot*multiplier,prec),Ask,3,Ask-sl*pt,Ask+tp*pt,"",magic,0,Blue);
else ticket=OrderSend(Symbol(),0,NormalizeDouble(lastlot+increament,prec),Ask,3,Ask-sl*pt,Ask+tp*pt,"",magic,0,Blue);
}
else
{
if(lot_multiplier) ticket=OrderSend(Symbol(),0,NormalizeDouble(lastlot*multiplier,prec),Ask,3,0,0,"",magic,0,Blue);
else ticket=OrderSend(Symbol(),0,NormalizeDouble(lastlot+increament,prec),Ask,3,0,0,"",magic,0,Blue);
}
}
if(signal2()==sell)
if(type==1 && Bid>=op+range*pt)
if(type==1)
{
if(use_sl_and_tp)
{
if(lot_multiplier) ticket=OrderSend(Symbol(),1,NormalizeDouble(lastlot*multiplier,prec),Bid,3,Bid+sl*pt,Bid-tp*pt,"",magic,0,Red);
else ticket=OrderSend(Symbol(),1,NormalizeDouble(lastlot+increament,prec),Bid,3,Bid+sl*pt,Bid-tp*pt,Показано первые 50% кода (символов: 9527)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.