MACD_signal
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «macd_signal.mq4 .mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
MACD_signal — это торговый советник для MetaTrader 4, который использует анализ индикатора MACD для принятия торговых решений. Советник вычисляет разницу между основной линией MACD и сигнальной линией на текущем и предыдущем барах, сравнивая её с порогом, рассчитанным на основе ATR. При достижении условий для бычьего или медвежьего пересечения открываются соответствующие ордера BUY или SELL.
Советник управляет открытыми позициями: закрывает их при развороте MACD в противоположную сторону, а также поддерживает работу трейлинг-стопа для активных ордеров. Перед открытием сделок выполняются проверки минимального количества баров, минимального значения TakeProfit и наличия свободного маржа.
Все ключевые параметры — размер лота, тейк-профит, трейлинг-стоп, периоды MACD и множитель ATR — настраиваются пользователем через параметры советника.
Настройки программы
| Настройка | Описание |
|---|---|
| TakeProfit | Тейк-профит в пунктах для открытой сделки. |
| Lots | Размер лота для открытия сделки. |
| TrailingStop | Расстояние трейлинг-стопа в пунктах для активной позиции. |
| Pfast | Период быстрой линии MACD. |
| Pslow | Период медленной линии MACD. |
| Psignal | Период сигнальной линии MACD. |
| LEVEL | Множитель ATR, используемый для расчёта порогового значения разницы MACD для входа в сделку. |
Поиск по коду файла
extern double TakeProfit = 0;
extern double Lots = 0.1;
extern double TrailingStop = 0;
extern int Pfast=7;
extern int Pslow=36;
extern int Psignal=7;
extern double LEVEL=0.001;
double Points;
int init()
{
// код доступен только после оплаты
}
int deinit()
{
return(0);
}
int start()
{
// код доступен только после оплаты
}
double MacdCurrent=0, MacdPrevious=0, SignalCurrent=0;
double SignalPrevious=0, MaCurrent=0, MaPrevious=0;
int cnt=0, total;
int i1, pp, shift;
double Tv[2][500] ;
double Range, rr, Delta, Delta1, val3;
if(Bars<100)
{
Print("bars less than 100");
return(0); // ?? ??????? ????? 100 ?????
}
if(TakeProfit<10)
{
Print("TakeProfit less than 10");
return(0); // ????????? TakeProfit
}
Range = iATR(NULL,0,200,1);
rr = Range*LEVEL;
Delta=iMACD(NULL,0,Pfast,Pslow,Psignal,PRICE_CLOSE,MODE_MAIN,0)-
iMACD(NULL, 0 ,Pfast,Pslow,Psignal,PRICE_CLOSE,MODE_SIGNAL,0);
Delta1=iMACD(NULL,0,Pfast,Pslow,Psignal,PRICE_CLOSE,MODE_MAIN,1)-
iMACD(NULL, 0 ,Pfast,Pslow,Psignal,PRICE_CLOSE,MODE_SIGNAL,1);
if(OrdersTotal()<1)
{
if(AccountFreeMargin()<(1000*Lots))
{
Print("We have no money");
return(0); // ????? ??? - ???????
}
if( Delta>rr && Delta1<rr )
{
OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+TakeProfit*Points,"macd signal",16384,0,Red); // ?????????
if(GetLastError()==0)Print("Order opened : ",OrderOpenPrice());
return(0); // ???????, ??? ??? ??? ????? ????? ?????????? ???????? ????????
}
if( Delta < -rr && Delta1 Показано первые 50% кода (символов: 2540)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.