PairTrader_Exp v.4
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «pairtrader_exp v41.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Продукт представляет собой торгового советника для платформы MetaTrader 4, написанный на языке MQL4. Автор — Mr.SilverKZ (2012). Советник работает с двумя валютными парами: текущим символом графика и вторым символом, задаваемым в настройках. Основная идея — анализ разницы (спреда) между ценовыми движениями двух инструментов и открытие противоположных или одинаковых позиций в зависимости от выбранного режима.
Советник реализует автоматическое открытие и закрытие ордеров, управление размером лота, а также отображение информации о текущих позициях и финансовых результатах прямо на графике через функцию Comment. Встроена система трейлинг-стопа и контроль убытков/прибыли по совокупному профиту всех открытых позиций.
В качестве вспомогательных средств используются вертикальные линии на графике для визуализации моментов обработки данных, а также счётчик состояний для отслеживания количества открытых ордеров по каждому символу. Советник использует магический номер для идентификации управляемых ордеров.
Настройки программы
| Настройка | Описание |
|---|---|
| true - ???????? ?????????, (OpenPair) | OpenPair — открытие пары — Переключатель разрешения открытия новых позиций |
| Trade | Trade — торговля — Переключатель разрешения торговых операций (открытия позиций) |
| true - ????????????? ??????? ???????, (ClosePair) | ClosePair — закрытие пары — Переключатель автоматического закрытия всех управляемых позиций при достижении заданных условий |
| ?????????? ?????????? ?2 (Symbol_2) | Symbol_2 — второй символ — Второй торговый символ, участвующий в паре (по умолчанию GBPUSD) |
| true - ????????????? ?????????? (Revers) | Revers — обратное направление — Режим направления позиций: в обратном или стандартном направлении по двум инструментам |
| ?????? ????????? ? ??????? ??? ????? (Delta) | Delta — начальный порог разницы — Начальное пороговое значение разницы между инструментами, при котором инициируется открытие позиции |
| ?????? ????????? ? ??????? ??? ???????, 0 - ??????? ??? (Step) | Step — шаг разницы — Шаг изменения порогового значения разницы между инструментами при каждой новой попытке открытия |
| ???????????? ?????????? ??????? (Count) | Count — максимальное число сделок — Максимальное допустимое количество открытых сделок в рамках одной сессии обработки |
| ?????? ? ?????? ???????? ??? ???????? ??????? (Profit) | Profit — порог прибыли — Порог совокупной прибыли, при достижении которого происходит закрытие позиций |
| ?????? ? ?????? ???????? ??? ???????? ??????? (StopLoss) | StopLoss — порог убытка — Порог совокупного убытка, при достижении которого происходит принудительное закрытие позиций |
| ????????-???? ? ?????? ????????, 0 - ????????? ??? (Trailing) | Trailing — трейлинг-стоп — Величина трейлинг-стопа в пунктах для автоматического закрытия при откатах от максимальной прибыли |
| ??????? ??? (Lot) | Lot — размер лота — Базовый размер лота для каждой открытой позиции |
| ?????????? ????? (MM) | MM — управление лотом — Параметр управления размером лота: 0 — фиксированный лот, 1 — увеличение на базовый лот, больше 1 — умножение лота |
| ????????????? ??????? (Magic) | Magic — магический номер — Магический номер для идентификации ордеров, управляемых данным советником |
Поиск по коду файла
extern bool OpenPair = false; // true - ???????? ?????????,
extern bool Trade = true;
extern bool ClosePair = false; // true - ????????????? ??????? ???????,
extern string Symbol_2 = "GBPUSD"; // ?????????? ?????????? ?2
extern bool Revers = false; // true - ????????????? ??????????
extern int Delta = 50; // ?????? ????????? ? ??????? ??? ?????
extern int Step = 50; // ?????? ????????? ? ??????? ??? ???????, 0 - ??????? ???
extern int Count = 5; // ???????????? ?????????? ???????
extern int Profit = 25; // ?????? ? ?????? ???????? ??? ???????? ???????
extern int StopLoss = 1000; // ?????? ? ?????? ???????? ??? ???????? ???????
extern int Trailing = 20; // ????????-???? ? ?????? ????????, 0 - ????????? ???
extern double Lot = 0.1; // ??????? ???
extern double MM = 0; // ?????????? ?????
extern int Magic = 10345; // ????????????? ???????
int Mas_Tip_Symb1[6]; // [] ??? ???: 0=B,1=S,2=BL,3=SL,4=BS,5=SS
int Mas_Tip_Symb2[6]; // [] ??? ???: 0=B,1=S,2=BL,3=SL,4=BS,5=SS
string Txt, Text_1, Text_2, Text_3, Text_4;
string Symbol_1;
double Koef;
int i, K;
double ProfitMax;
double lot;
int init()
{
// код доступен только после оплаты
}
int deinit()
{
return(0);
}
int start()
{
// код доступен только после оплаты
}
datetime T1 = ObjectGet(WindowExpertName(),OBJPROP_TIME1);
int Error=GetLastError();
if (Error==4202)
{
Alert("?????? ???????????? ????? ?????????",
"\n??? ??????????? ????????. ??????? ??????.");
Create(Time[i]);
T1=Time[i];
}
i = iBarShift(Symbol(),0,T1);
double Price1 = (iClose(Symbol_1,0,0) - iClose(Symbol_1,0,i)) / MarketInfo(Symbol_1, MODE_POINT);
double Price2 = K*(iClose(Symbol_2,0,0) - iClose(Symbol_2,0,i)) / MarketInfo(Symbol_2, MODE_POINT);
double Spread = Price1 - Price2;
if (Terminal()==0) lot = Lot;
bool Sig_Buy = MathAbs(Spread) >= Delta+Step*Mas_Tip_Symb1[0] && Spread < 0 && Mas_Tip_Symb1[0]<=Count;
bool Sig_Sell = MathAbs(Spread) >= Delta+Step*Mas_Tip_Symb1[1] && Spread > 0 && Mas_Tip_Symb1[1]<=Count;
if(Spread < 0)
{
Text_1 = Symbol_1+" Buy ";
if(Revers)Text_2 = Symbol_2+" Buy ";
else Text_2 = Symbol_2+" Sell ";
}
if(Spread > 0)
{
Text_1 = Symbol_1+" Sell ";
if(Revers)Text_2 = Symbol_2+" Sell ";
else Text_2 = Symbol_2+" Buy ";
}
if((Mas_Tip_Symb1[0]+Mas_Tip_Symb1[1])==0) Text_3 = "0"; else Text_3 = (Mas_Tip_Symb1[0]+Mas_Tip_Symb1[1]) - 1;
if(OpenPair) Text_4 = "?????????"; else Text_4 = "?????????";
Comment("----------------------------------------------------",
"\n???????????: ",Text_1," - ",Text_2,
"\n????????: ",Text_4,
"\n??????? ???????: ",Txt,
"\n----------------------------------------------------",
"\n??????? ????????? = ",MathAbs(Spread),
"\n????????? ??? ????? = ",Delta+Step*(Mas_Tip_Symb1[0]+Mas_Tip_Symb1[1]),
"\n----------------------------------------------------",
"\n?????????? ??????? = ",Text_3,
"\n???????????? ?????????? ??????? = ",Count,
"\n----------------------------------------------------",
"\n??????? ???????/?????? = ",ProfitAll(),
"\n????-?????? ??? ?????? = ",Profit,
"\n????-???? ??? ?????? = ",StopLoss,
"\n????????-???? = ",Trailing,
"\n----------------------------------------------------");
double Profits = ProfitAll();
if (Profits>ProfitMax) ProfitMax=Profits;
if (Trailing>0 && (ProfitMax-Profits)>Trailing && Profits>0)
{
CloseAll();
}
if((Terminal()>0 && (Profits>=Profit || Profits<=(-StopLoss))) || ClosePair)
{
CloseAll();
}
if(!OpenPair) return(0);
if(Trade && Terminal()==0) return(0);
if(Step<=0 && Terminal()!=0)return(0)Показано первые 50% кода (символов: 5648)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.