Forex Expert Advisor

Forex Trading ed Expert Advisor
Trading system e Forex EA.

Il mercato Forex  è il terreno ideale per gli expert advisor, i trading system, il trading automatico, che ormai è praticato da molti anni. L'utilizzo dei trading system diventa sempre più diffuso ed applicato sistematicamente. I trader si affidano sempre più a soluzioni automatizzate per garantire la precisione e aumentare le loro possibilità di successo. Il Forex expert advisor non ha emozioni e segue le regole.

Expert Advisor nel Trading
Perché usare un Expert Advisor nel Trading Forex.

Un Expert Advisor non è altro che un software scritto specificamente per la piattaforma MetaTrader. Un expert advisor può fare due cose: solo consigliare i trader che effettuano trading sui cambi, o puo essere programmato per eseguire automaticamente le vere, reali operazioni su un conto con soldi veri. 

Gli Expert Advisor sono piccoli software molto flessibili che possono tenere conto di qualsiasi informazione disponibile sulla piattaforma MetaTrader. Sono scritti nel loro linguaggio di programmazione proprietario chiamato MetaQuotes Language Version 4. Sono trading system automatici che facilitano il trading online.

Forex Expert Advisor - EURUSD Trend Catcher

Un forex Expert advisor che vuole cogliere la tendenza del cambio piu liquido sul FOrex, cioè il trend dell'euro dollaro. L'autore di questo Forex EA Sergey Antipin ha pensato di usare un teme frame a 15 minuti. Descrizione: Il Forex EA coglie le tendenze di lungo quando le quotazione attraversano la media mobile sul time frame di 15min.  La EA ha 50 filtro del rumore pip che impedisce la EA a saltare su ogni piccolo movimento. Testato su 15min coppia EUR / USD tra il 2001 e il 2010 con precisione la storia del 90% con ottimi risultati. EURUSD tendenza CatcherTP = 350 pips;SL = 20 pips;La maggior parte del tempo la EA perde però uno TP supera 17 sconfitte!Quindi in generale è redditizio

eurusdv2.0.mq4

 

 

//+------------------------------------------------------------------+ //| EURUSD trader.mq4 | //| Copyright © 2011, MetaQuotes Software Corp. | //| http://www.metaquotes.net | //+------------------------------------------------------------------+ #property copyright "sergey antipin" #property link "http://www.metaquotes.net" extern double buffer=0; extern double stoploss=20; extern double takeprofit=350; extern double filter=50; extern double ma_value=218; double max_account_balance=0; double max_spread=4; extern double Z=2; bool price_above=false; double M=1; // risk bool trade_ok=true; int ticket1=-1; //------------------------------------------------------------------------------------------------~~~~~~!!!!!!!!!!!!!!!! //------------------------------------------------------------------------------------------------~~~~~~!!!!!!!!!!!!!!!! double entryprice=0; //++++ These are adjusted for 5 digit brokers. int pips2points; // slippage 3 pips 3=points 30=points double pips2dbl; // Stoploss 15 pips 0.0015 0.00150 int Digits.pips; // DoubleToStr(dbl/pips2dbl, Digits.pips) int init(){ if (Digits == 5 || Digits == 3) { // Adjust for five (5) digit brokers. pips2dbl = Point*10; pips2points = 10; Digits.pips = 1; } else { pips2dbl = Point; pips2points = 1; Digits.pips = 0; } // OrderSend(... Slippage.Pips * pips2points, Bid - StopLossPips * pips2dbl if (Bid>iMA(Symbol(),15,ma_value,0,MODE_SMA,PRICE_TYPICAL,0)) price_above=true; else price_above=false; } int deinit() { return(0); } int start() { //Alert(price_above); double SMA_10day=iMA(Symbol(),15,ma_value,0,MODE_SMA,PRICE_TYPICAL,0); // simple ma_value day moving average value double ATR=iATR(Symbol(),60,200,0); //-----risk management (X * (1-0.005*Z)^lose-trades= how much left) - http://mathhelpforum.com/calculus/212440-find-general-formula-n-reductions.html#post767362 M=(AccountBalance()*0.005*Z)/(0.1*stoploss) ; // x% risk per trade if (M<1) M=1; if (AccountBalance()>max_account_balance) max_account_balance=AccountBalance(); //-----end of risk //---------------- open new trades //--- * short trade if (trade_ok) { if ( ( Bid- SMA_10day < buffer* pips2dbl ) && (price_above) && (ATR<40*pips2dbl) ) { ticket1=-1; Alert(MarketInfo(Symbol(),MODE_ASK)-MarketInfo(Symbol(),MODE_BID),"short trade"," atr=", ATR); while (Ask-Bid < max_spread* pips2dbl) //spread < 4 { RefreshRates(); ticket1 = OrderSend(Symbol() , OP_SELL , 0.01*M , Bid , 2*pips2points , 0 ,0); Alert("ALERT!!!!!! ",GetLastError(), "<======"); Sleep(2000); Alert("ALERT!!!!!! ",GetLastError(), "<======"); if (ticket1>0) { OrderModify(ticket1,Bid,Ask+stoploss* pips2dbl , Ask-takeprofit* pips2dbl,0,White); Alert("ALERT!!!!!! ",GetLastError(), "<======"); entryprice=Bid; break; } } trade_ok=false; } //--- * end of short trade else //--- * long trade if ( ( SMA_10day - Ask < buffer* pips2dbl ) && (!price_above) && (ATR<40*pips2dbl)) { Alert(MarketInfo(Symbol(),MODE_ASK)-MarketInfo(Symbol(),MODE_BID),"long trade"," atr=", ATR,price_above); ticket1=-1; while (Ask-Bid<max_spread* pips2dbl) //spread < 4 { RefreshRates(); ticket1 = OrderSend(Symbol() , OP_BUY , 0.01*M , Ask , 2*pips2points , 0 , 0); Alert("ALERT!!!!!! ",GetLastError(), "<======"); Sleep(2000); Alert("ALERT!!!!!! ",GetLastError(), "<======"); if (ticket1>0) { OrderModify(ticket1,Ask,Bid-stoploss* pips2dbl , Bid+takeprofit* pips2dbl,0,White); entryprice=Ask; Alert("ALERT!!!!!! ",GetLastError(), "<======"); break; } } trade_ok=false; } //--- * end of long trade } //---- end of open new trades //-----x pip noice filter if (!trade_ok) { if (price_above) //-- price currently above { if (Bid < entryprice - filter* pips2dbl) //-- price moved below and is not random noice { price_above=false; trade_ok=true; } else if (Ask > entryprice + filter* pips2dbl) //-- price stayed above and is not random noice trade_ok=true; } else if (!price_above) //-- price currently below { if (Ask > entryprice + filter* pips2dbl) //-- price moved above and is not random noice { price_above=true; trade_ok=true; } else if (Bid < entryprice - filter* pips2dbl) //-- price stayed below and is not random noice trade_ok=true; } } //----- end of filter return(0); }
Xtrader un Forex Expert Advisor semplice.

X trader un Forex Expert semplice che utilizza l'incrocio di media mobile. Il Forex EA contiene filtro come una funzione aggiuntiva per aiutare a ottimizzare il vostro o ulteriori ricerche tempo. Le impostazioni predefinite non sono necessariamente le migliori. Ottimizzarle in MetaTrader 4 per ottenere le impostazioni migliori per il tuo calendario preferito e broker. Le impostazioni di inoltro sono illustrate di seguito:CloseOnReverseSignal - impostata su true per chiudere mestieri del segnale precedente, quando si verifica un segnale oggetto dell'opposizione.TimeSettings - impostare l'ora e i minuti di inizio / fine trade.

XTRADER v. 3 //+------------------------------------------------------------------+ //| X trader v3.mq4 | //| Copyright © 2013, www.FxAutomated.com | //| http://www.FxAutomated.com | //+------------------------------------------------------------------+ #property copyright "Copyright © 2013, www.FxAutomated.com" #property link "http://www.FxAutomated.com" //---- input parameters extern double Lots=0.1; extern int Slip=5; extern string StopSettings="Set stops below"; extern double TakeProfit=150; extern double StopLoss=100; extern bool AllowBuy=true; extern bool AllowSell=true; extern bool CloseOnReverseSignal=true; extern string TimeSettings="Set the time range the EA should trade"; extern string StartTime="00:00"; extern string EndTime="23:59"; extern string Ma1="First Ma settings"; extern int Ma1Period=16; extern int Ma1Shift=8; extern int Ma1Method=MODE_SMA; extern int Ma1AppliedPrice=PRICE_MEDIAN; extern string Ma2="Second Ma settings"; extern int Ma2Period=1; extern int Ma2Shift=0; extern int Ma2Method=MODE_SMA; extern int Ma2AppliedPrice=PRICE_MEDIAN; extern string MagicNumbers="Set different magicnumber for each timeframe of a pair"; extern int MagicNumber=103; string freeze; int init() { return(0); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { //---- int StopMultd=10; int Slippage=Slip*StopMultd; double PipsGained,PointsGained; color CpColor; int i,closesell=0,closebuy=0; double TP=NormalizeDouble(TakeProfit*StopMultd,Digits); double SL=NormalizeDouble(StopLoss*StopMultd,Digits); //-------------------------------------------------------------------+ //Check open orders //-------------------------------------------------------------------+ if(OrdersTotal()>0){ for(i=1; i<=OrdersTotal(); i++) // Cycle searching in orders { if (OrderSelect(i-1,SELECT_BY_POS)==true) // If the next is available { if(OrderMagicNumber()==MagicNumber&&OrderSymbol()==Symbol()&&OrderType()==OP_BUY) {int haltbuy=1; } if(OrderMagicNumber()==MagicNumber&&OrderSymbol()==Symbol()&&OrderType()==OP_SELL) {int haltsell=1; } if((OrderType()==OP_BUY)&&(OrderMagicNumber()==MagicNumber)){ double difference=Bid-OrderOpenPrice(); PointsGained=NormalizeDouble(difference/Point,Digits); PipsGained=PointsGained/10; } if((OrderType()==OP_SELL)&&(OrderMagicNumber()==MagicNumber)){ difference=OrderOpenPrice()-Ask; PointsGained=NormalizeDouble(difference/Point,Digits); PipsGained=PointsGained/10; } } } } //-------------------------------------------------------------------+ // time check //------------------------------------------------------------------- if((TimeCurrent()>=StrToTime(StartTime))&&(TimeCurrent()<=StrToTime(EndTime))) { int TradeTimeOk=1; } else { TradeTimeOk=0; } //----------------------------------------------------------------- // indicator checks //----------------------------------------------------------------- // Ma strategy one double MA1_bc=iMA(NULL,0,Ma1Period,Ma1Shift,Ma1Method,Ma1AppliedPrice,0); double MA1_bp=iMA(NULL,0,Ma1Period,Ma1Shift,Ma1Method,Ma1AppliedPrice,1); double MA1_bl=iMA(NULL,0,Ma1Period,Ma1Shift,Ma1Method,Ma1AppliedPrice,2); // Ma strategy two double MA2_bc=iMA(NULL,0,Ma2Period,Ma2Shift,Ma2Method,Ma2AppliedPrice,0); double MA2_bp=iMA(NULL,0,Ma2Period,Ma2Shift,Ma2Method,Ma2AppliedPrice,1); double MA2_bl=iMA(NULL,0,Ma2Period,Ma2Shift,Ma2Method,Ma2AppliedPrice,2); //------------------opening criteria------------------------ if((MA1_bc<MA2_bc)&&(MA1_bp<MA2_bp)&&(MA1_bl>MA2_bl)) { bool buysignal=true;}else{ buysignal=false; } if((MA1_bc>MA2_bc)&&(MA1_bp>MA2_bp)&&(MA1_bl<MA2_bl)) { bool sellsignal=true;}else{ sellsignal=false; } //------------------------------closing criteria-------------- if((MA1_bc>MA2_bc)&&(MA1_bp>MA2_bp)&&(MA1_bl<MA2_bl)){closebuy=1; }else{ closebuy=0; } if((MA1_bc<MA2_bc)&&(MA1_bp<MA2_bp)&&(MA1_bl>MA2_bl)){closesell=1; }else{ closesell=0; } //----------------------------------------------------------------------------------------------------- // Opening criteria //----------------------------------------------------------------------------------------------------- // Open buy if((buysignal==true)&&(closebuy!=1)&&(freeze!="Buying trend")&&(TradeTimeOk==1)){ if(AllowBuy==true&&haltbuy!=1)int openbuy=OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,0,0,"Stochastic rsi buy order",MagicNumber,0,Blue); } // Open sell if((sellsignal==true)&&(closesell!=1)&&(freeze!="Selling trend")&&(TradeTimeOk==1)){ if(AllowSell==true&&haltsell!=1) int opensell=OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,0,0,"Stochastic rsi sell order",MagicNumber,0,Red); } if(buysignal==true){freeze="Buying trend";} if(sellsignal==true){freeze="Selling trend";} //------------------------------------------------------------------------------------------------- // Closing criteria //------------------------------------------------------------------------------------------------- if(closesell==1||closebuy==1||openbuy<1||opensell<1){// start if(OrdersTotal()>0){ for(i=1; i<=OrdersTotal(); i++){ // Cycle searching in orders if (OrderSelect(i-1,SELECT_BY_POS)==true){ // If the next is available if(CloseOnReverseSignal==true){ if(OrderMagicNumber()==MagicNumber&&closebuy==1&&OrderType()==OP_BUY&&OrderSymbol()==Symbol()) { OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,CLR_NONE); } if(OrderMagicNumber()==MagicNumber&&closesell==1&&OrderType()==OP_SELL&&OrderSymbol()==Symbol()) { OrderClose(OrderTicket(),OrderLots(),Ask,Slippage,CLR_NONE); } } // set stops // Calculate take profit double tpb=NormalizeDouble(OrderOpenPrice()+TP*Point,Digits); double tps=NormalizeDouble(OrderOpenPrice()-TP*Point,Digits); // Calculate stop loss double slb=NormalizeDouble(OrderOpenPrice()-SL*Point,Digits); double sls=NormalizeDouble(OrderOpenPrice()+SL*Point,Digits); if(TakeProfit>0){// if tp not 0 if((OrderMagicNumber()==MagicNumber)&&(OrderTakeProfit()==0)&&(OrderSymbol()==Symbol())&&(OrderType()==OP_BUY)){ OrderModify(OrderTicket(),0,OrderStopLoss(),tpb,0,CLR_NONE); } if((OrderMagicNumber()==MagicNumber)&&(OrderTakeProfit()==0)&&(OrderSymbol()==Symbol())&&(OrderType()==OP_SELL)){ OrderModify(OrderTicket(),0,OrderStopLoss(),tps,0,CLR_NONE); } } if(StopLoss>0){// if sl not 0 if((OrderMagicNumber()==MagicNumber)&&(OrderStopLoss()==0)&&(OrderSymbol()==Symbol())&&(OrderType()==OP_BUY)){ OrderModify(OrderTicket(),0,slb,OrderTakeProfit(),0,CLR_NONE); } if((OrderMagicNumber()==MagicNumber)&&(OrderStopLoss()==0)&&(OrderSymbol()==Symbol())&&(OrderType()==OP_SELL)){ OrderModify(OrderTicket(),0,sls,OrderTakeProfit(),0,CLR_NONE); } } } // if available } // cycle }// orders total }// stop //---- int Error=GetLastError(); if(Error==130){Alert("Wrong stops. Retrying."); RefreshRates();} if(Error==133){Alert("Trading prohibited.");} if(Error==2){Alert("Common error.");} if(Error==146){Alert("Trading subsystem is busy. Retrying."); Sleep(500); RefreshRates();} //---- //------------------------------------------------------------------- return(0); } //+--------------------------------End----------------------------------+ int deinit() { Alert("Visit www.fxautomated.com for more forex tools"); return; }

 

Forex Expert Advisor long e short

EDGER - Un nuovo Forex EA doppio, cioè con una parte Long ed una Short che aiuta il trader a piazzare lo stoploss. Che cosa questo Forex Expert Advisor non è? Non è un metodo garantito per il successo! Ovviamente le perdite ci sono come sempre. Non è un sistema per le coperture o hedging. Questo Forex EA è uno strumento per piazzare ordini. Tuttavia, questo EA non effettuare ordini in base a qualsiasi altra cosa. Fermerà il suo lavoro dopo che questo scambio è finito. Quello che cerca questo tool.

Expert Advisor Facili con Molanis Strategy Builder.

Forex Expert Advisor – Con Molanis Strategy Builder i trading system automatici sul Forex, chiamati anche Expert Advisor, o Forex EA, sono facili per tutti, anche per i trader che non sanno programmare. Sono accessibili sia su MetaTrader 4, sia con il nuovo linguaggio MQL5, pensato per il nuovo MetaTrader 5. Infatti con Molanis non è richiesta alcuna conoscenza di programmazione, ma si può costruire un nuovo Forex Expert Advisor creando un diagramma che viene analizzato automaticamente dal generatore di codice Molanis. Il diagramma viene trasformato in pochi secondi in un Expert Advisor anche multi time frame e multi valuta. Fare trading automatico sul Forex è facile con Molanis. 

Scarica Gratis Molanis Strategy Builder Adesso!

 

Forex Expert Advisor personalizzati: Molanis ti consente di utilizzare i tuoi indicatori MT4 o i tuoi trading system per poterli usare con profitto sulle piattaforme trading MetaTrader 4 o 5. 

Money Management

Molanis Strategy Builder e’ utile anche per  facilitare un eccellente money management. I lotti possono essere dimensionati utilizzando una percentuale massima di rischio per operazione. Il software Molanis riduce i lotti dopo una o più perdite consecutive. Il fattore di riduzione dipende da una percentuale fissa (25 punti %) o da un’equazione. 

Molanis Strategy Builder - Caratteristiche  Crea in pochi minuti Expert Advisor in MQL5 senza scrivere alcun codice Utilizza l'analisi tecnica per creare le regole del Trading System Crea il tuo Forex EA con qualsiasi indicatore MT4, o un tuo indicatore personalizzato Crea Expert Advisor multi-time frame e multi-valuta Variabili Stop e Limit create e testate per ottimizzare il vostro forex Expert Advisor I Forex EA possono essere attivi su grafico a barre o tick, con gestione a 4 o 5 cifre Strategie di trading possono essere trasformate in segnali forex con un solo clic Segnali Forex con avvisi a schermo, sonori o e-mail Opzione filtro in modo da attivare il Forex EA solo in certi orari Fornisce un controllo sui picchi di volumi per coppia di valute Forex EA riprova l'esecuzione degli ordini, quando vengono rilevati errori del server  Molanis – Semplice, Veloce, Gratuito 

Molanis Strategy Builder è probabilmente l'ambiente grafico più avanzato disponibile oggi per creare Forex Expert Advisor per MetaTrader. Semplicemente con pochi clic è possibile creare complesse strategie di trading sul Forex e trasformarle in Forex EA completamente funzionanti. Nessuna conoscenza di codice, programmazione o MQL è necessaria. Se sei nuovo del forex, questa è la migliore soluzione per il tuo trading. 

Scarica Gratis Molanis Strategy Builder Adesso!

Expert Advisor

Adjustable - Regolabile MA Expert Advisor Forex è un EA con media personalizzabile che offre la regolazioneflessibile della tradizionale strategia di cross-MA 2. È possibile impostare diversi periodi MA, tipi di MA, differenza minima, stop-loss, take-profit, trailing stop e slittamento. Questo expert Advisor apre sempre in posizione trasversale e si chiude sul cross successivo.

Il back-test del MA esperto consulente MetaTrader regolabile sul periodo di anni 1 ha mostrato il 19,5% di profitto con il massimo drawdown del 10%. La posizione del volume è stato fissato a 0.1 lotti standard. La EA fatto 248 operazioni, di cui il 60,48% delle posizioni è stato remunerativo. Le impostazioni di default sono stati utilizzati in questo back-test sul grafico EUR/USD.

MiniFAQ

Quali sono gli stop-loss e take-profit utilizzato da questo EA?

Di default utilizza fisso stop-loss a 100 pips e take-profit a 70 pips. Il trailing stop è disattivato per default.

Quanto spesso trada?

Il grafico a 5 minuti di EUR / USD (le impostazioni di back-test) questo EA scambi una volta al giorno in media.

Tutte le altre impostazioni di default possono essere utilizzate?

Il test in avanti limitata (che dovrebbe essere più affidabile di un back-test) a AUD / USD grafico M5 ha mostrato alcuni redditizio set-up per questo advisor esperto. Questi parametri devono essere cambiata da default:

StopLoss - 30 TakeProfit - 50 TrailingStop - 20 Period_1 - 50 Period_2 - 10  //+------------------------------------------------------------------+ //| Adjustable Moving Average | //| Copyright © 2009, EarnForex.com | //| http://www.earnforex.com/ | //+------------------------------------------------------------------+ #property copyright "Copyright © 2009, EarnForex" #property link "http://www.earnforex.com" extern double Lots = 0.1; extern int StopLoss = 100; extern int TakeProfit = 70; extern int TrailingStop = 0; extern int Slippage = 3; extern int Period_1 = 20; extern int Period_2 = 17; //0 - SMA, 1 - EMA, 2 - SMMA, 3 - LWMA extern int MA_Method = 1; //The minimum difference between MAs for Cross to count extern int MinDiff = 3; int Magic; //Depend on broker's quotes double Poin; int Deviation; int LastBars = 0; //0 - undefined, 1 - bullish cross (fast MA above slow MA), -1 - bearish cross (fast MA below slow MA) int PrevCross = 0; int SlowMA; int FastMA; //+------------------------------------------------------------------+ //| Initialization | //+------------------------------------------------------------------+ int init() { FastMA = MathMin(Period_1, Period_2); SlowMA = MathMax(Period_1, Period_2); Poin = Point; Deviation = Slippage; //Checking for unconvetional Point digits number if ((Point == 0.00001) || (Point == 0.001)) { Poin *= 10; Deviation *= 10; } Magic = Period()+19472394; return(0); } //+------------------------------------------------------------------+ //| Start function | //+------------------------------------------------------------------+ void start() { if (FastMA == SlowMA) { Print("MA periods should differ."); return; } if (TrailingStop > 0) DoTrailing(); //Wait for the new Bar in a chart. if (LastBars == Bars) return; else LastBars = Bars; if ((Bars < SlowMA) || (IsTradeAllowed() == false)) return; CheckCross(); } //+------------------------------------------------------------------+ //| Check for cross and open/close the positions respectively | //+------------------------------------------------------------------+ void CheckCross() { double FMA_Current = iMA(NULL, 0, FastMA, 0, MA_Method, PRICE_CLOSE, 0); double SMA_Current = iMA(NULL, 0, SlowMA, 0, MA_Method, PRICE_CLOSE, 0); if (PrevCross == 0) //Was undefined { if ((FMA_Current - SMA_Current) >= MinDiff * Poin) PrevCross = 1; //Bullish state else if ((SMA_Current - FMA_Current) >= MinDiff * Poin) PrevCross = -1; //Bearish state return; } else if (PrevCross == 1) //Was bullish { if ((SMA_Current - FMA_Current) >= MinDiff * Poin) //Became bearish { ClosePrev(); fSell(); PrevCross = -1; } } else if (PrevCross == -1) //Was bearish { if ((FMA_Current - SMA_Current) >= MinDiff * Poin) //Became bullish { ClosePrev(); fBuy(); PrevCross = 1; } } } //+------------------------------------------------------------------+ //| Close previous position | //+------------------------------------------------------------------+ void ClosePrev() { int total = OrdersTotal(); for (int i = 0; i < total; i++) { if (OrderSelect(i, SELECT_BY_POS) == false) continue; if ((OrderSymbol() == Symbol()) && (OrderMagicNumber() == Magic)) { if (OrderType() == OP_BUY) { RefreshRates(); OrderClose(OrderTicket(), OrderLots(), Bid, Deviation); } else if (OrderType() == OP_SELL) { RefreshRates(); OrderClose(OrderTicket(), OrderLots(), Ask, Deviation); } } } } //+------------------------------------------------------------------+ //| Sell | //+------------------------------------------------------------------+ int fSell() { double SL, TP; RefreshRates(); if (StopLoss > 0) SL = Bid + StopLoss * Poin; else SL = 0; if (TakeProfit > 0) TP = Bid - TakeProfit * Poin; else TP = 0; int result = OrderSend(Symbol(), OP_SELL, Lots, Bid, Deviation, SL, TP, "Adjustable MA", Magic); if (result == -1) { int e = GetLastError(); Print(e); } else return(result); } //+------------------------------------------------------------------+ //| Buy | //+------------------------------------------------------------------+ int fBuy() { double SL, TP; RefreshRates(); if (StopLoss > 0) SL = Ask - StopLoss * Poin; else SL = 0; if (TakeProfit > 0) TP = Ask + TakeProfit * Poin; else TP = 0; int result = OrderSend(Symbol(), OP_BUY, Lots, Ask, Deviation, SL, TP, "Adjustable MA", Magic); if (result == -1) { int e = GetLastError(); Print(e); } else return(result); } void DoTrailing() { int total = OrdersTotal(); for (int pos = 0; pos < total; pos++) { if (OrderSelect(pos, SELECT_BY_POS) == false) continue; if ((OrderMagicNumber() == Magic) && (OrderSymbol() == Symbol())) { if (OrderType() == OP_BUY) { RefreshRates(); if (Bid - OrderOpenPrice() >= TrailingStop * Poin) //If profit is greater or equal to the desired Trailing Stop value { if (OrderStopLoss() < (Bid - TrailingStop * Poin)) //If the current stop-loss is below the desired trailing stop level OrderModify(OrderTicket(), OrderOpenPrice(), Bid - TrailingStop * Poin, OrderTakeProfit(), 0); } } else if (OrderType() == OP_SELL) { RefreshRates(); if (OrderOpenPrice() - Ask >= TrailingStop * Poin) //If profit is greater or equal to the desired Trailing Stop value { if (OrderStopLoss() > (Ask + TrailingStop * Poin)) //If the current stop-loss is below the desired trailing stop level OrderModify(OrderTicket(), OrderOpenPrice(), Ask + TrailingStop * Poin, OrderTakeProfit(), 0); } } } } } //+------------------------------------------------------------------+  

Leggi anche:

Forex Expert Advisor Expert Advisor - Trading Automatico Come caricare gli EA nella Piattaforma MT4 Come avviene la negoziazione sul forex Che funzione ha il forex? I vantaggi del Forex market rispetto altri mercati di negoziazione Il mercato Forex e alcune caratteristiche Indicatore Metatrader - Forex OFF Trend Free Metatrader Indicators
Expert Advisor

My Picky Breakout Expert Advisor Forex è basato su una strategia di trading giornaliero breakout semplice. Entra posizione lunga se la barra precedente è elevato sopra precedenti 8 massimi; ti entra posizione corta se la barra precedente bassa è al di sopra precedenti 8 bassi. La posizione viene mantenuta aperta per 5 bar (giorni) o fino a quando il segnale d'inversione è generato. I segnali vengono generati solo il martedì, mercoledì e giovedì. Non sono previsti livelli di stop loss o profit . L'expert Advisor controlla esplicitamente l'apertura di nuovi bar.

Il back-test del MT4 Expert advisor MyPickyBreakout su più anni, 4, ha dato i seguenti risultati per EUR/USD, timeframe giornaliero e 0,1 volume del lotto standard per posizione - 2.776 dollari di profitto netto a 10 mila dollari a partire account con il relativo prelievo massimo al 8,15%. Si tratta di un termine a basso rischio EA lungo.

Mini Domande.Quali sono gli stop-loss e take-profit utilizzato da questo EA?

Non usa stop-loss o livelli di take-profit. Va a chiudere i suoi ordini.

Quanto spesso lo scambio?

Il quotidiano EUR/USD grafico (le impostazioni ottimali) questo EA commercio 2-3 volte al mese.

Quali parametri di input insolito utilizza?•BarsToLookUp (default = 8) - barre (giorni) da confrontare con l'ultima barra per determinare se il breakout è accaduto. •MinDiff (default = 3) - importo minimo di pips di differenza tra alti bar 'o bassi a ritenere che una maggiore o minore di un altro. •MaxDuration (default = 5) - durata massima di posizioni in bar (giorni).

 

//+------------------------------------------------------------------+ //| myPickyBreakout.mq4 | //| Copyright © 2009 | //| | //| | //| | //+------------------------------------------------------------------+ #property copyright "Copyright © 2009, EarnForex.com" #property link "http://www.earnforex.com" extern double Lots = 0.1; extern double Slippage = 5; extern int BarsToLookUp = 8; extern int MinDiff = 3; extern int MaxDuration = 5; int Magic; int Duration = 0; int LastBars = 0; int OT; int init() { Magic = Period()+59172491; return(0); } //+------------------------------------------------------------------+ //| Random entry expert advisor | //+------------------------------------------------------------------+ int start() { if (AccountFreeMargin() < (Lots*2*1000)) { //Print("Free margin level is too low."); return(0); } if (Lots < 0.01) { Print("Lots below 0.01."); return(0); } //Wait for the new Bar in a chart. if (LastBars == Bars) return(0); else LastBars = Bars; int count = 0; int total = OrdersTotal(); for (int pos = 0; pos < total; pos++) { if (OrderSelect(pos, SELECT_BY_POS) == false) continue; if ((OrderMagicNumber() == Magic) && (OrderSymbol() == Symbol())) { OT = OrderTicket(); count = 1; Duration++; } } if (Duration == MaxDuration) { CloseOrder(OT); count = 0; } //Let's check if the last bar was highest high or lowest low in BarsToLookUp last bars int H = 0; int L = 0; for (int i = 2; i <= (BarsToLookUp+1); i++) { if ((High[1] - High[i]) > MinDiff*Point) H++; if ((Low[i] - Low[1]) > MinDiff*Point) L++; } //Trade only on Tuesdays, Wednesdays and Thursdays if ((DayOfWeek() < 2) || (DayOfWeek() > 4)) return(0); if ((H == BarsToLookUp) && (L == BarsToLookUp)) { if (count > 0) return(0); if (Close[1] >= Open[1]) fBuy(); else fSell(); } else if (H == BarsToLookUp) { if ((count > 0) && (OrderType() == OP_SELL)) CloseOrder(OT); if (!((count > 0) && (OrderType() == OP_BUY))) fBuy(); } else if (L == BarsToLookUp) { if ((count > 0) && (OrderType() == OP_BUY)) CloseOrder(OT); if (!((count > 0) && (OrderType() == OP_SELL))) fSell(); } } //+------------------------------------------------------------------+ //| Buy | //+------------------------------------------------------------------+ void fBuy() { RefreshRates(); int result = OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,0,0,"myPickyBreakout",Magic,0); if (result == -1) { int e = GetLastError(); Print(e); } Duration = 0; } //+------------------------------------------------------------------+ //| Sell | //+------------------------------------------------------------------+ void fSell() { RefreshRates(); int result = OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,0,0,"myPickyBreakout",Magic,0); if (result == -1) { int e = GetLastError(); Print(e); } Duration = 0; } //+------------------------------------------------------------------+ //| Close all orders opened by this EA | //+------------------------------------------------------------------+ void CloseOrder(int OT) { RefreshRates(); if (OrderType() == OP_BUY) OrderClose(OT, Lots, Bid, Slippage); if (OrderType() == OP_SELL) OrderClose(OT, Lots, Ask, Slippage); Duration = 0; }

Forex Expert Advisor.

Avviso. I Forex Expert Advisor ed i mercati finanziari comportano rischi. Ti invitiamo a consultare il " Disclaimer " e la " Privacy "