mmwpr.mq4
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «mmwpr.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Советник для платформы MetaTrader 4, работающий на основе индикаторов Williams %R и ZigZag. Использует подключаемый файл TrailStop.mqh для управления стоп-лоссами по мере движения позиции. Советник определяет сигналы на вход в сделки по состоянию индикатора WPR и подтверждению ZigZag, а также закрывает позиции по достижении определённого уровня прибыли, по условиям таймфрейма или при смене тренда. Включает несколько режимов управления лотностью, зависящих от параметра MM и доступного маржа.
Настройки программы
| Настройка | Описание |
|---|---|
| MM | Режим управления лотом — Определяет способ расчёта размера лота: -2 — микро-лоты на основе баланса и плеча, -1 — мини-лоты, 0 — фиксированный размер лота с проверкой свободного маржа, положительные значения — расчёт с начислением на основе баланса и плеча |
| Leverage | Кредитное плечо — Коэффициент кредитного плеча, используемый при расчёте размера лота в различных режимах управления денежными средствами |
Поиск по коду файла
#define MAGICMA 1775
extern int depth=12,
deviation=5,
backstep=3,
per=14,
mweek=5,
mhour=23,
slip=6,
lots=1,
SL=50,
TP=150,
TS=30;
extern double MM = -2;
extern double Leverage = 10;
int LotsMax = 100, MarginChoke = 200;
#include <TrailStop.mqh>
int i,m,cnt;
int b,s,bloks,blokb;
double wpr,wpr1,swpr,porog,canal,MaxH,MinL,MaxHOld,MinLOld,ZZ,ZZ1,Htrend,Ltrend,bsig,ssig,LotMM;
int start()
{
// код доступен только после оплаты
}
void MoneyManagement() { //-2=Micro//-1=Mini//0=Lots//1=Lots compounded
if ( MM ==-2 ) {
LotMM = NormalizeDouble(MathCeil(AccountBalance()*Leverage/1000)/100,2);
}
if ( MM ==-1 ) {
LotMM = NormalizeDouble(MathCeil(AccountBalance()*Leverage/10000)/10,1);
}
if ( MM == 0 ) {
if ( AccountFreeMargin() < MarginChoke ) return(-1);
LotMM = lots;
}
if ( MM > 0 ) {
LotMM = MathCeil(AccountBalance()*Leverage/10000/10);
if ( LotMM < 1 ) LotMM = 1;
}
if ( LotMM > LotsMax ) LotMM = LotsMax;
return;
}
void StartRoutine()
{
if (MaxHOld!=MaxH) MaxHOld=MaxH;
if (MinLOld!=MinL) MinLOld=MinL;
ZZ=iCustom(Symbol(),0,"ZigZag",depth,deviation,backstep,0,0);
ZZ1=iCustom(Symbol(),0,"ZigZag",depth,deviation,backstep,0,1);
}
void PosCounter()
{
b=0;s=0;
for (int cnt=0; cnt<=OrdersTotal(); cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol()==Symbol() && OrderMagicNumber()==MAGICMA)
{
if (OrderType() == OP_SELL) s++;
if (OrderType() == OP_BUY ) b++;
}
}
}
void Block4()
{
MaxH=High[per];MinL=Low[per];
for (int m=per; m>=0; m--)
{
if (High[m]>MaxH) MaxH=High[m];
if (Low [m]<MinL) MinL=Low [m];
}
if (b+s==0)
{
porog=MathRound((0.40*(MaxH-MinL))/Point)*10;
canal=(MaxH-MinL)/Point;
}
Htrend=MaxHOld-MaxH;
Ltrend=MinLOld-MinL;
if (b+s>0)
{
for (int x=0; x<OrdersTotal(); x++)
{
OrderSelect(x, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol()==Symbol() && OrderMagicNumber()==MAGICMA) {
if (OrderType() == OP_SELL)
{
if (OrderProfit()>porog && porog>0 ||
(wpr>-15 && wpr < wpr1 && OrderProfit()>0) ||
(DayOfWeek()==mweek && mhour==Hour()))
{
OrderClose(OrderTicket(),OrderLots(),Ask,slip,White);
s--;
ssig=0;
}
}
if Показано первые 50% кода (символов: 3664)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.