| New signals service! | |
|
|||||||
| Register in Forex TSD! | |
|
Trading Systems Leaders in this forum (automated trading systems) are winning more than 3000 pips in a month (30000$ investing one lot every time). Click here to register and get more information |
|
![]() |
|
|
LinkBack | Thread Tools | Display Modes |
|
||||
|
Expert Advisor Upgrader - Turn Simple Into Superb
My next big FREE tool for forex community is the Expert Advisor Upgrader which is currently in active development. Expert Advisor Upgrader will help you turn a few lines of code into a professional expert advisor with above-standard features such as spread reduction, multi-chart support, trailing stop, breakeven, closing before weekend, trading only during a period of time, money management, and many more.
With the expert advisor upgrader, you'll turn a losing into winning expert advisor, or turn good system into best system, simply after a click of "Upgrade" button. Many of you appear to be non-programmers who need their system coded into metatrader expert advisor, to take advantages of automated/robot trading. Some went futher to study mql4 programming but failed when it came to coding the complicated parts such as multiple-chart support, trailing stop, break even... With expert advisor upgrader, you wouldn't need to learn coding that far. Knowing how to use OrderSend() will suffice. Features at a glance:
It's not a fantasy. I've working alpha version in my hand... Sign up in our testers mailing-list now! Let me know by signing up in the list if you want to become beta tester. ![]() |
|
||||
|
interesting idea I hope it works ....
Can you add a feature where we can add news events to start or stop an EA on that event ? Also Can you add a feature to stop the EA after losing a trade of (xxx ) amount of money ( mainly to give the market time to correct the signal) ? Regards, Alan
__________________
“Risk comes from not knowing what you're doing” “Never argue with an idiot. They drag you down to their level then beat you with experience” |
|
|||
|
Is it possible to add a function that flip just the BUY/SELL excution signal just before it reach Meta Trader ?
It quite easy to come up with EA that have a gradual linear downward slope on capital, I have examine the trades taken by various EA, the exit strategy does not really matter, the problem is with the wrong entry signal. If the entry signal can be flip over a "wrong" strategy then becomes the "right" strategy without the hard work of modifying the logic in the EA.As an example, the code for the EA below produces a gradual decline on capital for EURUSD M5 chart. If code can be add into the original code to just flip the BUY/SELL signal (without tempering the existing code other than just adding new lines) just before Meta Trader execute, it would then be a winning EA. Can someone help out with the ENTRY flipping code. #property copyright "Expert Advisor Builder" #property link "http://sufx.core.t3-ism.net/ExpertAdvisorBuilder/" extern int MagicNumber = 0; extern bool SignalMail = False; extern bool EachTickMode = True; extern double Lots = 1.0; extern int Slippage = 3; extern bool StopLossMode = True; extern int StopLoss = 30; extern bool TakeProfitMode = True; extern int TakeProfit = 60; extern bool TrailingStopMode = True; extern int TrailingStop = 30; #define SIGNAL_NONE 0 #define SIGNAL_BUY 1 #define SIGNAL_SELL 2 #define SIGNAL_CLOSEBUY 3 #define SIGNAL_CLOSESELL 4 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 Var1 = iMA(NULL, 0, 7, 5, MODE_SMA, PRICE_CLOSE, Current + 0); double Var2 = iMA(NULL, 0, 7, 0, MODE_SMA, PRICE_CLOSE, Current + 0); double Buy1_1 = iMA(NULL, 0, 7, 5, MODE_SMA, PRICE_CLOSE, Current + 0); double Buy1_2 = iMA(NULL, 0, 7, 0, MODE_SMA, PRICE_CLOSE, Current + 0); double Sell1_1 = iMA(NULL, 0, 7, 0, MODE_SMA, PRICE_CLOSE, Current + 5); double Sell1_2 = iMA(NULL, 0, 7, 0, MODE_SMA, PRICE_CLOSE, Current + 0); //+------------------------------------------------------------------+ //| 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) | //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //| 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(TrailingStopMode && 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) | //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //| 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(TrailingStopMode && 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) Order = SIGNAL_BUY; if (Sell1_1 <= Sell1_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 (StopLossMode) StopLossLevel = Ask - StopLoss * Point; else StopLossLevel = 0.0; if (TakeProfitMode) 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 (StopLossMode) StopLossLevel = Bid + StopLoss * Point; else StopLossLevel = 0.0; if (TakeProfitMode) 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); } //+------------------------------------------------------------------+ |
![]() |
| Bookmarks |
| Thread Tools | |
| Display Modes | |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| RSI Expert Advisor | TF2K | Suggestions for Trading Systems | 4 | 03-21-2007 12:52 PM |
| 50-34 Expert advisor | geisebhum | Suggestions for Trading Systems | 4 | 12-20-2006 05:45 PM |
| CCI Expert Advisor | rodrigokaus | Expert Advisors - Metatrader 4 | 10 | 09-29-2006 06:31 PM |
| expert advisor ? | swirly | Expert Advisors - Metatrader 4 | 3 | 08-30-2006 07:04 AM |