smc trader 2 mas 12 26 ema basic.mq4
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «smc trader 2 mas 12 26 ema basic.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Данный код представляет собой советник для платформы MetaTrader 4 на языке MQL4, который автоматизирует торговлю на основе анализа скользящих средних. Программа рассчитывает экспоненциальные скользящие средние с разными периодами и формирует торговые сигналы на основе их пересечений для открытия позиций.
Советник управляет открытыми позициями: при развороте соотношения скользящих средних он закрывает действующие ордера. Также реализован механизм трейлинг-стопа, который периодически подтягивает уровень стоп-лосса вслед за движением цены в прибыльную сторону.
Система включает проверку свободного маржинального баланса перед открытием новых позиций и предотвращает одновременное наличие нескольких ордеров на одном символе. Уведомления отправляются по электронной почте и через встроенные оповещения при открытии и закрытии позиций.
Настройки программы
| Настройка | Описание |
|---|---|
| TakeProfit | Тейк-профит — Уровень фиксации прибыли для позиций |
| Lots | Объём лота — Объём торговой позиции |
| InitialStop | Начальный стоп-лосс — Начальный уровень стоп-лосса для новых позиций |
| TrailingStop | Трейлинг-стоп — Расстояние для активации трейлинг-стопа |
Поиск по коду файла
extern double TakeProfit = 50;
extern double Lots = 0.1;
extern double InitialStop = 30;
extern double TrailingStop = 20;
datetime BarTime;
int init()
{
// код доступен только после оплаты
}
int start()
{
// код доступен только после оплаты
}
int cnt,total,ticket,MinDist,tmp;
double Spread, SL;
bool Buy;
bool Sell;
bool CloseLong;
bool CloseShort;
if(Bars<100){
Print("bars less than 100");
return(0);
}
double OpenTrendValm1 = ObjectGetValueByShift("Trend",1);
double OpenTrendValm2 = ObjectGetValueByShift("Trend",2);
if(OpenTrendValm1 != 0 && OpenTrendValm2 != 0)
{ObjectMove("Trend",1,Time[0],OpenTrendValm1+(OpenTrendValm1-OpenTrendValm2));}
MinDist=MarketInfo(Symbol(),MODE_STOPLEVEL);
Spread=(Ask-Bid);
double SMAP1,SMAP2,MMAP1,MMAP2,LMA1P1,LMA1P2,LMA2P1,LMA2P2;
int SMAVal = 12;
int MMAVal = 26;
int LMA1Val = 40; //Determine Trend
int LMA2Val = 60;
SMAP1=iMA(NULL,0,SMAVal,0,MODE_EMA,PRICE_CLOSE,1);
SMAP2=iMA(NULL,0,SMAVal,0,MODE_EMA,PRICE_CLOSE,2);
MMAP1=iMA(NULL,0,MMAVal,0,MODE_EMA,PRICE_CLOSE,1);
MMAP2=iMA(NULL,0,MMAVal,0,MODE_EMA,PRICE_CLOSE,2);
/*LMA1P1=iMA(NULL,0,LMA1Val,0,MODE_EMA,PRICE_CLOSE,1);
LMA1P2=iMA(NULL,0,LMA1Val,0,MODE_EMA,PRICE_CLOSE,2);
LMA2P1=iMA(NULL,0,LMA2Val,0,MODE_EMA,PRICE_CLOSE,1);
LMA2P2=iMA(NULL,0,LMA2Val,0,MODE_EMA,PRICE_CLOSE,2);
*/
Buy= false;
Sell=false;
if(SMAP2 < MMAP2 && SMAP1 > MMAP1
)
{Buy=true;}
if(SMAP2 > MMAP2 && SMAP1 < MMAP1
)
{Sell=true;}
CloseLong=false;
if(SMAP2 > MMAP2 && SMAP1 < MMAP1) CloseLong = true;
CloseShort=false;
if(SMAP2 < MMAP2 && SMAP1 > MMAP1) CloseShort = true;
total=OrdersTotal();
if(total>0)
{
for(cnt=0;cnt<total;cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderType()==OP_BUY && OrderSymbol()==Symbol())
{
if(CloseLong == true)
{SendMail("EA Message Long Order Closed ",Symbol() + " " +Bid);
OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet); // close LONG position
}}
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderType()==OP_SELL && OrderSymbol()==Symbol()) // check for symbol
{
if(CloseShort == true)
{SendMail("EA Message Short Order Closed ",Symbol() + " " +Ask);
OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet); // close SHORT position
}}
} // for loop return
} // close 1st if
if(0==0) //This is used to turn the trailing stop on & off
{
total=OrdersTotal();
if(total>0)
{
for(cnt=0;cnt<total;cnt++)
{
OrderSelect(cnt, SELECTПоказано первые 50% кода (символов: 4460)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.