EA pour UKLM free forex signals
Publié : 05 oct. 2016, 22:01
Ce qui serait génial c'est que quelqu'un se dévoue pour coder un petit EA qui passe les trades.
Bourse / Trading / Finance / Économie / Crypto Monnaies / FinTech
http://videobourse.fr/forum-forex/
neo-13 a écrit :une explication claire et précise serait top.
Pour faire au plus simple, inutile de gérer les deux signaux dans le même EA.neo-13 a écrit :Hello,
je veux bien le faire, ca semble pas trop compliqué, reste a savoir si vous voulez intégrer les news et donc le décalage.
Si c'est ok, merci de me dire précisément les conditions d'entrées et de sorties, je pense les avoir compris, mais par précaution, une explication claire et précise serait top.
Entrée 14h30 sortie sur tp1 ou 21h.
Avec 2 tp possible, c'est ca?
Rien d'autres?
* étant client chez Activtrades je dispose de l'application smartorderneo-13 a écrit :*Je suppose que tu as une fonction de passage d'ordre haut de gamme avec gestion des erreurs, etc. ?
Code : Tout sélectionner
//+------------------------------------------------------------------+
//| time trader.mq4 |
//| Copyright © 2011, www.FxAutomated.com |
//| http://www.FxAutomated.com |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2011, www.FxAutomated.com"
#property link "http://www.FxAutomated.com"
//---- input parameters
extern string time_trader_v1.1="visit www.FxAutomated.com for more!!!";
extern double Lots=0.1;
extern int TakeProfit=20;
extern int StopLoss=20;
extern int Slip=5;
extern int BuyMagicNumber =10001;
extern int SellMagicNumber =10002;
extern string TradeSettings="Mt4 time(min-max): hours 0-23, minutes 0-59, seconds 0-59";
extern bool AllowBuy=true;
extern bool AllowSell=true;
extern int TradeHour=0;
extern int TradeMinutes=0;
extern int TradeSeconds=0;
extern string OurSite="www.FxAutomated.com";
extern string SignalsAndManagedAccounts="www.TradingBug.com";
//+------------------------------------------------------------------+
//| expert starts |
//+------------------------------------------------------------------+
int start()
{
//----
int StopMultd,Sleeper=1;
int digits=MarketInfo("EURUSD",MODE_DIGITS);
if(digits==5){StopMultd=10;} else{StopMultd=1;}
double TP=NormalizeDouble(TakeProfit*StopMultd,Digits);
double SL=NormalizeDouble(StopLoss*StopMultd,Digits);
double Slippage=NormalizeDouble(Slip*StopMultd,Digits);
// Calculate stop loss
double slb=NormalizeDouble(Ask-SL*Point,Digits);
double sls=NormalizeDouble(Bid+SL*Point,Digits);
// Calculate take profit
double tpb=NormalizeDouble(Ask+TP*Point,Digits);
double tps=NormalizeDouble(Bid-TP*Point,Digits);
//-------------------------------------------------------------------+
//Check open orders
//-------------------------------------------------------------------+
if(OrdersTotal()>0){
for(int i=1; i<=OrdersTotal(); i++) // Cycle searching in orders
{
if (OrderSelect(i-1,SELECT_BY_POS)==true) // If the next is available
{
if(OrderMagicNumber()==BuyMagicNumber) {int halt1=1;}
if(OrderMagicNumber()==SellMagicNumber) {int halt2=1;}
}
}
}
//-------------------------------------------------------------------+
if((halt1!=1)&&(AllowBuy==true)){// halt1
// Buy criteria
if ((TradeHour==Hour())&&(TradeMinutes==Minute())&&(TradeSeconds>=Seconds())) //Signal Buy
{
int openbuy=OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,slb,tpb,"time trader buy order ",BuyMagicNumber,0,Blue);
if(openbuy<1){int buyfail=1;}
}
}// halt1
if((halt2!=1)&&(AllowSell==true)){// halt2
RefreshRates();
// Sell criteria
if ((TradeHour==Hour())&&(TradeMinutes==Minute())&&(TradeSeconds>=Seconds())) //Signal Sell
{
int opensell=OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,sls,tps,"time trader sell order ",SellMagicNumber,0,Green);
if(opensell<1){int sellfail=1;}
}
}// halt2
//-------------------------------------------------------------------+
// Error processing
//-------------------------------------------------------------------+
if(buyfail==1||sellfail==1){
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();}
}
// if(openbuy==true||opensell==true)Sleep(1*60*1000*Sleeper);
//-------------------------------------------------------------------
return(0);
}
//+-----------------------------------neo-13 a écrit :
2 Buy avec TP identiques, c'est une erreur de frappe ou c'est bien ça?
Code : Tout sélectionner
//+------------------------------------------------------------------+
//| TimeEntry.mq4 |
//| Copyright © 2008, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2008, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net"
extern double Lots1 = 0.01;
extern int StopLoss1 = 50;
extern int TakeProfit1 = 100;
extern bool Long_Entry1 = true; // Set to "true" or "false".
extern bool Short_Entry1 = false; // You can have both Long_Entry & Short Entry set to "true".
extern int Hour_For_Long_Entry1 = 16; //this is your broker's time as displayed in the MArket Watch window.
extern int Minute_For_Long_Entry1 = 35;
extern int Seconds_For_Long_Entry1 = 35;
extern int Hour_For_Short_Entry1 = 9; //this is your broker's time as displayed in the Market Watch window.
extern int Minute_For_Short_Entry1 = 53;
extern int Seconds_For_Short_Entry1 = 53;
extern int Slippage =5;
int MagicNumber=0;
bool Place_Sell1=true;
bool Place_Buy1=true;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----
if (Symbol()=="AUDCADm" || Symbol()=="AUDCAD") {MagicNumber=101;}
if (Symbol()=="AUDCHFm" || Symbol()=="AUDCHF") {MagicNumber=102;}
if (Symbol()=="AUDJPYm" || Symbol()=="AUDJPY") {MagicNumber=103;}
if (Symbol()=="AUDNZDm" || Symbol()=="AUDNZD") {MagicNumber=104;}
if (Symbol()=="AUDUSDm" || Symbol()=="AUDUSD") {MagicNumber=105;}
if (Symbol()=="CADCHFm" || Symbol()=="CADCHF") {MagicNumber=106;}
if (Symbol()=="CADJPYm" || Symbol()=="CADJPY") {MagicNumber=107;}
if (Symbol()=="CHFJPYm" || Symbol()=="CHFJPY") {MagicNumber=108;}
if (Symbol()=="EURAUDm" || Symbol()=="EURAUD") {MagicNumber=109;}
if (Symbol()=="EURCADm" || Symbol()=="EURCAD") {MagicNumber=110;}
if (Symbol()=="EURCHFm" || Symbol()=="EURCHF") {MagicNumber=111;}
if (Symbol()=="EURGBPm" || Symbol()=="EURGBP") {MagicNumber=112;}
if (Symbol()=="EURJPYm" || Symbol()=="EURJPY") {MagicNumber=113;}
if (Symbol()=="EURUSDm" || Symbol()=="EURUSD") {MagicNumber=114;}
if (Symbol()=="EURNZdm" || Symbol()=="EURNZD") {MagicNumber=115;}
if (Symbol()=="GBPAUDm" || Symbol()=="GBPAUD") {MagicNumber=116;}
if (Symbol()=="GBPCADm" || Symbol()=="GBPCAD") {MagicNumber=117;}
if (Symbol()=="GBPCHFm" || Symbol()=="GBPCHF") {MagicNumber=118;}
if (Symbol()=="GBPJPYm" || Symbol()=="GBPJPY") {MagicNumber=119;}
if (Symbol()=="GBPNZDm" || Symbol()=="GBPNZD") {MagicNumber=120;}
if (Symbol()=="GBPUSDm" || Symbol()=="GBPUSD") {MagicNumber=121;}
if (Symbol()=="NZDCADm" || Symbol()=="NZDCAD") {MagicNumber=122;}
if (Symbol()=="NZDCHFm" || Symbol()=="NZDCHF") {MagicNumber=123;}
if (Symbol()=="NZDJPYm" || Symbol()=="NZDJPY") {MagicNumber=124;}
if (Symbol()=="NZDUSDm" || Symbol()=="NZDUSD") {MagicNumber=125;}
if (Symbol()=="USDCHFm" || Symbol()=="USDCHF") {MagicNumber=126;}
if (Symbol()=="USDJPYm" || Symbol()=="USDJPY") {MagicNumber=127;}
if (Symbol()=="USDCADm" || Symbol()=="USDCAD") {MagicNumber=128;}
if (Symbol()=="USDMXNm" || Symbol()=="USDMXN") {MagicNumber=129;}
if (MagicNumber==0) {MagicNumber = 199;}
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
//----
if(Long_Entry1==true && Hour()==Hour_For_Long_Entry1 && Minute()==Minute_For_Long_Entry1 && Seconds() >=Seconds_For_Long_Entry1 && IsTradeAllowed()==true)
{
if(Place_Buy1 == true)
{
OrderSend(Symbol(),OP_BUY,Lots1,Ask,Slippage,Ask-StopLoss1*Point,Ask+TakeProfit1*Point,"WNV Buy",MagicNumber,0,Blue);
Place_Buy1=false;
{
if(IsTradeAllowed()==false) Print("Trade not allowed");
}
return(0);
}
}
if(Short_Entry1==true && Hour()==Hour_For_Short_Entry1 && Minute()>=Minute_For_Short_Entry1 && Seconds_For_Short_Entry1 && IsTradeAllowed()==true)
{
if(Place_Sell1 == true)
{
OrderSend(Symbol(),OP_SELL,Lots1,Bid,Slippage,Bid+StopLoss1*Point,Bid-TakeProfit1*Point,"WNV Sell",MagicNumber,0,Red);
Place_Sell1=false;
{
if(IsTradeAllowed()==false) Print("Trade not allowed");
}
return(0);
}
}
//----
return(0);
}
//+------------------------------------------------------------------+Merci pour l'intention portéeneo-13 a écrit : @UKLM
merci de me dire si tu souhaites que je transmette le code de l'EA.
@UKLMUKLM a écrit :Merci pour l'intention portéeneo-13 a écrit : @UKLM
merci de me dire si tu souhaites que je transmette le code de l'EA.
Le TP est toujours en référence du cours d'ouverture à 14h30
Si TP = 25 pips
si un ordre Sell est executé à 1,0145
et le cours d'ouverture est 1.0149
le TP est fixé à 1.0124 et non 1,0120
Humm...neo-13 a écrit :Désolé mais je ne comprends pas.
Si on rentre à 14:29:50, open 14:30 étant inconnu, quel est le cours de référence?
14?
14:29?
14h:30? si tel est le cas on doit alors attendre 14h30 pour positionner le tp, c'est ça? mais dans ce cas si annonce et que le cours est au dessus on sort au marché??
ça c'est le point le plus délicat à traiter quand le marché décale rapidement à l'ouverture.neo-13 a écrit : 14h:30? si tel est le cas on doit alors attendre 14h30 pour positionner le tp, c'est ça?
mais dans ce cas si annonce et que le cours est au dessus on sort au marché??
ATP ?neo-13 a écrit : Lorsqu'il est l'heure indiquée dans les params d'entrées, le système:
-si TypeOrder="b" achète ATP au ASK et place le takeProfit à ASK+tp
-si TypeOrder="s" vend ATP au bid et place le takeProfit à BID-tp
Code : Tout sélectionner
2 14:29:51.797 UKLM_v1 EURUSD,M5: open #46901846 sell stop 0.01 EURUSD at 1.11583 tp: 1.10925 ok
2 14:29:53.079 UKLM_v1 EURUSD,M5: open #46901847 sell stop 0.01 EURUSD at 1.11585 tp: 1.10514 ok
2 14:29:53.704 UKLM_v1 EURUSD,M5: open #46901848 buy stop 0.01 EURUSD at 1.11590 tp: 1.11855 ok
2 14:29:55.735 UKLM_v1 EURUSD,M5: open #46901850 sell stop 0.01 EURUSD at 1.11584 tp: 1.11319 okneo-13 a écrit :Tu as raison, j'ai corrigé. (Problème des copier/coller)
Code : Tout sélectionner
0 14:30:01.126 '109679': order sell market 0.01 EURUSD sl: 0.00000 tp: 1.11934
0 14:30:01.142 '109679': order buy market 0.01 EURUSD sl: 0.00000 tp: 1.12257
0 14:30:01.142 '109679': order sell market 0.01 EURUSD sl: 0.00000 tp: 1.11731
0 14:30:01.142 '109679': order sell market 0.01 EURUSD sl: 0.00000 tp: 1.11528
0 14:30:01.142 '109679': order sell market 0.01 EURUSD sl: 0.00000 tp: 1.11731
0 14:30:01.142 '109679': order sell market 0.01 EURUSD sl: 0.00000 tp: 1.11541
0 14:30:01.142 '109679': order buy market 0.01 EURUSD sl: 0.00000 tp: 1.12860
1 14:30:01.314 '109679': order sell 0.01 EURUSD opening at market sl: 0.00000 tp: 1.11934 failed [Invalid S/L or T/P]
0 14:30:01.314 '109679': order sell market 0.01 EURUSD sl: 0.00000 tp: 1.11934
0 14:30:01.314 '109679': order was opened : #46918516 buy 0.01 EURUSD at 1.10866 sl: 0.00000 tp: 1.12257
1 14:30:01.345 '109679': order sell 0.01 EURUSD opening at market sl: 0.00000 tp: 1.11731 failed [Invalid S/L or T/P]
1 14:30:01.345 '109679': order sell 0.01 EURUSD opening at market sl: 0.00000 tp: 1.11528 failed [Invalid S/L or T/P]
0 14:30:01.345 '109679': order sell market 0.01 EURUSD sl: 0.00000 tp: 1.11731
0 14:30:01.345 '109679': order sell market 0.01 EURUSD sl: 0.00000 tp: 1.11528
1 14:30:01.376 '109679': order sell 0.01 EURUSD opening at market sl: 0.00000 tp: 1.11731 failed [Invalid S/L or T/P]
1 14:30:01.376 '109679': order sell 0.01 EURUSD opening at market sl: 0.00000 tp: 1.11541 failed [Invalid S/L or T/P]
0 14:30:01.376 '109679': order sell market 0.01 EURUSD sl: 0.00000 tp: 1.11731
0 14:30:01.376 '109679': order sell market 0.01 EURUSD sl: 0.00000 tp: 1.11541
0 14:30:01.408 '109679': order was opened : #46918519 buy 0.01 EURUSD at 1.10866 sl: 0.00000 tp: 1.12860
1 14:30:01.439 '109679': order sell 0.01 EURUSD opening at market sl: 0.00000 tp: 1.11934 failed [Invalid S/L or T/P]
1 14:30:01.517 '109679': order sell 0.01 EURUSD opening at market sl: 0.00000 tp: 1.11731 failed [Invalid S/L or T/P]
1 14:30:01.955 '109679': order sell 0.01 EURUSD opening at market sl: 0.00000 tp: 1.11528 failed [Invalid S/L or T/P]
neo-13 a écrit :Désolé,
ah moi suis ok pour partager le code, mais j'ai posé 3 fois la question et aucune réponse.
J'ai pas tout à fait compris le fait que tu requiers l'autorisation de UKLM pour partager ton code ?neo-13 a écrit :@UKLM
merci de me dire si tu souhaites que je transmette le code de l'EA.
@NAP
merci pour tes remerciements, toutefois, et à moins que UKLM ne m'autorise à publier le code tu ne pourras pas t'en servir comme base à tes futurs développement, le .exe n'offrant pas cette possibilité.
non pas testé encore, je ne suis pas vraiment concerné car j'ai un add-on qui fait très bien le job dans des conditions normales donc tu peux délivrer le code à qui tu veux, je ne suis pas partie prenante.neo-13 a écrit :De plus, je viens de faire un test et tout fonctionne pour moi.
Tu as bien la UKLM3?