simpleh1_gbpusd_eav9.mq4
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «simpleh1_gbpusd_eav9.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Данный исходный код представляет собой торгового советника для платформы MetaTrader 4, написанный на языке MQL4. Советник предназначен для автоматической торговли на рынке Forex, в частности на паре GBPUSD, и работает на часовом таймфрейме (H1).
Советник анализирует ценовые данные с использованием скользящих средних (SMA) и фракталов для определения направления тренда и генерации торговых сигналов. Он открывает и закрывает ордера на покупку и продажу, управляет стоп-лоссами и тейк-профитами, а также поддерживает функцию трейлинг-стопа для защиты прибыли.
В советнике реализованы два уровня тейк-профита и стоп-лосса, привязанных к двум различным магическим числам, что позволяет управлять двумя типами позиций с разными параметрами закрытия. Также предусмотрены настройки управления рисками, ручного и автоматического расчёта размера лота, а также временные фильтры для ограничения торговли определёнными часами.
Советник включает функцию отображения информации на графике (уровни дня, баланс, эквити, параметры торговли) и возможность скрытия уровней тейк-профита и стоп-лосса с графика. Параметры настроены через внешние переменные, доступные в интерфейсе MetaTrader 4.
Настройки программы
| Настройка | Описание |
|---|---|
| TITLE | Название — Текстовый параметр с названием советника. |
| DETAILS | Описание — Текстовый параметр с описанием магического числа и комментария к сделкам. |
| iMagicNumber | Магическое число — Целочисленный параметр — магическое число для идентификации ордеров советника. |
| trade_comment | Комментарий к сделке — Текстовый параметр — комментарий к торговым операциям. |
| MAIN_SETTINGS | Основные настройки — Группа основных настроек (тейк-профит 1, тейк-профит 2, стоп-лосс и трейлинг-стоп). |
| TakeProfit1 | Тейк-профит 1 — Целочисленный параметр, задающий первый уровень тейк-профита в пунктах. |
| TakeProfit2 | Тейк-профит 2 — Целочисленный параметр, задающий второй уровень тейк-профита в пунктах. |
| StopLoss | Стоп-лосс — Целочисленный параметр, задающий значение стоп-лосса в пунктах. |
| useTrailing | Использовать трейлинг-стоп — Переключатель (true/false), определяющий, использовать ли трейлинг-стоп. |
| iTrailingStop | Трейлинг-стоп — Числовой параметр, задающий расстояние трейлинг-стопа в пунктах. |
| MM_SETTINGS | Настройки управления рисками — Группа настроек управления рисками (процент риска для разных уровней). |
| UseMoneyMgmt | Использовать управление рисками — Переключатель, активирующий автоматический расчёт размера лота на основе управления рисками. |
| Low_Risk | Низкий риск — Переключатель, активирующий низкий уровень риска (0.1%). |
| Med_Risk | Средний риск — Переключатель, активирующий средний уровень риска (0.3%). |
| High_Risk | Высокий риск — Переключатель, активирующий высокий уровень риска (5%). |
| VERY_HIGH_RISK | Настройки очень высокого риска — Группа настроек для очень высокого уровня риска (10%). |
| Vhigh_Risk | Очень высокий риск — Переключатель, активирующий очень высокий уровень риска (10%). |
| RiskPercent | Процент риска — Числовой параметр, определяющий процент риска для расчёта размера лота при автоматическом управлении. |
| MANUAL_LOTS | Настройки ручного лота — Группа настроек ручного размера лота. |
| Manual_Lot_Size | Ручной размер лота — Переключатель, определяющий, использовать ли ручной размер лота вместо автоматического расчёта. |
| Lotsize | Размер лота — Числовой параметр, задающий фиксированный размер лота при ручном режиме управления. |
| INDICATORS | Настройки индикаторов — Группа настроек стандартных индикаторов (параметры SMA). |
| fast_sma | Быстрая SMA — Целочисленный параметр, задающий период быстрой скользящей средней (SMA). |
| slow_sma | Медленная SMA — Целочисленный параметр, задающий период медленной скользящей средней (SMA). |
| BROKER_SETTINGS | Настройки брокера — Группа настроек, связанных с брокерскими параметрами (смещение GMT). |
| GMToffset | Смещение GMT — Целочисленный параметр, задающий смещение часового пояса брокера относительно GMT. |
| Start_Time | Время начала торговли — Целочисленный параметр, задающий час начала торговли в GMT. |
| HIDING_TARGETS | Настройки отображения уровней — Группа настроек, связанных с отображением уровней тейк-профита и стоп-лосса на графике. |
| Hide_Targets | Скрыть уровни — Переключатель (true/false), определяющий, скрывать ли уровни тейк-профита и стоп-лосса с графика. |
| Show_Levels | Показать уровни — Переключатель, определяющий, отображать ли уровни дня (дневной максимум, минимум, пивот) на графике. |
| MicroOrdersAllowed | Разрешить микролоты — Переключатель, разрешающий микролоты (минимальный размер позиции 0.01). |
| MiniOrdersAllowed | Разрешить минилоты — Переключатель, разрешающий минилоты (минимальный размер позиции 0.1). |
| SHOWS_SETTINGS | Настройки отображения — Группа настроек отображения информации на графике. |
| Show_Settings | Показать настройки — Переключатель, определяющий, отображать ли информацию о настройках и параметрах торговли на графике. |
Поиск по коду файла
extern string TITLE = "Simple H1 GBPUSD EA V9";
extern string DETAILS = "Magic Number & Trade Comment";
extern int iMagicNumber = 54328108;
extern string trade_comment="EA V9";
int iMagicNumber2;
datetime Time0 = 0;
extern string MAIN_SETTINGS = "TP1, TP2, SL and TSL settings.";
extern int TakeProfit1 = 24;
extern int TakeProfit2 =47;
extern int StopLoss = 140;
double Poin;
extern bool useTrailing = true;
extern double iTrailingStop = 24;
extern string MM_SETTINGS = "Risk, Low 1% - Med 3% - High 5%";
extern bool UseMoneyMgmt = false;
extern bool Low_Risk = false;
extern bool Med_Risk = false;
extern bool High_Risk= false;
extern string VERY_HIGH_RISK = "Choose Risk % for the V HIGH. ";
extern bool Vhigh_Risk= false;
extern double RiskPercent = 1;
extern string MANUAL_LOTS = "Set your fixed Lot Size 0.1 = $1 per pip.";
extern bool Manual_Lot_Size = true;
extern double Lotsize = 0.1;
extern string INDICATORS = "Standard Indicator Settings.";
extern int fast_sma=10;
extern int slow_sma=197;
extern string BROKER_SETTINGS = "GMT offset.";
extern int GMToffset=2;
extern int Start_Time= 23;
extern string HIDING_TARGETS = "Set to True to hide TP & SL.";
extern bool Hide_Targets = false;
extern bool Show_Levels = true;
extern bool MicroOrdersAllowed = true;
extern bool MiniOrdersAllowed = true;
extern string SHOWS_SETTINGS = "Set to False when Testing or Optimising.";
extern bool Show_Settings = true;
bool trade=false;
double high_price, low_price , high_price2, low_price2, dLots;
int iTicket, iTotalOrders,trend,Status,signal, BarCount, TradePerBar, var2;
static double latest;
static double aLots;
static int halt=0;
static double last_high, last_low;
double TimeOfLastUpFractal, TimeOfLastDownFractal, totalopenorders ;
double LastUpFractal_H1,LastDownFractal_H1,TimeOfLastDownFractal_H1,TimeOfLastUpFractal_H1;
static double latestbuy, latestup, latestdn;
static double latestsell ;
double dblProfit=0;
double spread;
static int lastv, lastw;
int direction=0;
static double latest_hizig, latest_lozig;
double zigspread, TakeProfit, iStopLoss, average, current;
datetime GMT;
string GMTs;
string brokers;
string GMT_difference;
double GMT_offset;
int init()
{
// код доступен только после оплаты
}
int deinit()
{
return(0);
}
int start()
{
// код доступен только после оплаты
}
void TrailingStop(int iTotal){
int iCount;
if(iTrailingStop < 1)return(-1); // error
for(iCount=0;iCount<iTotal;iCount++){
OrderSelect(iCount, SELECT_BY_POS, MODE_TRADES);
if( OrderSymbol()==Symbol() && OrderMagicNumber() == iMagicNumber2)
switch(OrderType()){
case OP_BUY:
if(Bid-OrderOpenPrice()>Poin*iTrailingStop){
if(OrderStopLoss()<Bid-Poin*iTrailingStop){
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Poin*(iTrailingStop-2),OrderTakeProfit(),0,Aqua);
}
}
break;
case OP_SELL:
if((OrderOpenPrice()-Ask)>(Poin*iTrailingStop)){
if((OrderStopLoss()>(Ask+Poin*iTrailingStop)) || (OrderStopLoss()==0)){
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Poin*(iTrailingStop-2),OrderTakeProfit(),0,Orange);
}
}
break;
}
}
return(0);
}
int CheckForCross(){
if ( Show_Settings )
PrintDetails();
int i, cnt ;
int buyorder=0;
int sellorder=0;
int sellstop = 0;
int buystop = 0;
int dir=0;
int order=0;
int Ticket=0;
int total = OrdersTotal();
i= 0;
for (i = 0; i < total; i++)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol() == Symbol() && OrderMagicNumber() == iMagicNumber
|| OrderSymbol() == Symbol() && OrderMagicNumber() == iMagicNumber2)
{
if (OrderType()==OP_BUY) {buyorder = buyorder +1;}
else if (OrderType()==OP_SELL) {sellorder = sellorder +1;}
} //end if
} //end for
totalopenorders= buyorder+sellorder;
trade = true;
int x;
double adr_total, adr;
average = 0;
for( x=1;x<11;x++){
adr = iHigh(NULL,PERIOD_D1,x)-iLow(NULL,PERIOD_D1,x);
adr_total = adr_total+adr;
}//end for
average = adr_total/10;
current = MathAbs(iHigh(NULL,PERIOD_D1,0)-iLow(NULL,PERIOD_D1,0));
static double daily_high;
static double daily_low;
static double daily_pivot;
if(Hour() == 1 && Show_Levels==true){
daily_high = High[iHighest(NULL,0,MODE_HIGH,24,1)];
daily_low = Low[iLowest(NULL,0,MODE_LOW,24,1)];
double daily_range= daily_high-daily_low;
daily_pivot = daily_low + (daily_range/2);
double bull_positive1= daily_range*0.34;
TakeProfit = bull_positive1;
double bull_target1= daily_high+bull_positive1;
double bear_negative1=daily_range*0.34;
iStopLoss = daily_range;
double bear_target1= daily_low - bear_negative1;
ObjectDelete("Daily_Pivot");
ObjectDelete("Daily_High");
ObjectDelete("Daily_Low");
ObjectDelete("Bull_Tgt1");
ObjectDelete("Bear_Tgt1");
ObjectCreate("Bull_Tgt1",OBJ_HLINE,0,Time[1],bull_target1);
ObjectSet("Bull_Tgt1",OBJPROP_COLOR,Aqua);
ObjectCreate("Daily_Pivot",OBJ_HLINE,0,Time[1],daily_pivot);
ObjectSet("Daily_Pivot",OBJPROP_COLOR,Yellow);
ObjectCreate("Daily_High",OBJ_HLINE,0,Time[1],daily_high);
ObjectSet("Daily_High",OBJPROP_COLOR,Blue);
ObjectCreate("Daily_Low",OBJ_HLINE,0,Time[1],daily_low);
ObjectSet("Daily_Low",OBJPROP_COLOR,Lime);
ObjectCreate("Bear_Tgt1",OBJ_HLINE,0,Time[1],bear_target1);
ObjectSet("Bear_Tgt1",OBJPROP_COLOR,Magenta);
}//end if
if(Show_Levels==false)
{
ObjectDelete("Daily_Pivot");
ObjectDelete("Daily_High");
ObjectDelete("Daily_Low");
ObjectDelete("Bull_Tgt1");
ObjectDelete("Bear_Tgt1");
}//end else
for(int v=1;v<Bars;v++){
if(iFractals(NULL,PERIOD_M15, MODE_UPPER,v)!=0){
LastUpFractal_H1=iFractals(NULL,PERIOD_M15, MODE_UPPER,v);
TimeOfLastUpFractal_H1=Time[v];
break;
}//end if
}//end for
for(int w=1;w<Bars;w++){
if(iFractals(NULL,PERIOD_M15, MODE_LOWER,w)!=0){
LastDownFractal_H1=iFractals(NULL,PERIOD_M15, MODE_LOWER,w);
TimeOfLastDownFractal_H1=Time[w];
break;
}//end if
}//end for
if(TimeOfLastUpFractal_H1 > TimeOfLastDownFractal_H1) trend=1;
else trend=2;
for (int j = 0; j < OrdersTotal(); j++) {
OrderSelect(j, SELECT_BY_POS, MODE_TRADES);
if (OrderType() == OP_BUY && (OrderMagicNumber() == iMagicNumber)) {
if (Bid < (OrderOpenPrice()-StopLoss*Poin)
|| Bid > (OrderOpenPrice()+TakeProfit1*Poin)) {
RefreshRates();
OrderClose(OrderTicket(), OrderLots(), Bid, 3*Poin/Point, Yellow);
}
}
if (OrderType() == OP_SELL && (OrderMagicNumber() == iMagicNumber)) {
if (Ask > (OrderOpenPrice()+StopLoss*Poin)
|| Ask < (OrderOpenPrice()-TakeProfit1*Poin)) {
RefreshRates();
OrderClose(OrderTicket(), OrderLots(), Ask, 3*Poin/Point, Yellow);
}
}
}//end for
for (int k = 0; k < OrdersTotal(); k++) {
OrderSelect(k, SELECT_BY_POS, MODE_TRADES);
if (OrderType() == OP_BUY && (OrderMagicNumber() == iMagicNumber2)) {
if (Bid < (OrderOpenPПоказано первые 50% кода (символов: 12249)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.