oilfxprobreakouts
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «oilfxpro_gold_breakouts_freeversion.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Советник для платформы MetaTrader 4, предназначенный для автоматической торговли на валютном и металлическом рынке. Размещает отложенные ордера на пробой уровней в начале новых торговых сессий, используя экстремумы предыдущей сессии и заданное смещение в пунктах.
Настройки программы
| Настройка | Описание |
|---|---|
| BeginSession1 | Начало первой сессии — Час начала первой торговой сессии для размещения ордеров |
| EndSession1 | Окончание первой сессии — Час окончания первой торговой сессии, в который рассчитываются уровни для отложенных ордеров |
| BeginSession2 | Начало второй сессии — Час начала второй торговой сессии для размещения ордеров |
| EndSession2 | Окончание второй сессии — Час окончания второй торговой сессии, в который рассчитываются уровни для отложенных ордеров |
| Lots | Объём сделки — Размер позиции в лотах |
| PipsForEntry | Смещение для входа — Отступ в пунктах от экстремума предыдущей сессии для размещения отложенного ордера |
| LocalTimeZone | Локальный часовой пояс — Смещение часового пояса локального сервера |
| DestTimeZone | Часовой пояс назначения — Смещение часового пояса целевого торгового рынка |
| 1 = yes / 0 = no (ClsOnlUnprTX) | Закрытие нереализованных позиций — Признак закрытия нереализованных позиций в конце торгового дня |
| 1 = yes / 0 = no (ProtectYourInvestments) | Защита инвестиций — Признак защиты прибыли при движении цены в прибыльную сторону |
| 1 - classic / 2 - ATR / 3 - HalfVotality (Type_TS_Calc) | Тип расчёта трейлинг-стопа — Метод расчёта уровня трейлинг-стопа |
| FactorTSCalculation | Множитель расчёта трейлинг-стопа — Коэффициент, используемый при расчёте трейлинг-стопа |
| TrailingStop | Трейлинг-стоп — Расстояние трейлинг-стопа в пунктах |
| TakeProfit | Тейк-профит — Уровень фиксации прибыли в пунктах |
| InitialStopLoss | Начальный стоп-лосс — Начальный уровень стоп-лосса в пунктах |
Поиск по коду файла
#include <stdlib.mqh>
extern int BeginSession1=13;
extern int EndSession1=14;
extern int BeginSession2=11;
extern int EndSession2=12;
extern double Lots = 0.2;
extern int PipsForEntry= 15;
extern int LocalTimeZone= 1;
extern int DestTimeZone= 1;
extern int ClsOnlUnprTX=1; // 1 = yes / 0 = no
extern int ProtectYourInvestments=0; // 1 = yes / 0 = no
extern int Type_TS_Calc=1; // 1 - classic / 2 - ATR / 3 - HalfVotality
extern double FactorTSCalculation = 0.5;
extern double TrailingStop = 40;
extern double TakeProfit = 70;
extern double InitialStopLoss=40;
datetime bartime = 0;
double Slippage=3;
int start()
{
// код доступен только после оплаты
}
int cnt, ticket, err, i, j;
int MagicNumber;
double ts, tp, sl, LowestPrice, HighestPrice, Price;
bool Order[5];
string setup;
datetime Validity=0;
int TimeZoneDiff= LocalTimeZone - DestTimeZone;
MagicNumber = func_Symbol2Val(Symbol())*100;
setup="oilfxpro" + Symbol();
if (bartime == Time[0]) {
return(0);
} else {
bartime = Time[0];
}
for(cnt=OrdersTotal();cnt>=0;cnt--)
{
if (OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES)) {
err = GetLastError();
if (err>1) { Print("Error selecting order [" + setup + "]: (" + err + ") " + ErrorDescription(err)); }
if(OrderType()==OP_BUY && OrderSymbol()==Symbol() && (OrderMagicNumber()==(MagicNumber+1) || OrderMagicNumber()==(MagicNumber+3))) {
if(TimeDay(OrderOpenTime())!=TimeDay(Time[0])) {
if (ClsOnlUnprTX==1) {
if(Bid-OrderOpenPrice()<Point*TrailingStop) {
OrderClose(OrderTicket(), Lots, Bid, 3, Red);
}
} else {
OrderClose(OrderTicket(), Lots, Bid, 3, Red);
}
err = GetLastError();
if (err>1) { Print("Error closing buy order [" + setup + "]: (" + err + ") " + ErrorDescription(err)); }
} else if (TrailingStop>0) {
if (ProtectYourInvestments==1 && Bid-OrderOpenPrice()>Point*TrailingStop) {
ts = OrderOpenPrice();
} else {
if (Type_TS_Calc==1) {
ts = Bid-(Point*TrailingStop);
} else if (Type_TS_Calc==2) {
ts = Low[0] - FactorTSCalculation * iATR(NULL,0,14,0);
} else if (Type_TS_Calc==3) {
ts = Low[0] - (FactorTSCalculation *(High[0]-Low[0]));
}
}
if (OrderStopLoss()<ts && Bid-OrderOpenPrice()>Point*TrailingStop) OrderModify(OrderTicket(),OrderOpenPrice(),ts,OrderTakeProfit(),0,White);
err = GetLastError();
if (err>1) { Print("Error modifying buy order [" + setup + "]: (" + err + ") " + ErrorDescription(err)); }
}
} else if(OrderType()==OP_SELL && OrderSymbol()==Symbol() && (OrderMagicNumber()==(MagicNumber+2) || OrderMagicNumber()==(MagicNumber+4))) {
if(TimeDay(OrderOpenTime())!=TimeDay(Time[0])) {
if (ClsOnlUnprTX==1) {
if((OrderOpenPrice()-Ask)<(Point*TrailingStop)) {
OrderClose(OrderTicket(), Lots, Ask, 3, Red);
}
} else {
OrderClose(OrderTicket(), Lots, Ask, 3, Red);
}
err = GetLastError();
if (err>1) { Print("Error closing Sell order [" + setup + "]: (" + err + ") " + ErrorDescription(err)); }
} else if (TrailingStop>0) {
if (ProtectYourInvestments==1 && (OrderOpenPrice()-Ask)>(Point*TrailingStop)) {
ts = OrderOpenPrice();
} else {
if (Type_TS_Calc==1) {
ts = Ask+(Point*TrailingStop);
} else if (Type_TS_Calc==2) {
ts = High[0] + FactorTSCalculation * iATR(NULL,0,14,0);
} else if (Type_TS_Calc==3) {
ts = High[0] + (FactorTSCalculation *(High[0]-Low[0]));
}
}
if (OrderStopLoss()>ts && (OrderOpenPrice()-Ask)>(Point*TrailingStop)) OrderModify(OrderTicket(),OrderOpenPrice(),ts,OrderTakeProfit(),0,White);
err = GetLastError();
if (err>1) { Print("Error modifyin sell order [" + setup + "]: (" + err + ") " + ErrorDescription(err)); }
}
}
}
}
if(AccountFreeMargin()<(1000*Lots)) return(0);
Validity=StrToTime(TimeYear(Time[0]) + "." + TimeMonth(Time[0]) + "." + TimeDay(Time[0]) + " 16:59")+(TimeZoneDiff*3600);
for(i=1;i<5;i++) { Order[i]=false; }
for(cnt=OrdersTotal();cnt>=0;cnt--) {
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
err = GetLastError();
if(OrderSymbol()==Symbol() && OrderMagicNumber()==(MagicNumber+1)) {
Order[1]=true;
} else if (OrderSymbol()==Symbol() && OrderMagicNumber()==(MagicNumber+2)) {
Order[2]=true;
} else if (OrderSymbol()==Symbol() && OrderMagicNumber()==(MagicNumber+3)) {
Order[3]=true;
} else if (OrderSymbol()==Symbol() && OrderMagicNumber()==(MagicNumber+4)) {
Order[4]=true;
}
}
if (TimeHour(Time[0])==EndSession1+TimeZoneDiff && TimeMinute(Time[0])==0) {
LowestPrice=Low[Lowest(NULL, 0, MODE_LOW, 240/Period(), 0)];
HighestPrice=High[Highest(NULL, 0, MODE_HIGH, 240/Period(), 0)];
Print("Determine Low: " + LowestPrice + " and High: " + HighestPrice + " for timephase " + TПоказано первые 50% кода (символов: 7882)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.