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

hardprofit-modi-4digital.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 общих тегов
Вы автор или правообладатель?

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

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

О программе

Советник hardprofit-modi-4digital работает на платформе MetaTrader 4 (MQL4) и предназначен для автоматической торговли на финансовых рынках. Он анализирует ценовые данные с использованием скользящих средних и осцилляторов для формирования сигналов на покупку и продажу. Советник поддерживает фильтрацию по направлению сделок, контроль спреда и ограничение количества сделок в одном баре.

Встроенная система управления рисками предлагает несколько режимов расчёта размера лота: фиксированный, геометрический, пропорциональный и два адаптивных варианта с анализом истории сделок. Для защиты позиции реализованы механизмы перевода в безубыток, частичное фиксирование прибыли на нескольких уровнях и динамическое увеличение стоп-лосса при достижении заданного порога убытка.

Советник позволяет настраивать параметры входа в сделку, уровни стоп-лосса и тейк-профита в пунктах, а также задавать магический номер для идентификации ордеров. Режим отладки выводит текущие параметры и информацию об ошибках на график для удобства тестирования и мониторинга работы.

Настройки программы

НастройкаОписание
BreakoutPeriode Период диапазона пробоя — Определяет количество баров для расчёта верхней и нижней границы ценового диапазона, используемого при формировании сигналов
TrendPeriode Период трендовой линии — Задаёт период скользящей средней для определения направления текущего тренда
OnlyShort Только короткие позиции — При включении разрешает открытие только продаж, блокируя сигналы на покупку
OnlyLong Только длинные позиции — При включении разрешает открытие только покупок, блокируя сигналы на продажу
MaxTradesPerBar Максимум сделок в баре — Ограничивает количество одновременно открытых сделок, которые могут быть размещены за один бар
StopLoss Стоп-лосс — Расстояние в пунктах от цены входа для установки стоп-лосса при открытии позиции
BreakEven Безубыток — Уровень прибыли в пунктах, при достижении которого стоп-лосс перемещается в точку безубытка
SeuilSL Порог увеличения стоп-лосса — Расстояние в пунктах от цены входа, после которого стоп-лосс увеличивается для снижения максимального просадки
PartialTP1 Частичный TP первый — Первый уровень прибыли в пунктах, при достижении которого закрывается часть позиции
PartialRatio1 Доля первого частичного TP — Процентная доля объёма позиции, закрываемая при достижении первого уровня частичной прибыли
PartialTP2 Частичный TP второй — Второй уровень прибыли в пунктах для дополнительного частичного закрытия позиции
PartialRatio2 Доля второго частичного TP — Процентная доля оставшегося объёма, закрываемая при достижении второго уровня частичной прибыли
TakeProfit Тейк-профит — Основной уровень фиксации прибыли в пунктах от цены входа
Slippage Проскальзывание — Максимально допустимое отклонение цены исполнения от запрошенной в пунктах
MaxSpread Максимальный спред — Допустимый максимальный размер спреда в пунктах для размещения ордеров
Magic Магический номер — Идентификатор ордеров, размещённых данным советником, для их фильтрации и управления
MMType Тип управления лотом — Выбор режима расчёта размера лота: фиксированный, геометрический, пропорциональный или адаптивный
FixedLots Фиксированный лот — Размер лота, используемый при фиксированном режиме управления рисками
GeometricalFactor Геометрический множитель — Коэффициент, влияющий на расчёт размера лота в геометрическом режиме управления
ProportionalRisk Пропорциональный риск — Процент от свободного маржи, используемый для расчёта размера лота в пропорциональном режиме
LastXTrades Анализ последних сделок — Количество последних завершённых сделок, учитываемых при адаптивном расчёте размера лота
DecreaseFactor Коэффициент уменьшения — Параметр, определяющий степень снижения лота после серии убыточных сделок
TSSFTrigger1 Порог TSSF первый — Первый пороговый уровень для переключения между режимами расчёта лота в адаптивной системе
TSSFRatio1 Доля маржи TSSF первая — Процентная доля свободного маржи, используемая при первом уровне срабатывания адаптивной системы
TSSFTrigger2 Порог TSSF второй — Второй пороговый уровень для переключения режима расчёта лота
TSSFRatio2 Доля маржи TSSF вторая — Процентная доля свободного маржи при втором уровне срабатывания адаптивной системы
TSSFTrigger3 Порог TSSF третий — Третий пороговый уровень для переключения режима расчёта лота
TSSFRatio3 Доля маржи TSSF третья — Процентная доля свободного маржи при третьем уровне срабатывания адаптивной системы
DebugMode Режим отладки — Включает вывод текущей информации о параметрах и ошибках на график для мониторинга работы советника
Получить полный код

Поиск по коду файла

/*
modChrisLBX

v1.1
- Added an increase of SL when a defined threshold is reached to reduce the maximum drawdown.

v1.0
- Debugged the original EA: there were errors when creating, modifying and closing orders.
- Added a filter to configure the EA for one trading direction at a time.
- Added MaxSpread.
- Made the magic number configurable.
*/

extern string rem1="//---- Trend and breakout settings";
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=140;//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=30;
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);

double MAFAST = iMA(NULL,0,5,0,MODE_SMA,PRICE_CLOSE,1); 
double MASLOW = iMA(NULL,0,6,0,MODE_SMA,PRICE_OPEN,1); 

double OsMA = iOsMA(NULL,0,5,9,3,PRICE_CLOSE,1) ;

signaltrend=trend-trend1;

if (Time[0]==LastTradeTime&&OrdersThisBar>=MaxTradesPerBar)
{MaxTrades=true;}
else
{MaxTrades=false;}
if (Time[0]!=LastTradeTime)
{OrdersThisBar=0;}

if (Close[0]>Open[0] && Close[0]<lowrange && signaltrend>0 && OrdersTotal()<1 && MaxTrades==false
&& Ask-Bid<=MaxSpread*Point && !OnlyShort && MAFAST>MASLOW && OsMA>0.0)
SignalBuy=true;

if (Close[0]<Open[0] && Close[0]>highrange && signaltrend<0 && OrdersTotal()<1
&& MaxTrades==false && Ask-Bid<=MaxSpread*Point && !OnlyLong && MAFAST<MASLOW && OsMA<0.0)
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(i=orders-1;i>=orders-LastXTrades;i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==False) 
{ 
Print("Error in trading history!"); 
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("Error in trading history!"); 
break; 
}

if(OrderProfit()>=0)
{
tradegagnant++;
profit=profit+OrderProfit();
}
else
{
tradeperdant++;
perte=perte+OrderProfit();
}

}
if (orders>LastXTrades)avgwin=profit/tradegagnant;
if (orders>LastXTrades)avgloss=perte/tradeperdant;
if (orders>

Показано первые 50% кода (символов: 7900)

Открыть по тарифу

Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.

Разовая покупка файла

На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.

Чтобы оформить заказ, введите email и перейдите к оплате.

Стоимость полного кода
790₽ ≈ $9.66