hardprofit(1).mq4
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «hardprofit(1).mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Советник для платформы MetaTrader 4, предназначенный для автоматической торговли на валютном рынке. Анализирует ценовые данные с использованием скользящих средних и каналов ценового диапазона для формирования сигналов на покупку и продажу. Поддерживает работу как в длинную, так и в короткую сторону, с возможностью ограничения направления торговли.
Советник реализует несколько режимов управления размером позиции: фиксированный лот, геометрическое увеличение, пропорциональный риск от свободного маржи, адаптивное уменьшение лота после серий убыточных сделок и адаптивную систему расчёта на основе статистики завершённых сделок. Все режимы включают ограничение по максимальному спреду и проверку допустимого количества сделок в рамках одного бара.
В рамках управления позициями советник поддерживает установку стоп-лосса и тейк-профита, перевод стоп-лосса в безубыток, увеличение стоп-лосса после достижения заданного уровня прибыли, а также частичное закрытие позиции на двух уровнях фиксации прибыли. Все ордера идентифицируются магическим номером. Режим отладки позволяет отображать текущие параметры и ошибки прямо на графике.
Настройки программы
| Настройка | Описание |
|---|---|
| BreakoutPeriode | Период пробоя — Период для определения верхней и нижней границы ценового канала. |
| TrendPeriode | Период тренда — Период расчёта скользящей средней для определения направления тренда. |
| OnlyShort | Только короткие — Разрешает только продажи, блокируя сигналы на покупку. |
| OnlyLong | Только длинные — Разрешает только покупки, блокируя сигналы на продажу. |
| MaxTradesPerBar | Макс. сделок за бар — Максимальное количество сделок, открываемых за один бар. |
| StopLoss | Стоп-лосс — Расстояние стоп-лосса в пунктах от цены открытия ордера. |
| BreakEven | Безубыток — Уровень прибыли в пунктах, при достижении которого стоп-лосс переводится в безубыток. |
| SeuilSL | Порог увеличения SL — Уровень прибыли в пунктах, при достижении которого стоп-лосс сдвигается в сторону цены открытия. |
| PartialTP1 | Частичный ТП 1 — Уровень прибыли в пунктах для первого частичного закрытия позиции. |
| PartialRatio1 | Доля частичного закрытия 1 — Доля позиции, закрываемая при достижении первого уровня частичной прибыли. |
| PartialTP2 | Частичный ТП 2 — Уровень прибыли в пунктах для второго частичного закрытия позиции. |
| PartialRatio2 | Доля частичного закрытия 2 — Доля оставшейся позиции, закрываемая при достижении второго уровня частичной прибыли. |
| TakeProfit | Тейк-профит — Расстояние тейк-профита в пунктах от цены открытия ордера. |
| Slippage | Проскальзывание — Допустимое отклонение цены исполнения в пунктах. |
| MaxSpread | Макс. спред — Максимально допустимый спред в пунктах для открытия позиции. |
| Magic | Магический номер — Идентификатор ордеров, открытых данным советником. |
| MMType | Тип управления капиталом — Режим расчёта размера лота: фиксированный, геометрический, пропорциональный, адаптивный по убыткам или статистический. |
| FixedLots | Фиксированный лот — Размер лота при фиксированном типе управления капиталом. |
| GeometricalFactor | Геометрический множитель — Множитель для расчёта размера лота при геометрическом типе управления капиталом. |
| ProportionalRisk | Пропорциональный риск — Процент от свободного маржи, используемый для расчёта размера лота. |
| LastXTrades | Последние сделки — Количество последних завершённых сделок, учитываемых при расчёте размера лота. |
| DecreaseFactor | Коэффициент уменьшения — Коэффициент, определяющий степень уменьшения лота после серии убыточных сделок. |
| TSSFTrigger1 | Порог TSSF 1 — Первый пороговый уровень для переключения режима расчёта лота. |
| TSSFRatio1 | Коэффициент TSSF 1 — Пропорциональный коэффициент для первого диапазона расчёта лота. |
| TSSFTrigger2 | Порог TSSF 2 — Второй пороговый уровень для переключения режима расчёта лота. |
| TSSFRatio2 | Коэффициент TSSF 2 — Пропорциональный коэффициент для второго диапазона расчёта лота. |
| TSSFTrigger3 | Порог TSSF 3 — Третий пороговый уровень для переключения режима расчёта лота. |
| TSSFRatio3 | Коэффициент TSSF 3 — Пропорциональный коэффициент для третьего диапазона расчёта лота. |
| DebugMode | Режим отладки — Включает вывод отладочной информации и текущего состояния параметров на график. |
Поиск по коду файла
/*
modChrisLBX
v1.1
- Added SL increase when a defined threshold is reached to reduce max drawdown.
v1.0
- Debugged the original EA; there were errors in creating, modifying, and closing orders.
- Added a filter allowing the EA to be configured for one trading direction at a time.
- Added MaxSpread.
- The magic number is made a configurable variable.
*/
extern string rem1="//---- Definition Trend et Breakout";
extern int BreakoutPeriode=1;
extern int TrendPeriode=3;
extern string rem2="//---- Order";
extern bool OnlyShort=false;
extern bool OnlyLong=false;
extern int MaxTradesPerBar=1;
extern int StopLoss=40;
extern int BreakEven=30;
extern int SeuilSL = 330;
extern int PartialTP1=550;
extern int PartialRatio1=30;
extern int PartialTP2=1100;
extern int PartialRatio2=70;
extern int TakeProfit=1500;
extern int Slippage=30;
extern int MaxSpread=22;
extern int Magic=12387;
extern string rem3="//---- MM: 1.Fixed 2.Geometrical 3.Proportional 4.Smart 5.TSSF";
extern int MMType=3;
extern double FixedLots=0.1;
extern int GeometricalFactor=3;
extern int ProportionalRisk=90;
extern int LastXTrades=10;
extern double DecreaseFactor=2;
extern double TSSFTrigger1=1;
extern int TSSFRatio1=50;
extern double TSSFTrigger2=2;
extern int TSSFRatio2=75;
extern double TSSFTrigger3=3;
extern int TSSFRatio3=100;
extern string rem4="//---- Debug";
extern bool DebugMode=false;
double Lots;
bool SignalBuy=false;
bool SignalSell=false;
double highrange, lowrange;
double trend, trend1, signaltrend;
datetime LastTradeTime=0;
int MaxTrades=false;
int FlagPartial=0;
int OrdersThisBar;
int orders;
int losses;
int nbDecimales;
int i;
int tradegagnant,tradeperdant;
double profit, perte, avgwin, avgloss, prcwin, tssf;
bool TradingRange;
int init()
{
// код доступен только после оплаты
}
int deinit()
{
return(0);
}
int start()
{
// код доступен только после оплаты
}
if (OrdersTotal()>0) OrdersList();
if (OrdersTotal()<1) FlagPartial=0;
highrange=High[iHighest(NULL,0,MODE_HIGH,BreakoutPeriode,1)];
lowrange=Low[iLowest(NULL,0,MODE_LOW,BreakoutPeriode,1)];
trend=iMA(NULL,0,TrendPeriode,0,MODE_SMMA,PRICE_MEDIAN,0);
trend1=iMA(NULL,0,TrendPeriode,0,MODE_SMMA,PRICE_MEDIAN,1);
signaltrend=trend-trend1;
if (Time[0]==LastTradeTime&&OrdersThisBar>=MaxTradesPerBar)
{MaxTrades=true;}
else
{MaxTrades=false;}
if (Time[0]!=LastTradeTime)
{OrdersThisBar=0;}
if (Close[0]==High[0]
&&Close[0]>highrange
&&signaltrend>0
&&OrdersTotal()<1
&&MaxTrades==false
&&Ask-Bid<=MaxSpread*Point
&&!OnlyShort)
SignalBuy=true;
if (Close[0]==Low[0]
&&Close[0]<lowrange
&&signaltrend<0
&&OrdersTotal()<1
&&MaxTrades==false
&&Ask-Bid<=MaxSpread*Point
&&!OnlyLong)
SignalSell=true;
if (SignalBuy==true||SignalSell==true)
{
if (MMType==1&&OrdersTotal()<1)Lots=FixedLots;
if (MMType==2&&OrdersTotal()<1)Lots=0.1*MathSqrt(AccountBalance()/1000)*GeometricalFactor;
if (MMType==3&&OrdersTotal()<1)Lots=AccountEquity()/Close[0]/1000*ProportionalRisk/100;
if (MMType==4&&OrdersTotal()<1)
{orders=HistoryTotal(); // Historique des ordres
losses=0; // Number of consecutive losing trades
Lots=NormalizeDouble(AccountFreeMargin()*ProportionalRisk/10000,1);
for(int i=orders-1;i>=orders-LastXTrades;i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==False)
{
Print("Erreur dans l historique!");
break;
}
if(OrderSymbol()!=Symbol() || OrderType()>OP_SELL)
continue;
if(OrderProfit()>0)
break;
if(OrderProfit()<0)
losses++;
}
if(losses>1)
Lots=NormalizeDouble(Lots-Lots*losses/DecreaseFactor,1);
}
if (MMType==5&&OrdersTotal()<1)
{
orders=HistoryTotal();
tradegagnant=0;
tradeperdant=0;
profit=0;
perte=0;
avgwin=0;
avgloss=0;
prcwin=0;
tssf=0;
for(int j=orders-1;j>=orders-LastXTrades;j--)
{
if(OrderSelect(j,SELECT_BY_POS,MODE_HISTORY)==False)
{
Print("Erreur dans l historique!");
break;
}
if(OrderProfit()>=0)
{
tradegagnant++;
profit=profit+OrderProfit();
}
else
{
tradeperdant++;
perte=perte+OrderПоказано первые 50% кода (символов: 7299)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.