Reverse Martingale
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «reverse_martingale_v3.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Reverse Martingale — торговый советник для платформы MetaTrader 4. Программа анализирует ценовые данные и использует сигналы скользящей средней для принятия решений об открытии позиций. При формировании нового свечного бара и при выполнении условий по спреду советник открывает покупки или продажи в зависимости от соотношения цены и значения скользящей средней.
Советник поддерживает мартингейл-стратегию управления лотами с возможностью настройки множителя и максимального размера лота. Размер лота может рассчитываться автоматически на основе баланса и кредитного плеча аккаунта. Также реализована функция подсчёта убыточных и прибыльных ордеров для определения размера лота при мартингейл-сценариях.
Для управления рисками предусмотрены фильтры: фильтр спреда, ограничение максимального количества одновременно открытых ордеров, остановка по уровню просадки от баланса, а также временные фильтры, запрещающие торговлю в определённые дни недели и периоды вокруг Нового года. Все открытые позиции могут быть закрыты одной командой.
Программа написана на языке MQL4 и работает в среде MetaTrader 4, обрабатывая рыночные и торговые события через стандартные обработчики OnTick.
Настройки программы
| Настройка | Описание |
|---|---|
| Fix Lot Size (AutoLot) | Авто лот — Фиксированный размер лота в условных единицах, используемый для автоматического расчёта лота на основе баланса аккаунта. |
| Stoploss In Pips (StopLoss) | Стоп-лосс — Стоп-лосс в пипсах для открытых ордеров (0 — отключён). |
| Stoploss In DD (StopLossDD) | Стоп-лосс по просадке — Уровень просадки от баланса в процентах, при достижении которого все позиции закрываются (0 — отключено). |
| TakeProfit In Pips (TakeProfit) | Тейк-профит — Тейк-профит в пипсах для открытых ордеров (0 — отключён). |
| Order Magic Number (MagicNumber) | Магический номер — Магический номер ордера для идентификации ордеров, открытых данным советником. |
| Maximum Orders To Open (Max_Orders) | Максимальное количество ордеров — Максимальное количество одновременно открытых ордеров, допускаемое советником. |
| Spread In Pips (Spread) | Спред — Максимально допустимый спред в пипсах для открытия ордеров. |
| Use Martingale (UseMartingale) | Использовать мартингейл — Переключатель использования мартингейл-стратегии управления лотами. |
| Avoid NFT (nfp) | Ограничение по дням недели — Переключатель ограничения торговли по дням недели (при активации блокирует торговлю в определённые дни). |
| No trading 7 days before and after new year (new_year_days) | Дни вокруг Нового года — Количество дней до и после Нового года, в течение которых торговля запрещена. |
| Maximum Lot size To Use (MaxLot) | Максимальный лот — Максимально допустимый размер лота для использования в торговых операциях. |
| Lot Multiplier (Multiplier) | Множитель лота — Множитель для увеличения размера лота при мартингейл-стратегии. |
| Moving_Average | Разделитель скользящей средней — Текстовый разделитель для группы настроек скользящей средней. |
| MaPeriod | Период скользящей средней — Период (количество баров) для расчёта скользящей средней. |
| MaShift | Сдвиг скользящей средней — Сдвиг скользящей средней в барах относительно текущего бара. |
| Ma_Method | Метод скользящей средней — Метод расчёта скользящей средней (тип усреднения). |
| Apply_Price | Применяемая цена — Применяемая цена для расчёта скользящей средней (тип ценового значения). |
Поиск по коду файла
#property version "3.00"
#property strict
#define NL "\n"
input int AutoLot=5000; //Fix Lot Size
double FixLot;
input int StopLoss=0; //Stoploss In Pips
input int StopLossDD=26; //Stoploss In DD
input int TakeProfit=30; //TakeProfit In Pips
input int MagicNumber=123; //Order Magic Number
input int Max_Orders=6; //Maximum Orders To Open
input long Spread=5; //Spread In Pips
input bool UseMartingale=true; //Use Martingale
input bool nfp = true;//Avoid NFT
input int new_year_days = 7; // No trading 7 days before and after new year
input double MaxLot=0.64; //Maximum Lot size To Use
input double Multiplier=2; //Lot Multiplier
input string Moving_Average="=================";
input int MaPeriod=200;
input int MaShift=0;
input ENUM_MA_METHOD Ma_Method=MODE_LWMA;
input ENUM_APPLIED_PRICE Apply_Price=PRICE_CLOSE;
datetime candletime=0;
double stoplevel,Upper_stoplevel,Lower_stoplevel;
datetime EaStartTime=TimeCurrent();
double lotsize;
int max_opentrades=0;
double currentdde=0;
int OnInit()
{
// код доступен только после оплаты
}
void OnDeinit(const int reason)
{
}
void OnTick()
{
// код доступен только после оплаты
} //end of ontick
int Count(int Type)
{
int count=0;
for(int i=0; i<=OrdersTotal()-1; i++)
{
bool Select=OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(Select && OrderSymbol()==_Symbol && OrderMagicNumber()==MagicNumber && OrderType()==Type) count++;
}
return (count);
}
double OpenOrder(int Type , double lot =0)
{
double openprice=0; double stoploss=0; double takeprofit=0; double Lot=FixLot; double lots[]; LotSizeCalc(lots);
if(_Point==0.00001 || _Point==0.001)
{
stoploss=(StopLoss*10)*_Point;
takeprofit=(TakeProfit*10)*_Point;
}
if(_Point==0.0001 || _Point==0.01)
{
stoploss=(StopLoss)*_Point;
takeprofit=(TakeProfit)*_Point;
}
if(lots[losscnt()]>=MaxLot)
{
EaStartTime=TimeCurrent();
return 0;
}
if(Type==OP_BUY)
{
openprice=Ask;
if(StopLoss>0) stoploss=openprice-stoploss;
if(TakeProfit>0) takeprofit=openprice+takeprofit;
}
if(Type==OP_SELL)
{
openprice=Bid;
if(StopLoss>0) stoploss=openprice+stoploss;
if(TakeProfit>0) takeprofit=openprice-takeprofit;
}
if(Lot>PrevOrderLot()) lotsize=Lot;
if(lot>0)Lot = lot;
if(Lot>MaxLot) Lot=FixLot;
int Ticket=OrderSend(_Symbol,Type,Lot,openprice,300,stoploss,takeprofit,"Order Placed",MagicNumbПоказано первые 50% кода (символов: 5823)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.