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

hardprofit(1).mq4

Похожие материалы по тегам

#__slope direction line.mq5MQL5 / MetaTrader 5 · 1 общих теговrange breakout @meowforex1.pineTradingView · 1 общих тегов#1.mtf_collider_h4_close_13_v18bar.mq4MQL4 / MetaTrader 4 · 1 общих тегов!mth_fasttmaline_edit3.mq4MQL4 / MetaTrader 4 · 1 общих тегов!mth_fasttmaline_edit2.mq4MQL4 / MetaTrader 4 · 1 общих тегов!mth_fasttmaline_edit.mq4MQL4 / MetaTrader 4 · 1 общих тегов
Вы автор или правообладатель?

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

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

О программе

Советник для платформы 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 и перейдите к оплате.

Стоимость полного кода
729,90₽ ≈ $8.92