smc macd new idea.mq4
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «smc macd new idea.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Данный продукт представляет собой торговый советник для платформы MetaTrader 4, написанный на языке MQL4. Советник анализирует данные ценовых графиков и технические индикаторы для формирования торговых сигналов на открытие и закрытие позиций.
В основе работы используются два экземпляра индикатора MACD с различными периодами — для определения долгосрочной и краткосрочной динамики цены. Дополнительно применяется индикатор Parabolic SAR для расчёта уровней стоп-лосса. Советник отслеживает пересечения и смену знаков MACD для принятия решений о входе и выходе из сделок.
Продукт поддерживает автоматическое открытие ордеров Buy и Sell через торговый API MetaTrader, включает проверку доступного маржинального баланса и ограничение количества одновременно открытых позиций. Также реализованы уведомления через всплывающие окна и электронную почту.
Некоторые внутренние блоки управления позициями отключены в текущей конфигурации кода. Параметры торговых операций (объём, тейк-профит, процент риска) задаются через настраиваемые переменные.
Настройки программы
| Настройка | Описание |
|---|---|
| Lots | Объём сделки — Объём лота для каждой открытой позиции |
| TakeProfit | Тейк-профит — Уровень тейк-профита в пунктах для закрытия позиции |
| RiskPercent | Процент риска — Процент риска от доступного маржинального баланса, определяющий максимальный риск на позицию |
| SignalLifeBars | Время жизни сигнала — Количество баров, в течение которых сигнал считается актуальным |
| PVoffset | Смещение PV — Числовой параметр, используемый для смещения расчёта |
Поиск по коду файла
extern double Lots = 0.1;
extern int TakeProfit = 100;
extern double RiskPercent = 1;
extern int SignalLifeBars =24;
extern int PVoffset = 2;
bool BuySignal,SellSignal;
string LastOrder;
string Trend;
datetime BarTime;
int init()
{
// код доступен только после оплаты
}
int start()
{
// код доступен только после оплаты
}
double SL,TP,Spread, ATR, MinDist,MaxRisk;
double PSARP0,PSARP1;
double VSMAP0,VSMAP1,SMAP1,MMAP1,LMAP1,VLMAP1,VSMAP1Low,VSMAP1High;
string MaxRiskStr;
string Trading;
bool Buy,Sell;
int total,ticket,err,tmp,cnt;
int NumberofPositions;
if(Bars<100){Print("bars less than 100"); return(0); }
MinDist=(MarketInfo(Symbol(),MODE_STOPLEVEL)*Point);
Spread=(Ask-Bid);
MaxRisk=(AccountFreeMargin()*RiskPercent/100)*Point;
MaxRiskStr=DoubleToStr(MaxRisk,4);
double LMACDHP1,LMACDSP1,SMACDHP1,SMACDSP1;
double LMACDHP2,LMACDSP2,SMACDHP2,SMACDSP2;
LMACDHP1=iMACD(NULL,0,89,144,22,PRICE_CLOSE,MODE_MAIN,1);
LMACDSP1=iMACD(NULL,0,89,144,22,PRICE_CLOSE,MODE_SIGNAL,1);
LMACDHP2=iMACD(NULL,0,89,144,22,PRICE_CLOSE,MODE_MAIN,2);
LMACDSP2=iMACD(NULL,0,89,144,22,PRICE_CLOSE,MODE_SIGNAL,2);
SMACDHP1=iMACD(NULL,0,8,21,5,PRICE_CLOSE,MODE_MAIN,1);
SMACDSP1=iMACD(NULL,0,8,21,5,PRICE_CLOSE,MODE_SIGNAL,1);
SMACDHP2=iMACD(NULL,0,8,21,5,PRICE_CLOSE,MODE_MAIN,2);
SMACDSP2=iMACD(NULL,0,8,21,5,PRICE_CLOSE,MODE_SIGNAL,2);
PSARP1=iSAR(NULL,0,0.02,0.2,1);
if(BarTime == Time[0]) {return(0);}
BarTime = Time[0];
SL=0;
TP=0;
if((LMACDHP1>0&&LMACDHP1>LMACDSP1&&SMACDHP2<SMACDSP2&&SMACDHP1>SMACDSP1)//Long Term UP new Short term signal
||
(LMACDHP2<0&&LMACDHP1>0) //Long trend changes
||
(LMACDHP1>0&&LMACDHP1>LMACDSP1&&SMACDHP2<0&&SMACDHP1>0)) //Long term trend UP and Short term change top UP
{
Buy = true;
LastOrder = " Buy ";
}
if((LMACDHP1<0&&SMACDHP1<0&&LMACDHP1<LMACDSP1&&SMACDHP2>SMACDSP2&&SMACDHP1<SMACDSP1)//Long Term UP new Short term signal
||
(LMACDHP2>0&&LMACDHP1<0) //Long trend changes
||
(LMACDHP1<0&&LMACDHP1<LMACDSP1&&SMACDHP2>0&&SMACDHP1<0)) //Long term trend UP and Short term change top UP
{Sell=true;
LastOrder = " Sell ";
}
if(0==1)
{
total=OrdersTotal();
if(total>0)
{
for(cnt=0;cnt<total;cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderType()==OP_BUY && OrderSymbol()==Symbol())
{
SL=PSARP1;
if(SL > OrderStopLoss())
{OrderModify(OrderTicket(),OrderOpenPrice(),SL,OrderTakeProПоказано первые 50% кода (символов: 3963)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.