Log in or register to download unlimited Forex robots!
AC+AO ea v1 (+source code) - (Tested with over $3,600,000 profit)
//+------------------------------------------------------------------+
//| This MQL is generated by Expert Advisor Builder |
//| [url=http://sufx.core.t3-ism.net/ExpertAdvisorBuilder/]http://sufx.core.t3-ism.net/ExpertAdvisorBuilder/[/url] |
//| |
//| In no event will author be liable for any damages whatsoever. |
//| Use at your own risk. |
//| Changes by Barry Vincent |
//| 8/14/08 AC+AO v1 Fix error in code and the stops and take profit| |
//| optimized for the eurusd | |
//| |
//+------------------- DO NOT REMOVE THIS HEADER --------------------+
#define SIGNAL_NONE 0
#define SIGNAL_BUY 1
#define SIGNAL_SELL 2
#define SIGNAL_CLOSEBUY 3
#define SIGNAL_CLOSESELL 4
#property copyright "Expert Advisor Builder"
#property link "[url=http://sufx.core.t3-ism.net/ExpertAdvisorBuilder/]http://sufx.core.t3-ism.net/ExpertAdvisorBuilder/[/url]"
extern int MagicNumber = 0;
extern bool SignalMail = False;
extern bool EachTickMode = True;
extern double Lots = 1.0;
extern int Slippage = 3;
extern bool UseStopLoss = True;
extern int StopLoss = 25;
extern bool UseTakeProfit = True;
extern int TakeProfit = 118;
extern bool UseTrailingStop = True;
extern int TrailingStop = 55;
int BarCount;
int Current;
bool TickCheck = False;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init() {
BarCount = Bars;
if (EachTickMode) Current = 0; else Current = 1;
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit() {
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start() {
int Order = SIGNAL_NONE;
int Total, Ticket;
double StopLossLevel, TakeProfitLevel;
if (EachTickMode && Bars != BarCount) TickCheck = False;
Total = OrdersTotal();
Order = SIGNAL_NONE;
//+------------------------------------------------------------------+
//| Variable Begin |
//+------------------------------------------------------------------+
double Buy1_1 = iAC(NULL, 0, Current + 0);
double Buy1_2 = iAC(NULL, 0, Current + 1);
double Buy2_1 = iAC(NULL, 0, Current + 1);
double Buy2_2 = iAC(NULL, 0, Current + 2);
double Buy3_1 = iAO(NULL, 0, Current + 0);
double Buy3_2 = iAO(NULL, 0, Current + 1);
double Sell1_1 = iAC(NULL, 0, Current + 0);
double Sell1_2 = iAC(NULL, 0, Current + 1);
double Sell2_1 = iAC(NULL, 0, Current + 1);
double Sell2_2 = iAC(NULL, 0, Current + 2);
double Sell3_1 = iAO(NULL, 0, Current + 0);
double Sell3_2 = iAO(NULL, 0, Current + 1);
double CloseBuy1_1 = iAC(NULL, 0, Current + 0);
double CloseBuy1_2 = iAC(NULL, 0, Current + 1);
double CloseBuy2_1 = iAC(NULL, 0, Current + 1);
double CloseBuy2_2 = iAC(NULL, 0, Current + 2);
double CloseSell1_1 = iAC(NULL, 0, Current + 0);
double CloseSell1_2 = iAC(NULL, 0, Current + 1);
double CloseSell2_1 = iAC(NULL, 0, Current + 1);
double CloseSell2_2 = iAC(NULL, 0, Current + 2);
//+------------------------------------------------------------------+
//| Variable End |
//+------------------------------------------------------------------+
//Check position
bool IsTrade = False;
for (int i = 0; i < Total; i ++) {
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if(OrderType() <= OP_SELL && OrderSymbol() == Symbol()) {
IsTrade = True;
if(OrderType() == OP_BUY) {
//Close
//+------------------------------------------------------------------+
//| Signal Begin(Exit Buy) |
//+------------------------------------------------------------------+
if (CloseBuy1_1 < CloseBuy1_2 && CloseBuy2_1 > CloseBuy2_2) Order = SIGNAL_CLOSEBUY;
//+------------------------------------------------------------------+
//| Signal End(Exit Buy) |
//+------------------------------------------------------------------+
if (Order == SIGNAL_CLOSEBUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, MediumSeaGreen);
if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Close Buy");
if (!EachTickMode) BarCount = Bars;
IsTrade = False;
continue;
}
//Trailing stop
if(UseTrailingStop && TrailingStop > 0) {
if(Bid - OrderOpenPrice() > Point * TrailingStop) {
if(OrderStopLoss() < Bid - Point * TrailingStop) {
OrderModify(OrderTicket(), OrderOpenPrice(), Bid - Point * TrailingStop, OrderTakeProfit(), 0, MediumSeaGreen);
if (!EachTickMode) BarCount = Bars;
continue;
}
}
}
} else {
//Close
//+------------------------------------------------------------------+
//| Signal Begin(Exit Sell) |
//+------------------------------------------------------------------+
if (CloseSell1_1 > CloseSell1_2 && CloseSell2_1 < CloseSell2_2) Order = SIGNAL_CLOSESELL;
//+------------------------------------------------------------------+
//| Signal End(Exit Sell) |
//+------------------------------------------------------------------+
if (Order == SIGNAL_CLOSESELL && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, DarkOrange);
if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Close Sell");
if (!EachTickMode) BarCount = Bars;
IsTrade = False;
continue;
}
//Trailing stop
if(UseTrailingStop && TrailingStop > 0) {
if((OrderOpenPrice() - Ask) > (Point * TrailingStop)) {
if((OrderStopLoss() > (Ask + Point * TrailingStop)) || (OrderStopLoss() == 0)) {
OrderModify(OrderTicket(), OrderOpenPrice(), Ask + Point * TrailingStop, OrderTakeProfit(), 0, DarkOrange);
if (!EachTickMode) BarCount = Bars;
continue;
}
}
}
}
}
}
//+------------------------------------------------------------------+
//| Signal Begin(Entry) |
//+------------------------------------------------------------------+
if (Buy1_1 > Buy1_2 && Buy2_1 < Buy2_2 && Buy3_1 > Buy3_2) Order = SIGNAL_BUY;
if (Sell1_1 < Sell1_2 && Sell2_1 > Sell2_2 && Sell3_1 < Sell3_2) Order = SIGNAL_SELL;
//+------------------------------------------------------------------+
//| Signal End |
//+------------------------------------------------------------------+
//Buy
if (Order == SIGNAL_BUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
if(!IsTrade) {
//Check free margin
if (AccountFreeMargin() < (1000 * Lots)) {
Print("We have no money. Free Margin = ", AccountFreeMargin());
return(0);
}
if (UseStopLoss) StopLossLevel = Ask - StopLoss * Point; else StopLossLevel = 0.0;
if (UseTakeProfit) TakeProfitLevel = Ask + TakeProfit * Point; else TakeProfitLevel = 0.0;
Ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, StopLossLevel, TakeProfitLevel, "Buy(#" + MagicNumber + ")", MagicNumber, 0, DodgerBlue);
if(Ticket > 0) {
if (OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES)) {
Print("BUY order opened : ", OrderOpenPrice());
if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Open Buy");
} else {
Print("Error opening BUY order : ", GetLastError());
}
}
if (EachTickMode) TickCheck = True;
if (!EachTickMode) BarCount = Bars;
return(0);
}
}
//Sell
if (Order == SIGNAL_SELL && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
if(!IsTrade) {
//Check free margin
if (AccountFreeMargin() < (1000 * Lots)) {
Print("We have no money. Free Margin = ", AccountFreeMargin());
return(0);
}
if (UseStopLoss) StopLossLevel = Bid + StopLoss * Point; else StopLossLevel = 0.0;
if (UseTakeProfit) TakeProfitLevel = Bid - TakeProfit * Point; else TakeProfitLevel = 0.0;
Ticket = OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, StopLossLevel, TakeProfitLevel, "Sell(#" + MagicNumber + ")", MagicNumber, 0, DeepPink);
if(Ticket > 0) {
if (OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES)) {
Print("SELL order opened : ", OrderOpenPrice());
if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Open Sell");
} else {
Print("Error opening SELL order : ", GetLastError());
}
}
if (EachTickMode) TickCheck = True;
if (!EachTickMode) BarCount = Bars;
return(0);
}
}
if (!EachTickMode) BarCount = Bars;
return(0);
}
//+------------------------------------------------------------------+
Join the MT4talk Telegram channel: https://t.me/MT4talkchannel
Join the MT4talk Telegram group: https://t.me/+XcwLRi9oFOJhYjlk
Watch videos from the MT4talk YouTube channel.
https://www.youtube.com/@MT4talkForexForum/videos
Hello.
I try on it also
I made a backtest.
Then Demo.
It look good.
Thanks.
Manuel
Hi, thanks for sharing.
I made a lot of changes and tested this Forex robot on a real account!
Please look at what I got.
We tested on: FXOpen Broker! Click here to open an FXOpen eWallet!
We tested on this super-fast Forex VPS! It's highly recommended for 24/5 automated trading!
Deposit: $300
Leverage: 1:500
The test time: 4 months.
Total trades: 80
Average trades per month: 20
Total profit: $3,691,567
I tested on the real account!
Note: We made this test for you, to give you a starting point. You should always make your own test.
Have a good trend and the biggest profit!
For detailed test information, please download the files below!
This test showed that this EA has potential. But all traders himself must optimize the EA on his account with many backtests and forward tests.
eu m15 d300 p3.6M AC+AO ea v1 mod.set 1.28 kb, 301 downloads since 2019-12-12
eu m15 d300 p3.6M AC+AO ea v1 mod.zip 41.09 kb, 299 downloads since 2019-12-12
- We are testing robots on FBS Forex broker!
- We are testing robots on FXOpen accounts!
- We are testing robots on LQDFX accounts!
Why don't many people post their daily winning results?
MT4talk PRO members can Turn off MT4talk daily winning result post requirements for $49.99 / month. More info...
Latest profit posts from the Trade Executor EA users.
By using the MT4talk website, you automatically agree to the Forum Rules & Terms of Use, as well as the terms below.
Everything you see on the MT4talk website is created by its users, mainly the members of the MT4talk forum.
What is MT4talk?
MT4talk is an online Forex forum with over 5000 Forex robots and over 3000 Forex indicators uploaded by forum members in the last 10 years, available to download from forum posts. The Uploaded file does not come with support.
The website doesn't sell Forex robots and doesn't provide support for the ones you download. MT4talk offers a PRO membership, allowing you to download unlimited files from forum posts. Even though the site usually doesn't provide support for downloaded Forex robots, if you're new to Forex and need help, you can buy the MT4talk dedicated support membership from the MT4talk forum. The MT4talk Dedicated support subscription is only available for purchase for MT4talk PRO members.
The MT4talk Team also provides an Artificial Intelligence Forex robot called "MT4talk Forex AI Signal - Trade Executor EA" to PRO members. However, this Forex robot is only a bonus and is not included in the original PRO membership.
Updates for the Forex robots may be limited or nonexistent, depending on the creator. If you choose to download any Forex robot or setting file from the forum, you acknowledge that you are using it at your own risk. MT4talk PRO membership is a digital product. Therefore, after you complete the PRO membership purchase, there is no refund available!
We are conducting real-life tests on Forex robots to assess their performance. For certain robots, we may use a demo account to conduct tests, and for other Forex robots, we may use a real Forex account. It's essential to recognize that we are not financial advisors and cannot provide investment guidance. Our objective is to discover effective market analysis solutions through testing various strategies, which could be beneficial to our community.
CFTC RULE 4.41 – HYPOTHETICAL OR SIMULATED PERFORMANCE RESULTS HAVE CERTAIN LIMITATIONS. UNLIKE AN ACTUAL PERFORMANCE RECORD, SIMULATED RESULTS DO NOT REPRESENT ACTUAL TRADING. ALSO, SINCE THE TRADES HAVE NOT BEEN EXECUTED, THE RESULTS MAY HAVE UNDER-OR-OVER COMPENSATED FOR THE IMPACT, IF ANY, OF CERTAIN MARKET FACTORS, SUCH AS LACK OF LIQUIDITY. SIMULATED TRADING PROGRAMS, IN GENERAL, ARE ALSO SUBJECT TO THE FACT THAT THEY ARE DESIGNED WITH THE BENEFIT OF HINDSIGHT. NO REPRESENTATION IS BEING MADE THAT ANY ACCOUNT WILL OR IS LIKELY TO ACHIEVE PROFIT OR LOSSES SIMILAR TO THOSE SHOWN.
Disclaimer - No representation is being made that any Forex account will or is likely to achieve profits or losses similar to those shown on backtests in this forum. In fact, there are frequently sharp differences between hypothetical performance results and the actual results subsequently achieved by any particular trading program. Hypothetical trading does not involve financial risk, and no hypothetical trading record can completely account for the impact of financial risk in actual trading. All information on this forum is for educational purposes only and is not intended to provide financial advice. Any statements posted by forum members or the MT4talk EA Tester Team about profits or income expressed or implied, do not represent a guarantee. Your actual trading may result in losses as no trading system is guaranteed. You accept full responsibilities for your actions, trades, profit or loss, and agree to hold the MT4talk team and forum members of this information harmless in any and all ways.
Affiliates Disclaimer - The website may have links to partner websites, and if you sign up and trade through these links, we will receive a commission. Our affiliate partners are FXOpen, FBS, LQDFX, and MyForexVPS.
Copyright MT4talk.com Forum Rules - Privacy Policy.