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? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.