#1.mtf_collider_h4_close_13_v18bar.mq4
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «#1.mtf_collider_h4_close_13_v18bar.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Это торговый советник для MetaTrader 4, работающий на графике выбранного инструмента. Он отслеживает объекты-трендлайны, созданные пользователем на графике, и реагирует на их пробой ценой. При пробое советник может открывать рыночные ордера и, при необходимости, дополнительные отложенные ордера, а также отправлять уведомления.
Советник имеет настраиваемые параметры управления торговлей: объём позиции, уровни тейк-профита и стоп-лосса, допустимое проскальзывание, максимальное число ордеров на одну трендлайну, а также параметры трейлинг-стопа. Дополнительно можно включить отображение текущей цены и статуса трендлайнов на графике.
Уведомления о пробое могут выводиться всплывающим окном, звуком, письмом на e-mail или push-сообщением на мобильное устройство. Работа советника ограничена заданным временным интервалом.
Все торговые операции выполняются только при включённом разрешении на торговлю и в разрешённое время. Советник не гарантирует прибыль и предназначен для использования с осторожностью.
Настройки программы
| Настройка | Описание |
|---|---|
| TradeEnabled | Включает автоматическое открытие сделок при пробое трендлайна. |
| Lots | Объём торговой позиции в лотах. |
| MaxOrdersPerTrendline | Максимальное количество ордеров, которое может быть открыто на одну трендлайну. |
| TargetProfit | Уровень тейк-профита в пунктах от цены открытия. |
| StopLoss | Уровень стоп-лосса в пунктах от цены открытия. |
| Slippage | Допустимое проскальзывание цены при открытии ордеров. |
| AlertPopup | Включает всплывающее окно с уведомлением о пробое трендлайна. |
| Sound | Включает звуковое уведомление о пробое трендлайна. |
| EmailAlert | Включает отправку уведомления о пробое на электронную почту. |
| MobileAlert | Включает отправку push-уведомления на мобильное устройство. |
| PriceDelta | Дополнительное количество пунктов для порога пробоя трендлайна. |
| HourStart | Час начала работы советника (по локальному времени). |
| HourEnd | Час окончания работы советника (по локальному времени). |
| SecondsStart | Секунда начала работы советника (по локальному времени). |
| MinuteEnd | Минута окончания работы советника (по локальному времени). |
| TrendlineStart | Индекс начала диапазона трендлайнов, обрабатываемых советником. |
| TrendlineEnd | Индекс окончания диапазона трендлайнов, обрабатываемых советником. |
| TrailingStop | Включает функцию трейлинг-стопа для сопровождения открытых позиций. |
| TrailingStopMoved | Определяет режим перемещения стоп-лосса при трейлинг-стопе: перемещать вслед за ценой или фиксировать на уровне открытия. |
| TrailingStopPoint | Расстояние в пунктах для активации и шага трейлинг-стопа. |
| DisplayQuote | Включает отображение текущей цены, символа, периода и времени на графике. |
| DisplayTrendLineStatus | Включает отображение статуса трендлайнов (ожидание или пробой) на графике. |
| AddPosition | Включает режим добавления позиций: при пробое трендлайна дополнительно выставляются отложенные ордера на заданном расстоянии. |
| PositionStepPoint | Расстояние в пунктах между добавляемыми позициями. |
| PositionStepNumber | Количество шагов для добавления позиций при включённом режиме добавления. |
| MovingPeriod | Период скользящей средней, используемой в расчётах советника. |
| MovingShift | Сдвиг скользящей средней относительно текущего бара. |
Поиск по коду файла
input bool TradeEnabled = true; // Breakout trade option
input double Lots = 0.01; // Trade Lots
extern int MaxOrdersPerTrendline = 2;
input int TargetProfit = 10; // Target Profit
input int StopLoss = 30; // Stop Loss
input int Slippage = 3; // Slippage
input bool AlertPopup = true; // Popup breakout notification
input bool Sound = false; // Sound breakout notification
input bool EmailAlert = false; // Email breakout notification
input bool MobileAlert = false; // MT4 mobile notification
input int PriceDelta = 0; // More points for breakout threshold
input int HourStart = 0; // EA working hour starts
input int HourEnd = 24; // EA working hour ends
input int SecondsStart = 10; // EA working minute starts
input int MinuteEnd = 220; // EA working minute ends
input int TrendlineStart = 0; // EA working trendline starts
input int TrendlineEnd = 0; // EA working trendline ends
input bool TrailingStop = true; // TrailingStop trade options
input bool TrailingStopMoved = true;
input int TrailingStopPoint = 15;
input bool DisplayQuote = false; // Option of display realtime price
input bool DisplayTrendLineStatus = false; // Option of display trendline breakout status
input bool AddPosition = false; /// Add position trade option
input int PositionStepPoint = 3;
input int PositionStepNumber = 6;
input int MovingPeriod = 14;
input int MovingShift = 0;
double MA1=iMA(NULL,0,MovingPeriod,MovingShift,MODE_EMA,PRICE_CLOSE,0);
double dLastPrice;
string strTrendLineName , strUpward, strDownward, strAlerted;
int iTp, iSl, iSp, iTs, iDigiExtend, iPd, iPsp,iMot,iD1cl;
int iArrowRightFontSize = 8, iLineCount=0;
color colorAlerted = C'249,236,255';
int XAxis = 50, YAxis = 50, FontSize=20;
double n = MaxOrdersPerTrendline;
int getOrdersThisBar(int magic);
double MagicNumber=0;
double HC4 = iClose(NULL, PERIOD_H4, 1);
double HC5 = iClose(NULL, PERIOD_H1, 1);
double HC6 = iClose(NULL, PERIOD_M30, 1);
double HC7 = iClose(NULL, PERIOD_M15, 1);
double HC8 = iClose(NULL, PERIOD_M5, 1);
double HC9 = iClose(NULL, PERIOD_M1, 1);
int OnInit()
{
// код доступен только после оплаты
}
void OnDeinit(const int reason)
{
int i=0;
ObjectDelete("QuoteTrendline");
ObjectDelete("SymbolTrendline");
ObjectDelete("TimeTrendline");
if (iLineCount!=0) { for(i=iLineCount;i>=0;i--) ObjectDelete(StringConcatenate("TrendlineStatus_",i)); }
if (reason<=1) /// Delete trendlines & left arrows ONLY IF this EA is removed;
{ /// OnDeinit reasons listed at -
for(i=ObjectsTotal();i>=0;i--) /// reverse loop for any MQL4 delete functions as total quantity keep changing
{
if (ObjectType(ObjectName(i))==OBJ_ARROW)//OBJ_ARROW
ObjectDelete(ObjectName(i));
if (ObjectType(ObjectName(i))==OBJ_TREND)//OBJ_TREND
ObjectDelete(ObjectName(i));
}
}
}
void OnTick()
{
// код доступен только после оплаты
}
void ProcessTrendlineAlert()
{
ushort u_sep = StringGetCharacter(";",0);
string strTrendlineArray[];
int iTrendlineTotal=StringSplit(strTrendLineName,u_sep,strTrendlineArray);
int i=0, j=0, ticket = 0;
string strCurrentTrendline="";
if (iTrendlineTotal<=0) return;
for (i=0;i<iTrendlineTotal;i++)
{
strCurrentTrendline = StringSubstr(strTrendlineArray[i],1);
if (StringSubstr(strTrendlineArray[i],0,1)=="1" || strCurrentTrendline=="")
continue;
if (StringSubstr(strTrendlineArray[i],0,1)=="0") {
double dTrendlineCurrentPrice = ObjectGetValueByShift(strCurrentTrendline,0);
if (dTrendlineCurrentPrice<iClose(Symbol(),Period(),0)+iPd*Point &&
dTrendlineCurrentPrice>dLastPrice+iPd*Point)
if (dTrendlineCurrentPrice>HC4+iPd*Point &&
dTrendlineCurrentPrice>dLastPrice+iPd*Point)
if (dTrendlineCurrentPrice>HC5+iPd*Point &&
dTrendlineCurrentPrice>dLastPrice+iPd*Point)
if (dTrendlineCurrentPrice>HC6+iPd*Point &&
dTrendlineCurrentPrice>dLastPrice+iPd*Point)
if (dTrendlineCurrentPrice>HC7+iPd*Point &&
dTrendlineCurrentPrice>dLastPrice+iPd*Point)
if (dTrendlineCurrentPrice>HC8+iPd*Point &&
dTrendlineCurrentPrice>dLastPrice+iPd*Point)
if (dTrendlineCurrentPrice>HC9+iPd*Point &&
dTrendlineCurrentPrice>dLastPrice+iPd*Point)
{
StringReplace(strTrendLineName,"0"+strCurrentTrendline,"1"+strCurrentTrendline);
if (TradeEnabled)
{ ticket = OrderSend(Symbol(),OP_BUY,Lots,Ask,iSp,Bid-iSl*Point,Ask+iTp*Point,strCurrentTrendline,MagicNumber,0,Aqua);
if ( MaxOrdersPerTrendline > 0)
for(n=0; n<MaxOrdersPerTrendline; n++)
ticket = OrderSend(Symbol(),OP_BUY,Lots,Ask*(n+1),iSp,Bid-iSl*Point,Ask+iTp*Point,strCurrentTrendline,0,0,Aqua);
if ( AddPosition && PositionStepNumber > 0 && PositionStepPoint > 0)
{ for (j=0;j<PositionStepNumber;j++)
ticket = OrderSend(Symbol(),OP_BUYSTOP,Lots,Ask+iPsp*(j+1)*Point,iSp,Bid-(iSl-iPsp*(j+1))*Point,Ask+(iTp+iPsp*(j+1))*Point,strCurrentTrendline,0,0,Aqua);
}
}
if (AlertPopup) Alert(strCurrentTrendline," Breakout - UP ", Symbol(),"_",PeriodToString(Period())," ",DoubleToStr(iClose(Symbol(),Period(),0),Digits));
if (AlertPopup&&Sound) PlaySound("alert.wav");
if (MobileAlert) SendNotification(strCurrentTrendline+" Breakout " +Symbol()+" UP " + PeriodToString(Period()) + " " + DoubleToStr(iClose(Symbol(),Period(),0),Digits) );
if (EmailAlert) SendMail(strCurrentTrendline+" Breakout " +Symbol()+ " UP " + " " + PeriodToString(Period()) + " " + DoubleToStr(iClose(Symbol(),Period(),0),Digits),
Symbol()+ "_" + PeriodToString(Period()) + ": UP" + "\nCurrent Price: " + DoubleToStr(iClose(Symbol(),Period(),0),Digits)
+ "\nTrendline Price: " + DoubleToStr(dTrendlineCurrentPrice,Digits)
+ "\nServer Time: " + TimeToStr(TimeCurrent(),TIME_DATE|TIME_SECONDS));
}
if (dTrendlineCurrentPrice>iClose(Symbol(),Period(),0)-iPd*Point &&
dTrendlineCurrentPrice<dLastPrice-iPd*Point)
if (dTrendlineCurrentPrice<HC4-iPd*Point &&
dTrendlineCurrentPrice<dLastPrice-iPd*Point)
if (dTrendlineCurrentPrice<HC5-iPd*Point &&
dTrendlineCurrentPrice<dLastPrice-iPd*Point)
if (dTrendlineCurrentPrice<HC6-iPd*Point &&
dTrendlineCurrentPrice<dLastPrice-iPd*Point)
if (dTrendlineCurrentPrice<HC7-iPd*Point &&
dTrendlineCurrentPrice<dLastPrice-iPd*Point)
if (dTrendlineCurrentPrice<HC8-iPd*Point &&
dTrendlineCurrentPrice<dLastPrice-iPd*Point)
if (dTrendlineCurrentPrice<HC9-iPd*Point &&
dTrendlineCurrentPrice<dLastPrice-iPd*Point)
{
StringReplace(strTrendLineName,"0"+strCurrentTrendline,"1"+strCurrentTrendline);
Показано первые 50% кода (символов: 15577)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.