EABreakOut测评

EABreakOut测评-EA侦探社 - 全球领先的MQL5官网外汇EA机器人MT4自动化交易EA资源免费分享网站
EABreakOut测评
此内容为免费资源,请登录后查看
0积分
免费资源

如果免费资源下载的文件为TXT文档

请联系站长更新!站长微信:Lv596999  Telegram:@eapoj

“Mql5官网”板块的EA基本都有,大部分是无限制NODLL版,NODLL版本MT1420升级,大多数不可用!这些EA来源为国外花钱买过来的

有需要,请联系站长!

“EA测评”板块资源全部现有,看见不错的,可以联系站长看EA在确定是否收费

“无限制EA”板块,大部分免费,下载文件全部存在,都可以免费下载

站长硬盘EA太多,因大部分时间做交易,做风控,没太多时间更新下载地址,请谅解!

需要更新下载文件,请联系站长微信!国外朋友请联系Telegram。


EABreakOut

 

//+——————————————————————+
//| EABreakOut.mq4 |
//| Copyright 2015, MetaQuotes Software Corp. |
//| https://www.mql5.com |
//+——————————————————————+
#property copyright “Copyright 2015, MetaQuotes Software Corp.”
#property link “https://www.mql5.com”
#property version “1.00”
#property strict

enum _TOSHOW{
SHOW_NONE,
SHOW_COMMENT,
SHOW_PANNEL,
};
//— input parameters
input bool BE_UseGMT = false;
input int BE_Magic=8888;
input double BE_Gap=20;//point digit=3 or 5
input double BE_Lots=0.1;
input _TOSHOW BE_UseShow=SHOW_COMMENT;
///////////////////////1/////////////////
input int BE_Period1=8;
input double BE_EarnPer1=0.15;
input int BE_Time1=9;
///////////////////////3/////////////////
input bool BE_UseTime2=true;
input int BE_Period2=5;
input double BE_EarnPer2=0.3;
input int BE_Time2=15;
///////////////////////3/////////////////
input bool BE_UseTime3=true;
input int BE_Period3=3;
input double BE_EarnPer3=0.6;
input int BE_Time3=20;
///////////////////////3/////////////////
input bool BE_ToCloseOpenOrder=false;
input int BE_TOClosePendingOrderTime=2;
//+——————————————————————+
//| Expert initialization function |
//+——————————————————————+
int OnInit()
{
//—
if(Period() != 60){
Alert(“Only Use H1.”);
return(INIT_FAILED);
}
//—
return(INIT_SUCCEEDED);
}
//+——————————————————————+
//| Expert deinitialization function |
//+——————————————————————+
void OnDeinit(const int reason)
{
//—

}
//+——————————————————————+
//| Expert tick function |
//+——————————————————————+
bool ispendorder1=false,ispendorder2=false,ispendorder3=false;
void OnTick()
{
//—
if(BE_UseShow == SHOW_COMMENT) ShowTradeComment();
if(BE_UseShow == SHOW_PANNEL) ShowTradeResultInfo();

MqlDateTime mdt;
if(BE_UseGMT) TimeGMT(mdt);
else TimeLocal(mdt);

if(!ispendorder1){
ispendorder1 = toSetOrder(mdt,BE_Time1,BE_Period1,BE_EarnPer1);
}

if(BE_UseTime2 &&!ispendorder2){
ispendorder2 = toSetOrder(mdt,BE_Time2,BE_Period2,BE_EarnPer2);
}

if(BE_UseTime3 &&!ispendorder3){
ispendorder3 = toSetOrder(mdt,BE_Time3,BE_Period3,BE_EarnPer3);
}

if(mdt.hour==BE_TOClosePendingOrderTime && (ispendorder1 || ispendorder2 || ispendorder3)){
for(int ipos=OrdersTotal();ipos>=0;ipos–){
if(OrderSelect(ipos,SELECT_BY_POS) && OrderSymbol() == Symbol() && OrderMagicNumber() == BE_Magic){
if(OrderType() == OP_BUY){
if(BE_ToCloseOpenOrder)OrderClose(OrderTicket(),OrderLots(),Bid,5);
}else
if(OrderType() == OP_SELL){
if(BE_ToCloseOpenOrder)OrderClose(OrderTicket(),OrderLots(),Ask,5);
}else{
OrderDelete(OrderTicket());
}
}
}
ispendorder1 = false;
ispendorder2 = false;
ispendorder3 = false;
}

}
bool toSetOrder(MqlDateTime &mdt,int bytime,int byPeriod,double byEarn){
if(mdt.hour==bytime){
double beHi = High[iHighest(NULL,0,MODE_HIGH,byPeriod,1)];
double beLo = Low[iLowest(NULL,0,MODE_LOW,byPeriod,1)];

MakeOrder(OP_BUYSTOP,BE_Lots,(beHi+BE_Gap*Point),(beLo),(beHi*2-beLo+(beHi-beLo)*byEarn),clrBlue);
MakeOrder(OP_SELLSTOP,BE_Lots,(beLo-BE_Gap*Point),(beHi),(beLo*2-beHi-(beHi-beLo)*byEarn),clrRed);
return true;
}
return false;
}
//+——————————————————————+
int MakeOrder(int cmd,double lots,double price,double sl,double tl,color clr){
int ticket;
ticket = OrderSend(NULL,cmd,lots,fixprice(price),5,fixprice(sl),fixprice(tl),””,BE_Magic,0,clr);
return ticket;
}
double fixprice(double price){
return NormalizeDouble(price,Digits);
}
////////////////////////////////////////////////
// show info
///////////////////////////////////////////////
void ShowTradeResultInfo() {
double ld_0 = GetDailyResult(0);
string APName=”BE_BE”;
string name_8 = APName + “1”;
if (ObjectFind(name_8) == -1) {
ObjectCreate(name_8, OBJ_LABEL, 0, 0, 0);
ObjectSet(name_8, OBJPROP_CORNER, 1);
ObjectSet(name_8, OBJPROP_XDISTANCE, 10);
ObjectSet(name_8, OBJPROP_YDISTANCE, 15);
}
ObjectSetText(name_8, “Day1 pips: ” + DoubleToStr(ld_0, 2), 14, “Courier New”, Gold);
ld_0 = GetDailyResult(1);
name_8 = APName + “2”;
if (ObjectFind(name_8) == -1) {
ObjectCreate(name_8, OBJ_LABEL, 0, 0, 0);
ObjectSet(name_8, OBJPROP_CORNER, 1);
ObjectSet(name_8, OBJPROP_XDISTANCE, 10);
ObjectSet(name_8, OBJPROP_YDISTANCE, 33);
}
ObjectSetText(name_8, “Day2 pips: ” + DoubleToStr(ld_0, 2), 14, “Courier New”, Gold);
ld_0 = GetDailyResult(2);
name_8 = APName + “3”;
if (ObjectFind(name_8) == -1) {
ObjectCreate(name_8, OBJ_LABEL, 0, 0, 0);
ObjectSet(name_8, OBJPROP_CORNER, 1);
ObjectSet(name_8, OBJPROP_XDISTANCE, 10);
ObjectSet(name_8, OBJPROP_YDISTANCE, 51);
}
ObjectSetText(name_8, “Day3 pips: ” + DoubleToStr(ld_0, 2), 14, “Courier New”, Gold);
name_8 = APName + “4”;
if (ObjectFind(name_8) == -1) {
ObjectCreate(name_8, OBJ_LABEL, 0, 0, 0);
ObjectSet(name_8, OBJPROP_CORNER, 1);
ObjectSet(name_8, OBJPROP_XDISTANCE, 10);
ObjectSet(name_8, OBJPROP_YDISTANCE, 76);
}
ObjectSetText(name_8, “Balance: ” + DoubleToStr(AccountBalance(), 2), 14, “Courier New”, Gold);
name_8 = APName + “5”;
if (ObjectFind(name_8) == -1) {
ObjectCreate(name_8, OBJ_LABEL, 0, 0, 0);
ObjectSet(name_8, OBJPROP_CORNER, 1);
ObjectSet(name_8, OBJPROP_XDISTANCE, 10);
ObjectSet(name_8, OBJPROP_YDISTANCE, 90);
}
ObjectSetText(name_8, “Balance: ” + DoubleToStr(AccountEquity(), 2), 14, “Courier New”, Gold);
}

double GetDailyResult(int shift) {
double ld_ret_4 = 0;
for (int pos_12 = 0; pos_12 < OrdersHistoryTotal(); pos_12++) {
if (!(OrderSelect(pos_12, SELECT_BY_POS, MODE_HISTORY))) break;
if (OrderSymbol() == Symbol() && OrderMagicNumber() == BE_Magic)
if (OrderCloseTime() >= iTime(Symbol(), PERIOD_D1, shift) && OrderCloseTime() < iTime(Symbol(), PERIOD_D1, shift) + 86400)
ld_ret_4 = ld_ret_4 + OrderProfit() + OrderCommission() + OrderSwap();
}
return (ld_ret_4);
}

string fixprice2(double price){
return DoubleToStr(price, 2);
}
void ShowTradeComment() {
double ld_0 = GetDailyResult(0);
double ld_1 = GetDailyResult(1);
double ld_2 = GetDailyResult(2);
Comment(” BE Vxx.xx Only Use H1″,
“\n”, ” AccountBalance: “, fixprice2(AccountBalance()),
“\n”, ” AccountEquity: “, fixprice2(AccountEquity()),
“\n”, ” Lots: “, BE_Lots,
“\n”, ” day2: “, fixprice2(ld_2),
“\n”, ” day1: “, fixprice2(ld_1),
“\n”, ” day0: “, fixprice2(ld_0),
“\n”);
}

© 版权声明
THE END
喜欢就支持一下吧
点赞13 分享
相关推荐