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

adx_rsi_amp_atr_strategy_ea.mq4

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

indo run 1.5.mq4MetaTrader 4 · 3 общих теговanother martingale fix.mq4MetaTrader 4 · 3 общих теговea robofibo source v.11.2.mq4MetaTrader 4 · 2 общих теговgg_master.mq4MetaTrader 4 · 2 общих тегов2 to 1 strategy with signals.txtTradingView · 2 общих теговfresh algo signals & overlays v25_6334471093901859175.txtTradingView · 2 общих тегов
Вы автор или правообладатель?

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

Получить полный код

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

#define EAName "ADX RSI & ATR Strategy EA"

extern string S1a="---------------- Entry Settings";

extern int EntryADXTF=0;
bool TradeAsLongAs=false;
extern int ADXPeriod=14;
extern double ADXLevel=20;
extern int EntryRSITF=0;
extern int FastRSIPeriod=5;
extern int SlowRSIPeriod=21;
extern double RSILevel1=30;
extern double RSILevel2=70;
extern bool TradeWeakSignal=true;

extern string S1b="---------------- Exit Settings";

extern bool UseRSIForClose=true;
extern int CloseRSITF=0;
extern int CloseRSIPeriod=21;
extern double RSILevel3=30;
extern double RSILevel4=70;

extern string S1c="---------------- Filter Settings";

extern bool UseStochFilter=false;
extern int KPeriod=30;
extern int DPeriod=10;
extern int Slowing=10;
extern bool UseOsMAFilter=false;
extern int FastEMA=12;
extern int SlowEMA=26;
extern int MACDSMA=9;

extern string S2="---------------- Money Management";

extern double Lots=0.1;//|-----------------------lots size
extern double WeakLots=0.05;//|-----------------------lots size
extern bool RiskMM=false;//|---------------------risk management
extern double RiskPercent=1;//|------------------risk percentage
extern bool Martingale=false;//|-----------------martingale
extern double Multiplier=2.0;//|-----------------multiplier martingale
extern double MinLots=0.01;//|-------------------minlots
extern double MaxLots=100;//|--------------------maxlots

/*
extern bool BasketProfitLoss=false;//|-----------use basket loss/profit
extern int BasketProfit=100000;//|---------------if equity reaches this level, close trades
extern int BasketLoss=9999;//|-------------------if equity reaches this negative level, close trades
*/

extern string S3="---------------- Order Management";

extern bool UseATRForSL=true;
extern int ATRPeriod=14;
extern double ATRFactor=2.0;
extern int StopLoss=0;//|------------------------stop loss
extern int TakeProfit=0;//|----------------------take profit
extern bool HideSL=false;//|---------------------hide stop loss
extern bool HideTP=false;//|---------------------hide take profit
extern int TrailingStop=0;//|--------------------trailing stop
extern int TrailingStep=0;//|--------------------trailing step
extern int BreakEven=0;//|-----------------------break even
extern int MaxOrders=100;//|---------------------maximum orders allowed
extern int Slippage=3;//|------------------------slippage
extern int Magic=2009;//|------------------------magic number

/*
extern string S4="---------------- MA Filter";

extern bool MAFilter=false;//|-------------------moving average filter
extern int MAPeriod=20;//|-----------------------ma filter period
extern int MAMethod=0;//|------------------------ma filter method
extern int MAPrice=0;//|-------------------------ma filter price
*/

/*
extern string S5="---------------- Time Filter";

extern bool TradeOnSunday=true;//|---------------time filter on sunday
extern bool MondayToThursdayTimeFilter=false;//|-time filter the week
extern int MondayToThursdayStartHour=0;//|-------start hour time filter the week
extern int MondayToThursdayEndHour=24;//|--------end hour time filter the week
extern bool FridayTimeFilter=false;//|-----------time filter on friday
extern int FridayStartHour=0;//|-----------------start hour time filter on friday
extern int FridayEndHour=21;//|------------------end hour time filter on friday
*/

extern string S6="---------------- Extras";

extern bool Hedge=false;//|----------------------enter an opposite trade
extern int HedgeSL=0;//|-------------------------stop loss
extern int HedgeTP=0;//|-------------------------take profit
extern bool ReverseSystem=false;//|--------------buy instead of sell, sell instead of buy

/*
extern bool ReverseAtStop=false;//|--------------buy instead of sell, sell instead of buy
extern int Expiration=240;//|--------------------expiration in minute for the reverse pending order
extern bool Comments=true;//|--------------------allow comments on chart
*/

datetime PreviousBarTime1;
datetime PreviousBarTime2;

double maxEquity,minEquity,Balance=0.0;
double LotsFactor=1;
double InitialLotsFactor=1;

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

/*int deinit()
{
  return(0);
}*/

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

   if(TrailingStop>0)MoveTrailingStop();

   if(BreakEven>0)MoveBreakEven();

/*

   if(BasketProfitLoss)
   {
      double CurrentProfit=0,CurrentBasket=0;
      CurrentBasket=AccountEquity()-AccountBalance();
      if(CurrentBasket>maxEquity)maxEquity=CurrentBasket;
      if(CurrentBasket<minEquity)minEquity=CurrentBasket;
      if(CurrentBasket>=BasketProfit||CurrentBasket<=(BasketLoss*(-1)))
      {
         CloseBuyOrders(Magic);
         CloseSellOrders(Magic);
         return(0);
      }
   }
*/

/*

   if((TradeOnSunday==false&&DayOfWeek()==0)||(MondayToThursdayTimeFilter&&DayOfWeek()>=1&&DayOfWeek()<=4&&!(Hour()>=MondayToThursdayStartHour&&Hour()<MondayToThursdayEndHour))||(FridayTimeFilter&&DayOfWeek()==5&&!(Hour()>=FridayStartHour&&Hour()<FridayEndHour)))
   {
      CloseBuyOrders(Magic);
      CloseSellOrders(Magic);
      return(0);
   }
*/

   int limit=1;
   for(int i=1;i<=limit;i++)
   {

/*

      double MAF=iMA(Symbol(),0,MAPeriod,0,MAMethod,MAPrice,i);

      bool MABUY=false;bool MASELL=false;

      if((MAFilter==false)||(MAFilter&&Bid>MAF))MABUY=true;
      if((MAFilter==false)||(MAFilter&&Ask<MAF))MASELL=true;

      double LastBuyOpenPrice=0;
      double LastSellOpenPrice=0;
      int BuyOpenPosition=0;
      int SellOpenPosition=0;
      int TotalOpenPosition=0;
      int cnt=0;

      for(cnt=0;cnt<OrdersTotal();cnt++) 
      {
         OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
         if(OrderSymbol()==Symbol()&&OrderMagicNumber()==Magic&&OrderCloseTime()==0) 
         {
            TotalOpenPosition++;
            if(OrderType()==OP_BUY) 
            {
               BuyOpenPosition++;
               LastBuyOpenPrice=OrderOpenPrice();
            }
            if(OrderType()==OP_SELL) 
            {
               SellOpenPosition++;
               LastSellOpenPrice=OrderOpenPrice();
            }
         }
      }
*/

      double ADXa=iADX(NULL,EntryADXTF,ADXPeriod,PRICE_CLOSE,MODE_MAIN,i+1);
      double ADXPlusa=iADX(NULL,EntryADXTF,ADXPeriod,PRICE_CLOSE,MODE_PLUSDI,i+1);
      double ADXMinusa=iADX(NULL,EntryADXTF,ADXPeriod,PRICE_CLOSE,MODE_MINUSDI,i+1);
      double ADX=iADX(NULL,EntryADXTF,ADXPeriod,PRICE_CLOSE,MODE_MAIN,i);
      double ADXPlus=iADX(NULL,EntryADXTF,ADXPeriod,PRICE_CLOSE,MODE_PLUSDI,i);
      double ADXMinus=iADX(NULL,EntryADXTF,ADXPeriod,PRICE_CLOSE,MODE_MINUSDI,i);

      double FastRSIa=iRSI(NULL,EntryRSITF,FastRSIPeriod,PRICE_CLOSE,i+1);
      double SlowRSIa=iRSI(NULL,EntryRSITF,SlowRSIPeriod,PRICE_CLOSE,i+1);
      double FastRSI=iRSI(NULL,EntryRSITF,FastRSIPeriod,PRICE_CLOSE,i);
      double SlowRSI=iRSI(NULL,EntryRSITF,SlowRSIPeriod,PRICE_CLOSE,i);

      double SlowRSIDa=iRSI(NULL,CloseRSITF,CloseRSIPeriod,PRICE_CLOSE,i+1);
      double SlowRSID=iRSI(NULL,CloseRSITF,CloseRSIPeriod,PRICE_CLOSE,i);

      double StochM=iStochastic(NULL,0,KPeriod,DPeriod,Slowing,MODE_SMA,0,MODE_MAIN,i);
      double StochS=iStochastic(NULL,0,KPeriod,DPeriod,Slowing,MODE_SMA,0,MODE_SIGNAL,i);

      double OSMA=iOsMA(NULL,0,FastEMA,SlowEMA,MACDSMA,PRICE_CLOSE,i);

      bool BUY=false;
      bool SELL=false;

      if(
      (FastRSIa<RSILevel1&&FastRSI>RSILevel1&&SlowRSIa<RSILevel1&&SlowRSI>RSILevel1&&ADX>ADXLevel&&ADXPlus>ADXMinus)
      &&(UseStochFilter==false||(UseStochFilter&&StochM>StochS))
      &&(UseOsMAFilter==false||(UseOsMAFilter&&OSMA>0))
      &&(UseRSIForClose==false||(UseRSIForClose&&!(SlowRSIDa>RSILevel4&&SlowRSID<RSILevel4)))
      )BUY=true;
      if(
      (FastRSIa>RSILevel2&&FastRSI<RSILevel2&&SlowRSIa>RSILevel2&&SlowRSI<RSILevel2&&ADX>ADXLevel&&ADXMinus>ADXPlus)
      &&(UseStochFilter==false||(UseStochFilter&&StochM<StochS))
      &&(UseOsMAFilter==false||(UseOsMAFilter&&OSMA<0))
      &&(UseRSIForClose==false||(UseRSIForClose&&!(SlowRSIDa<RSILevel3&&SlowRSID>RSILevel3)))
      )SELL=true;

      if(TradeWeakSignal&&
      (FastRSIa<RSILevel1&&FastRSI>RSILevel1&&ADX>ADXLevel&&ADXPlus>ADXMinus)
      &&(UseStochFilter==false||(UseStochFilter&&StochM>StochS))
      &&(UseOsMAFilter==false||(UseOsMAFilter&&OSMA>0))
      &&(UseRSIForClose==false||(UseRSIForClose&&!(SlowRSIDa>RSILevel4&&SlowRSID<RSILevel4)))
      ){BUY=true;Lots=WeakLots;}
      if(TradeWeakSignal&&
      (FastRSIa>RSILevel2&&FastRSI<RSILevel2&&ADX>ADXLevel&&ADXMinus>ADXPlus)
      &&(UseStochFilter==false||(UseStochFilter&&StochM<StochS))
      &&(UseOsMAFilter==false||(UseOsMAFilter&&OSMA<0))
      &&(UseRSIForClose==false||(UseRSIForClose&&!(SlowRSIDa<RSILevel3&&SlowRSID>RSILevel3)))
      ){SELL=true;Lots=WeakLots;}

      bool SignalBUY=false;
      bool SignalSELL=false;

      if(BUY/*&&MABUY*/)if(ReverseSystem)SignalSELL=true;else SignalBUY=true;
      if(SELL/*&&MASELL*/)if(ReverseSystem)SignalBUY=true;else SignalSELL=true;

      if(UseATRForSL)StopLoss=(iATR(NULL,0,ATRPeriod,i)*ATRFactor)/Point;

   }

   if(RiskMM)CalculateMM();

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

Что вы получите после оплаты

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

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

Стоимость полного кода
1 588₽