← К каталогу
Исходный код · ID 431

Night Grid FZ

night grid fz.mq4
Вы автор или правообладатель?

Сообщите нам, если считаете, что материал размещён без разрешения.

Краткий обзор

О программе

Night Grid FZ — это торговый советник для MetaTrader 4, предназначенный для автоматической торговли в заданном временном интервале. Советник использует сеточную стратегию: при отсутствии открытых позиций он может открыть первую сделку на основе анализа нескольких последних свечей, а затем при движении цены против позиции добавляет новые ордера с увеличенным лотом. Количество дополнительных ордеров ограничено настройкой MaxOrders. Для управления рисками предусмотрены параметры Risk и MaxRisk, которые рассчитывают размер лота в зависимости от баланса счёта. Также есть возможность установки общего тейк-профита для всех ордеров и закрытия всех позиций при достижении заданного убытка. Советник работает только в указанные часы, что задаётся параметрами TimeStart и TimeEnd. Все торговые операции помечаются уникальным идентификатором Magic. В коде реализованы вспомогательные функции для открытия и модификации ордеров, а также для закрытия позиций и получения текстового описания ошибок.

Настройки программы

НастройкаОписание
???? ? ????????? ?? ???????? (Risk) Риск — Базовый риск в процентах от баланса для расчёта начального размера лота.
???????????? ???? (???? ????????????? ??????????) (MaxRisk) Максимальный риск — Максимальный риск в процентах от баланса, используемый для ограничения размера лота.
???? ?????? (TakeProfit) Тейк-профит — Уровень тейк-профита в пунктах для всех ордеров.
???? ? ????????? ?? ??????? (StopMinus) Стоп по убытку — Максимальный убыток в процентах от баланса, при достижении которого все позиции закрываются.
??????? ?????????? ???? (UpLot) Множитель лота — Коэффициент умножения лота для каждого последующего ордера в сетке.
??? ????? (Step) Шаг сетки — Расстояние в пунктах от последней открытой позиции для добавления нового ордера в сетке.
???????????? ?????????? ??????? ? ????? (MaxOrders) Максимум ордеров — Максимальное количество одновременно открытых ордеров в одном направлении.
????? ?????? ?????? (TimeStart) Час начала — Час начала торговли.
????? ?????????? ?????? (TimeEnd) Час окончания — Час окончания торговли (включительно не входит).
?????? ??????? (Magic) Магическое число — Уникальный идентификатор (магическое число) для пометки ордеров, открытых советником.
Получить полный код

Поиск по коду файла

extern double   Risk          =0.5;       //???? ? ????????? ?? ????????
extern double   MaxRisk       =3;         //???????????? ???? (???? ????????????? ??????????)
extern int      TakeProfit    =10;        //???? ??????
extern double   StopMinus     =10;        //???? ? ????????? ?? ???????
extern double   UpLot         =1.2;       //??????? ?????????? ???? 
extern int      Step          =10;        //??? ?????  
extern int      MaxOrders     =30;        //???????????? ?????????? ??????? ? ?????  
extern int      TimeStart     =0;         //????? ?????? ??????
extern int      TimeEnd       =9;         //????? ?????????? ??????
extern int      Magic         =7777;      //?????? ???????

string          CommentEA     ="Night Grid FZ";
double   OpPric        =0;
int D,x,y,i;
string Name;
int tframe[]={1,5,15,30,60,240,1440};
bool Buy,Sell;
int Ticket;
double NewTP,NewSL;
int init()
  {
      // код доступен только после оплаты
   }

int start()
{
      // код доступен только после оплаты
   }

int OpenOrder(string symbol,int cmd,double volume,double price,double stoploss,double takeprofit,string comment,int magic)
             {
              int err,i1,ticket;
              while(i1<10)
                   {
                    RefreshRates();
                    if (cmd==0)price=Ask;
                    if (cmd==1)price=Bid;
                    ticket=OrderSend(symbol,cmd,volume,NormalizeDouble(price,Digits),1000*D,NormalizeDouble(stoploss,Digits),NormalizeDouble(takeprofit,Digits),comment,magic);
                    err = GetLastError();
                    if (err == 0) break;
                    Print(Name,Symbol(),Error(err),"  ??? ???????? ??????");
                    Sleep(1000);
                    i1++;
                   }
              return(ticket);
             }

int ModifyOrder(int ticket,double price,double stoploss,double takeprofit)
               {
                int err,i1;

                while(i1<MaxOrders)
                   {
                    RefreshRates();
                    bool sel7=OrderModify(ticket,NormalizeDouble(price,Digits),NormalizeDouble(stoploss,Digits),NormalizeDouble(takeprofit,Digits),0,CLR_NONE);
                    err = GetLastError();
                    if (err == 0) break;
                    Print(Name,Symbol(),Error(err),"  ??? ??????????? ??????");
                    Sleep(1000);
                    i1++;
                   }
                return(0);
               }

string Error(int error_code)
  {
   string error_string;
   switch(error_code)
     {
      case 0:   error_string="??? ??????";                                                     break;
      case 1:   error_string="??? ??????, ?? ????????? ??????????";                            break;
      case 2:   error_string="????? ??????";                                                   break;
      case 3:   error_string="???????????? ?????????";                                         break;
      case 4:   error_string="???????? ?????? ?????";                                          break;
      case 5:   error_string="?????? ?????? ??????????? ?????????";                            break;
      case 6:   error_string="??? ????? ? ???????? ????????";                                  break;
      case 7:   error_string="???????????? ????";                                              break;
      case 8:   error_string="??????? ?????? ???????";                                         break;
      case 9:   error_string="???????????? ???????? ?????????? ???????????????? ???????";      break;
      case 64:  error_string="???? ????????????";                                              break;
      case 65:  error_string="???????????? ????? ?????";                                       break;
      case 128: error_string="????? ???? ???????? ?????????? ??????";                          break;
      case 129: error_string="???????????? ????";                                              break;
      case 130: error_string="???????????? ?????";                                             break;
      case 131: error_string="???????????? ?????";                                             break;
      case 132: error_string="????? ??????";                                                   break;
      case 133: error_string="???????? ?????????";                                             break;  
      case 134: error_string="???????????? ????? ??? ?????????? ????????";                     break;
      case 135: error_string="???? ??????????";                                                break;
      case 136: error_string="??? ???";                                                        break;
      case 137: error_string="?????? ?????";                                           

Показано первые 50% кода (символов: 10369)

Открыть по тарифу

Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.

Разовая покупка файла

На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.

Чтобы оформить заказ, введите email и перейдите к оплате.

Стоимость полного кода
1 036,90₽ ≈ $12.67