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

4h swing.mq4

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

2 to 1 strategy with signals.pineTradingView · 3 общих теговfresh algo signals & overlays v25_6334471093901859175.pineTradingView · 3 общих теговfresh algo v24 tradingview indicator_5918156155804195406.pineTradingView · 3 общих теговmacd 1 min scalper.mq4MQL4 / MetaTrader 4 · 3 общих теговday trading.mq4MQL4 / MetaTrader 4 · 3 общих теговbb swing.mq4MQL4 / MetaTrader 4 · 3 общих тегов
Вы автор или правообладатель?

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

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

О программе

Торговый советник для MetaTrader 4, который анализирует рыночную ситуацию с помощью экспоненциальных скользящих средних, стохастика и полос Боллинджера. Обрабатывает события тиков и новых баров, автоматически открывает и закрывает позиции, а также управляет уровнями стоп-лосса и тейк-профита. Поддерживает перемещение стоп-лосса в безубыток, трейлинг-стоп и автоматический расчёт размера лота с учётом риска. Адаптирует параметры расчёта в зависимости от таймфрейма торгового графика.

Советник проверяет наличие свободной маржи и корректность настроенных параметров перед началом торговых операций. Открытие позиций происходит при совпадении сигналов нескольких индикаторов. Закрытие позиций и модификация ордеров выполняются на каждом тике с проверкой условий выхода и допустимых уровней цен. Все торговые операции выполняются через стандартные API MetaTrader 4.

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

НастройкаОписание
USEMOVETOBREAKEVEN Включает или выключает функцию перемещения стоп-лосса в безубыток
WHENTOMOVETOBE Уровень прибыли в пипсах, при достижении которого стоп-лосс перемещается в безубыток
PIPSTOMOVESL Количество пипсов для сдвига стоп-лосса при перемещении в безубыток
Lots Размер лота по умолчанию для торговых операций
MaximumRisk Максимальный процент риска для автоматического расчёта размера лота от свободной маржи
DecreaseFactor Коэффициент уменьшения лота при наличии серии убыточных сделок в истории
TrailingStop Расстояние для трейлинг-стопа в пипсах
Stop_Loss Уровень стоп-лосса в пипсах для новых ордеров
MagicNumber Магический номер для идентификации ордеров советника
TakeProfit Уровень тейк-профита в пипсах для новых ордеров
STOC1 Период основной линии стохастика
STOC2 Период сигнальной линии стохастика
STOC3 Период медленной линии стохастика
MA1 Период первой экспоненциальной скользящей средней
MA2 Период второй экспоненциальной скользящей средней
MA3 Период третьей экспоненциальной скользящей средней
Получить полный код

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

#property version     "1.00"
#property strict

extern bool         USEMOVETOBREAKEVEN=true;//Enable "no loss"
extern double       WHENTOMOVETOBE=10;      //When to move break even
extern double       PIPSTOMOVESL=5;         //How much pips to move sl
extern double       Lots=0.01;              //Lots size 
input  double       MaximumRisk   =0.02;
input  double       DecreaseFactor=3;
extern double       TrailingStop=40;        //TrailingStop 
extern double       Stop_Loss=20;           //Stop Loss  
extern int          MagicNumber=1234;       //MagicNumber 
input  double       TakeProfit=50;          //TakeProfit
extern int          STOC1=13;
extern int          STOC2=5;
extern int          STOC3=5;
extern int          MA1=4;
extern int          MA2=14;
extern int          MA3=50;
int           err;

bool               FractalsUp=false;
bool               FractalsDown=false;
double             FractalsUpPrice=0;
double             FractalsDownPrice=0;
int                FractalsLimit=200;
int total=0;
double
Lot,Dmax,Dmin,// Amount of lots in a selected order
Lts,                             // Amount of lots in an opened order
Min_Lot,                         // Minimal amount of lots
Step,                            // Step of lot size change
Free,                            // Current free margin
One_Lot,                         // Price of one lot
Price,                           // Price of a selected order,
pips,
MA_1,MA_2,MA_3,MACD_SIGNAL;
int Type,freeze_level,Spread;

double priceopen,stoploss,takeprofit;

int orderticket;

int
Period_MA_2,  Period_MA_3,       // Calculation periods of MA for other timefr.
Period_MA_02, Period_MA_03,      // Calculation periods of supp. MAs
K2,K3,T;

int OnInit()
  {
      // код доступен только после оплаты
   }

void OnDeinit(const int reason)
  {
  }

void OnTick(void)
  {
      // код доступен только после оплаты
   }

void stop()
  {
   int cnt;

   double middleBB=iBands(Symbol(),0,20, 2,0,0,MODE_MAIN,1);//middle
   double lowerBB=iBands(Symbol(),0,20, 2,0,0,MODE_LOWER,1);//lower
   double upperBB=iBands(Symbol(),0,20, 2,0,0,MODE_UPPER,1);//upper

   double  MacdMAIN=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,1);
   double  MacdSIGNAL=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,1);

   for(cnt=0;cnt<total;cnt++)
     {
      if(!OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES))
         continue;
      if(OrderType()<=OP_SELL &&   // check for opened position 
         OrderSymbol()==Symbol())  // check for symbol
        {

         if(OrderType()==OP_BUY)
           {

            if(((Bid<OrderOpenPrice()-iATR(NULL,0,14,0))
               || ((MacdMAIN>0 && MacdMAIN<MacdSIGNAL) || (MacdMAIN<0 && (MathAbs(MacdMAIN)>MathAbs(MacdSIGNAL))))
               || Close[1]==upperBB))
               exitbuys();

           }
         else // go to short position
           {

            if(((Ask>OrderOpenPrice()+iATR(NULL,0,14,0))
               || ((MacdMAIN>0 && MacdMAIN>MacdSIGNAL) || (MacdMAIN<0 && (MathAbs(MacdMAIN)<MathAbs(MacdSIGNAL)))))
               || Close[1]==lowerBB)
               exitsells();

           }
        }
     }
  }

void Trail1()
  {
   total=OrdersTotal();

   for(int cnt=0;cnt<total;cnt++)
     {
      if(!OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES))
         continue;
      if(OrderType()<=OP_SELL &&   // check for opened position 
         OrderSymbol()==Symbol())  // check for symbol
        {

         if(OrderType()==OP_BUY)
           {

            if(TrailingStop>0)
              {
               if(Bid-OrderOpenPrice()>pips*TrailingStop)
                 {
                  if(OrderStopLoss()<Bid-pips*TrailingStop)
                    {

                     RefreshRates();
                     stoploss=Bid-(pips*TrailingStop);
                     takeprofit=OrderTakeProfit()+pips*TrailingStop;
                     double StopLevel=MarketInfo(Symbol(),MODE_STOPLEVEL)+MarketInfo(Symbol(),MODE_SPREAD);
                     if(stoploss<StopLevel*pips) stoploss=StopLevel*pips;
                     string symbol=OrderSymbol();
                     double point=SymbolInfoDouble(symbol,SYMBOL_POINT);
                     if(MathAbs(OrderStopLoss()-stoploss)>point)
                        if((pips*TrailingStop)>(int)SymbolInfoInteger(_Symbol,SYMBOL_TRADE_FREEZE_LEVEL)*pips)

                           if(CheckStopLoss_Takeprofit(OP_BUY,stoploss,takeprofit))
                              if(OrderModifyCheck(OrderTicket(),OrderOpenPrice(),stoploss,takeprofit))
                                 if(!OrderModify(OrderTicket(),OrderOpenPrice(),stoploss,takeprofit,0,Green))
                                    Print("OrderModify error ",GetLastError());
                     return;
                    }
                 }
              }
           

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

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

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

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

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

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

Стоимость полного кода
1 181₽ ≈ $14.44