⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 [ea]2max_ron_mt4_v02.mq4

📁 智能交易系统
💻 MQ4
📖 第 1 页 / 共 2 页
字号:
/*
+--------+
|2MAX    |
+--------+

Theory of operation
Long term MA against short term MA

TIME FRAME
==========
trying M15

PAIRS
=====
GBPUSD

ENTRY LONG
==========
Fast cross above slow

ENTRY SHORT
===========
Fast cross below slow

EXIT
====
Stop and Reverse

MONEY MANAGEMENT
================
none

RISK MANAGEMENT
===============
none

FAILURE MANAGEMENT
==================
GetLastError on every transaction


VERSION HISTORY
===============
01    - initial concept
02    - another order every N ticks to overcome chop

*/


// variables declared here are GLOBAL in scope

#property copyright "Ron Thompson"
#property link      "http://www.lightpatch.com/forex"

// user input
extern double Lots=0.1;               // how many lots to trade at a time 
extern int    Slippage=2;             // how many pips of slippage can you tolorate
extern int    MASlow=88;
extern int    MAFast=7;
extern int    barstep=5; 
extern double ProfitMade=99;          // how much money do you expect to make
extern double LossLimit=43;           // how much loss can you tolorate
extern double TrailStop=999;          // trailing stop (999=no trailing stop)
extern int    PLBreakEven=59;        // set break even when this many pips are made (999=off)
extern int    StartHour=0;            // your local time to start making trades
extern int    StopHour=24;            // your local time to stop making trades
extern int    BasketProfit=200;      // if equity reaches this level, close trades
extern int    BasketLoss=9999;        // if equity reaches this negative level, close trades
extern string FileName="2MAXv2Log";

// naming and numbering
int      MagicNumber  = 200604052129; // allows multiple experts to trade on same account
string   TradeComment = "2MAX_02_";   // comment so multiple EAs can be seen in Account History

// Bar handling
datetime bartime=0;                   // used to determine when a bar has moved
int      bartick=0;                   // number of times bars have moved
int      reptick=0;
int      objtick=0;                   // used to draw objects on the chart

// Trade control
bool TradeAllowed=true;               // used to manage trades


// Min/Max tracking
double maxOrders;
double maxEquity;
double minEquity;




//+-------------+
//| Custom init |
//|-------------+
// Called ONCE when EA is added to chart or recompiled

int init()
  {
   int    i;
   string o;
   //remove the old objects 
   for(i=0; i<Bars; i++) 
     {
      o=DoubleToStr(i,0);
      ObjectDelete("myx"+o);
      ObjectDelete("myz"+o);
     }
   objtick=0;

   Print("Init happened ",CurTime());
   logwrite( FileName, "Init happened "+CurTime());
   Comment(" ");
  }

//+----------------+
//| Custom DE-init |
//+----------------+
// Called ONCE when EA is removed from chart

int deinit()
  {
   Print("MAX number of orders",maxOrders);
   Print("MAX equity          ",maxEquity);
   Print("MIN equity          ",minEquity);
   
   Print("DE-Init happened ",CurTime());
   logwrite( FileName, "DE-Init happened "+CurTime());
   Comment(" ");
  }


//+-----------+
//| Main      |
//+-----------+
// Called EACH TICK and each Bar[]

int start()
  {

   double p=Point();
   double spread=Ask-Bid;
   
   int      cnt=0;
   int      gle=0;
   int      OrdersPerSymbol=0;
   int      OrdersBUY=0;
   int      OrdersSELL=0;
   
   // stoploss and takeprofit and close control
   double SL=0;
   double TP=0;
   double CurrentProfit=0;
   double CurrentBasket=0;
   
   // direction control
   bool BUYme=false;
   bool SELLme=false;
      
   // indicator things
   double PmaF, PmaS, CmaF, CmaS;

   // bar counting
   if(bartime!=Time[0]) 
     {
      bartime=Time[0];
      bartick++; 
      reptick++;
      objtick++;

      if(Hour()>=StartHour && Hour()<=StopHour)
        {
         TradeAllowed=true;
        }
     }


   OrdersPerSymbol=0;
   for(cnt=OrdersTotal();cnt>=0;cnt--)
     {
      OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
      if( OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber)
        {
         OrdersPerSymbol++;
        }
     }
   if(OrdersPerSymbol>maxOrders) maxOrders=OrdersPerSymbol;

     
   //+-----------------------------+
   //| Insert your indicator here  |
   //| And set either BUYme or     |
   //| SELLme true to place orders |
   //+-----------------------------+
   
   CmaS=iMA(Symbol(),0,MASlow,0,MODE_SMA,PRICE_OPEN,0);
   PmaS=iMA(Symbol(),0,MASlow,0,MODE_SMA,PRICE_OPEN,1);

   CmaF=iMA(Symbol(),0,MAFast,0,MODE_LWMA,PRICE_OPEN,0);
   PmaF=iMA(Symbol(),0,MAFast,0,MODE_LWMA,PRICE_OPEN,1);
   
   ObjectDelete("xCmaS");
   ObjectCreate("xCmaS", OBJ_ARROW, 0, Time[0], CmaS);
   //ObjectSetText("xCmaS","+",15,"Arial",White);

   ObjectDelete("xCmaF");
   ObjectCreate("xCmaF", OBJ_ARROW, 0, Time[0], CmaF);
   //ObjectSetText("xCmaF","+",15,"Arial",White);

   ObjectDelete("xPmaS");
   ObjectCreate("xPmaS", OBJ_ARROW, 0, Time[1], PmaS);
   //ObjectSetText("xPmaS","+",15,"Arial",White);

   ObjectDelete("xPmaF");
   ObjectCreate("xPmaF", OBJ_ARROW, 0, Time[1], PmaF);
   //ObjectSetText("xPmaF","+",15,"Arial",White);

   
   
   if(TradeAllowed && PmaF<PmaS && CmaF>CmaS)
     {
      CloseEverything();
      logwrite(FileName,"Buying EURUSD at "+Close[0]);
      //Comment("BUYme");
      BUYme=true;
     }
     
   if(TradeAllowed && PmaF>PmaS && CmaF<CmaS) 
     {
      CloseEverything();
      logwrite(FileName,"Selling EURUSD at "+Close[0]);
      //Comment("SELLme");
      SELLme=true;
     }
   


   // Adding trades every N ticks   
   if(TradeAllowed && CmaF>CmaS && reptick>=barstep)
     {
      reptick=0;
      logwrite(FileName,"Adding Buy  EURUSD at "+Close[0]);
      BUYme=true;
     }

   if(TradeAllowed && CmaF<CmaS && reptick>=barstep) 
     {
      reptick=0;
      logwrite(FileName,"Adding Sell EURUSD at "+Close[0]);
      SELLme=true;
     }
   
     




   //+------------+
   //| End Insert |
   //+------------+

   //ENTRY LONG (buy, Ask) 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -