simple-macd-ea_www_forex-instruments_info.mq4
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «simple-macd-ea_www_forex-instruments_info.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Данный продукт представляет собой торгового советника для платформы MetaTrader 4, написанный на языке MQL4. Советник анализирует ценовые данные, используя логику, основанную на разнице экспоненциальных скользящих средних (аналог MACD) на таймфрейме M1, и принимает решения об открытии сделок.
При изменении направления тренда советник автоматически открывает ордера на покупку или продажу. Для управления прибылью реализована функция трейлинг-стопа, а также механизм закрытия позиций по различным условиям, включая срабатывание стоп-лосса.
Внутренняя логика включает отслеживание текущих позиций, подсчёт времени удержания сделки и модификацию ордеров. Все торговые операции выполняются через стандартные средства MetaTrader 4.
Настройки программы
| Настройка | Описание |
|---|---|
| number of lots to trade (usually, 1 lot is $100k) (unlimited) (Lots) | Количество лотов для торговли (обычно 1 лот равен $100k, без ограничений). |
| the amount of the trailing stop needed to maximize profit (unlimited) (TrailingStop) | Величина трейлинг-стопа для максимизации прибыли (без ограничений). |
| (1-12) [low works for GBPUSD], high works for others. (MACD_level) | Параметр уровня MACD (диапазон 1–12; низкие значения подходят для GBPUSD, высокие — для других инструментов). |
| MAGIC | Магический номер ордера, используемый для идентификации сделок, открытых данным советником. |
| tp_limit | Лимит количества шагов для управления трейлинг-стопом перед закрытием позиции. |
| wait_time_b4_SL | Время ожидания (в тиках) перед принудительным закрытием позиции по условию стоп-лосса. |
Поиск по коду файла
extern double Lots=1; // number of lots to trade (usually, 1 lot is $100k) (unlimited)
extern double TrailingStop=55; // the amount of the trailing stop needed to maximize profit (unlimited)
extern int MACD_level=500; //(1-12) [low works for GBPUSD], high works for others.
extern int MAGIC=123456;
extern int tp_limit=100;
int limit=1000;
int gap=1;
extern int wait_time_b4_SL=10000;
int trend=0,last_trend=0, pending_time, ticket, total, pace, tp_cnt;
bool sell_flag, buy_flag, find_highest=false, find_lowest=false;
double MACD_Strength=0;
int init()
{
// код доступен только после оплаты
}
int deinit()
{
return(0);
}
int best_deal()
{
double MACDSignal1,MACDSignal2;
MACDSignal2=iMA(NULL,PERIOD_M1,MACD_level,0,MODE_EMA,Close[0],0)-iMA(NULL,PERIOD_M1,MACD_level+1,0,MODE_EMA,Close[0],0);
MACDSignal1=iMA(NULL,PERIOD_M1,MACD_level,0,MODE_EMA,Close[gap],gap)-iMA(NULL,PERIOD_M1,MACD_level+1,0,MODE_EMA,Close[gap],gap);
if ((find_highest && Close[0]>OrderOpenPrice()+Point*5) && MACDSignal2<MACDSignal1)
{ find_highest=false; return(1); }
else if ((find_lowest && Close[0]<OrderOpenPrice()-Point*5) && MACDSignal2>MACDSignal1)
{ find_lowest=false; return(1); }
return(0);
}
int MACD_Direction ()
{
double MACDSignal1,MACDSignal2,ind_buffer1[100], Signal1, Signal2;
MACDSignal2=iMA(NULL,PERIOD_M1,100,0,MODE_EMA,Close[0],0)-iMA(NULL,PERIOD_M1,MACD_level,0,MODE_EMA,Close[0],0);
MACDSignal1=iMA(NULL,PERIOD_M1,100,0,MODE_EMA,Close[gap],gap)-iMA(NULL,PERIOD_M1,MACD_level,0,MODE_EMA,Close[gap],gap);
MACD_Strength=MACDSignal2-MACDSignal1; if (MACD_Strength<0) MACD_Strength=MACD_Strength*(-1);
if(MACDSignal1<0) return(-1);
if(MACDSignal1>0) return(1);
else return(0);
}
void ClosePending()
{
if(OrderType()<=OP_SELL && OrderSymbol()==Symbol())
{
if(OrderType()==OP_BUY)
{
OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet);
pending_time=0;
}
else
{
OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet);
pending_time=0;
}
}
}
void do_order(int type)
{
if (type==1)
{
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,0,"PM",MAGIC,0,White); // buy
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
{ Print("BUY order opened : ",OrderOpenPrice()); } // buy order successful
pace=tp_limit; tp_cnt=0; pending_time=0; find_highest=true;
}
else Print("Error opening SELL order : ",GetLastError());
buy_flag=false;
}
else if (type==2)
{
ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,0,"PM",MAGIC,0,Red);
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
{ Print("SELL order opened : ",OrderOpenPrice()); }
pace=tp_limit; tp_cnt=0; pending_time=0; find_lowest=true;
}
else Print("Error opening SELL order : ",GetLastError());
sell_flag=false;
}
}
int trailing_stop(int type)
{
pace++;
if(TrailingStop>0 && Показано первые 50% кода (символов: 4474)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.