je vais jetter un coup d'oeil et essayer d'en faire un EA...
je promet rien les gars ;-)
![]() |
|
![]() |
|
Dimanche 27 Mai 2012
Trader-Forex.fr en RSS
je vais jetter un coup d'oeil et essayer d'en faire un EA...
je promet rien les gars ;-)
Comptes réels Pepperstone razor/vps Ikoula + GridMeUp 3.5
My fxbook
merci EA23
je pense vraiment qu on pourrais faire un truc de ca
en 5 ou 15 minutes en manuel c est pas mal
mais helas pas le temps de rester devant mon pc
a+
eurusd 3.jpg
alors vous en pensez qoui ??
lol
bonjour a tous helas plus personne lol
domage ca marcheeeeeeeeeeeeeeeee ( en manuel helas )
qui pourrais me rajouter une ligne pour fermeture de la position des que le RSI arrive a a 70 ou 30
selon le sens bien sur
merci d avance
quandj ai de on resultats je vous le fait partager sans soucis
#define SIGNAL_NONE 0
#define SIGNAL_BUY 1
#define SIGNAL_SELL 2
//Paramètres SL/TP/TS
bool EachTickMode = False;//mode chaque type non activé par défaut
extern int Slippage = 3;
extern bool UseStopLoss = True;
extern int StopLoss = 120;
extern bool UseTakeProfit = False;//non activée par défaut
extern int TakeProfit = 250;
double StopLossLevel;
double TakeProfitLevel;
extern bool UseTrailingStop=false;
extern int TrailingStop=100;
extern int TSLevel;
bool isTrailingStop=false;
double trailingstopLevel;
//Paramètres MACD
//MACD rapide
extern string MACD_CONFIG_1;
extern int ema_period_courte_1=25;
extern int ema_period_longue_1=35;
extern int ma_period=15;
//MONEY MANAGEMENT------------------------------>
extern double Size = 0.1;//taille des prises de position en contrats ou lots de base
extern double nbFoisMargeDispo = 2.0;
extern int MagicNumber=9624;//pour différencier les EAs
extern bool ActivMail=true;
extern bool ActivAlertes=true;
int Current;
double bougieCourrante;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
if (EachTickMode) Current = 0; else Current = 1;
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start(){
double ma_rapide_now = iMACD(NULL, Period(), ema_period_courte_1, ema_period_longue_1, ma_period, PRICE_CLOSE, MODE_MAIN, Current);
double ma_rapide_old = iMACD(NULL, Period(), ema_period_courte_1, ema_period_longue_1, ma_period, PRICE_CLOSE, MODE_MAIN, Current+1);
double ma_lente_now = iMACD(NULL, Period(), ema_period_courte_1, ema_period_longue_1, ma_period, PRICE_CLOSE, MODE_SIGNAL, Current);
double ma_lente_old = iMACD(NULL, Period(), ema_period_courte_1, ema_period_longue_1, ma_period, PRICE_CLOSE, MODE_SIGNAL, Current+1);
double price_now=Close[Current];
double price_old=Close[Current+1];
bool IsTrade = False;
int Total;
int Signal=SIGNAL_NONE;
//+------------------------------------------------------------------+
//| Check Positions opened |
//+------------------------------------------------------------------+
Total = OrdersTotal();
for (int i = Total-1; i >=0; i --) {
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if (OrderMagicNumber()!=MagicNumber) continue;
//+------------------------------------------------------------------+
//| Order opened |
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| Long order opened |
//+------------------------------------------------------------------+
if((OrderType() == OP_BUY) && (OrderSymbol() == Symbol())) {
IsTrade = True;
if (ma_rapide_now<ma_lente_now){
CloseOrder(OrderTicket(), OrderType(), OrderLots(), Bid, Slippage, Red);
IsTrade = False;
}
/* TRAILING STOP */
if (UseTrailingStop)trailingstopLevel=OrderStopLoss() +TSLevel*Point;
{
if (Bid-OrderOpenPrice()>TrailingStop*Point){
{
if (OrderStopLoss()< Bid-StopLoss*Point)
{
OrderModify(OrderTicket(),OrderOpenPrice(),trailin gstopLevel, OrderTakeProfit(),0);
}
}
}
}
}
//+------------------------------------------------------------------+
//| Short order opened |
//+------------------------------------------------------------------+
if((OrderType() == OP_SELL) && (OrderSymbol() == Symbol())) {
IsTrade = True;
if (ma_rapide_now>ma_lente_now){
CloseOrder(OrderTicket(), OrderType(), OrderLots(), Ask, Slippage, Red);
IsTrade = False;
}
/* TRAILING STOP */
if (UseTrailingStop)trailingstopLevel=OrderStopLoss()-TSLevel*Point;
{
if (OrderOpenPrice()-Ask>TrailingStop*Point)
{
if (OrderStopLoss()> Ask+StopLoss*Point)
{
OrderModify(OrderTicket(),OrderOpenPrice(),trailin gstopLevel, OrderTakeProfit(),0);
}
}
}
}
}//end for order opened
//+------------------------------------------------------------------+
//| No Order opened |
//+------------------------------------------------------------------+
if (IsTrade==false) {
//+------------------------------------------------------------------+
//| Signal Begin(Entry) |
//+------------------------------------------------------------------+
/*BUY CONDITIONS */
if ((ma_rapide_now>ma_lente_now)&&(ma_rapide_old<ma_l ente_old)){
if (UseStopLoss) StopLossLevel = NormalizeDouble(Ask - StopLoss * MarketInfo(Symbol(),MODE_POINT),Digits); else StopLossLevel = 0.0;
if (UseTakeProfit) TakeProfitLevel = NormalizeDouble(Ask + TakeProfit * MarketInfo(Symbol(),MODE_POINT),Digits); else TakeProfitLevel = 0.0;
isTrailingStop=false;
RefreshRates();
int ticket = SendOrder(Symbol(), OP_BUY, Size(), Ask, Slippage, StopLossLevel, TakeProfitLevel, "Buy(#" + MagicNumber + ")", MagicNumber, 0, Green);
OrderSelect(ticket, SELECT_BY_TICKET);
if (ActivMail) SendMail(OrderSymbol()+" : BUY Order ouvert par Moyenne MACD", OrderLots()+" lots at " +OrderOpenPrice());
if (ActivAlertes) Alert(OrderSymbol()+" : BUY Order ouvert par Moyenne MACD", OrderLots()+" lots at " +OrderOpenPrice());
}
/*SELL CONDITIONS */
if ((ma_rapide_now<ma_lente_now)&&(ma_rapide_old>ma_l ente_old)){
if (UseStopLoss) StopLossLevel = NormalizeDouble(Bid + StopLoss * MarketInfo(Symbol(),MODE_POINT),Digits); else StopLossLevel = 0.0;
if (UseTakeProfit)TakeProfitLevel = NormalizeDouble(Bid - TakeProfit * MarketInfo(Symbol(),MODE_POINT),Digits); else TakeProfitLevel = 0.0; RefreshRates();
isTrailingStop=false;
RefreshRates();
ticket = SendOrder(Symbol(), OP_SELL, Size(), Bid, Slippage,StopLossLevel, TakeProfitLevel, "Sell(#" + MagicNumber + ")", MagicNumber, 0, Blue);
OrderSelect(ticket, SELECT_BY_TICKET);
if (ActivMail) SendMail(OrderSymbol()+" : SELL Order ouvert par Moyenne MACD", OrderLots()+" lots at " +OrderOpenPrice());
if (ActivAlertes) Alert(OrderSymbol()+" : SELL Order ouvert par Moyenne MACD", OrderLots()+" lots at " +OrderOpenPrice());
}
}//end if no order opened
return(0);
}
//+------------------------------------------------------------------+
//END START Function
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//Send Order Function
//+------------------------------------------------------------------+
int SendOrder(string symbol, int op, double size, double price, double slippage, double stoploss, double takeprofit, string comment, int magic, datetime expiration, color arrow_color ){
//Check free margin
if (AccountFreeMargin() < (nbFoisMargeDispo * size*MarketInfo(Symbol(),MODE_MARGINREQUIRED))) {
Print("Il n y a plus assez d argent. Free Margin = ", AccountFreeMargin());
Comment ("Il n y a plus assez d argent. Free Margin = ", AccountFreeMargin());
return(0);
}
int Total=OrdersEATotal();
int Ticket = OrderSend(symbol, op, size, price, slippage, stoploss, takeprofit, comment, magic, expiration, arrow_color);
if(Ticket >= 0) {
if (OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES))
if (op==1) Print("SELL order opened : ", OrderOpenPrice());
if (op==0) Print("BUY order opened : ", OrderOpenPrice());
} else {
if (op==1) Print("Error opening SELL order : ", GetLastError());
if (op==0) Print("Error opening BUY order : ", GetLastError());
int k=0;
while ((Ticket<0)&&(k<1000)){
if (k!=0){
if (op==1) Print("Error opening SELL order : ", GetLastError());
if (op==0) Print("Error opening BUY order : ", GetLastError());
}
//Gestion des erreurs de stop trop courts
OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES);
if (GetLastError()==130){
if (op==0) stoploss=NormalizeDouble(Ask-(MarketInfo(Symbol(),MODE_STOPLEVEL)+30+k)* MarketInfo(Symbol(),MODE_POINT),Digits);
if (op==1) stoploss=NormalizeDouble(Bid+(MarketInfo(Symbol(), MODE_STOPLEVEL)+30+k)* MarketInfo(Symbol(),MODE_POINT),Digits);
}
RefreshRates();
if (op==1) Ticket = OrderSend(symbol, op, size, Bid, slippage, stoploss, takeprofit, comment, magic, expiration, arrow_color);
if (op==0) Ticket = OrderSend(symbol, op, size, Ask, slippage, stoploss, takeprofit, comment, magic, expiration, arrow_color);
k++;
Sleep(10);
}
if(Ticket >= 0) {
if (op==1) Print("SELL order opened : ", OrderOpenPrice());
if (op==0) Print("BUY order opened : ", OrderOpenPrice());
}
}
WaitPassToBO(Total);
return (Ticket);
}
//+------------------------------------------------------------------+
//Closer Order Function
//+------------------------------------------------------------------+
int CloseOrder(int ticket, int op, double lots, double price, int slippage, color Color ){
OrderSelect(ticket,SELECT_BY_TICKET);
int Ticket = OrderClose(ticket, lots, price, slippage, Color);
//+------------------------------------------------------------------+
//Gestion de fermeture
//+------------------------------------------------------------------+
if(Ticket >= 0) {
if (OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES))
Print("Order closed : ", OrderOpenPrice());
} else {
Print("Error closing order : ", GetLastError());
int k=0;
while ((Ticket<0)&&(k<1000)){
if (k!=0){
Print("Error closing order : ", GetLastError());
}
RefreshRates();
if (op==1) Ticket = OrderClose(ticket, lots, Ask, slippage, Color);
if (op==0) Ticket = OrderClose(ticket, lots, Bid, slippage, Color);
Sleep(10);
k++;
}
if(Ticket >= 0) {
Print("Order closed : ", OrderOpenPrice());
}
}
return (Ticket);
}
//+------------------------------------------------------------------+
//Back Office processing functions
//+------------------------------------------------------------------+
int OrdersEATotal()
{
int nb=0;
int Total=OrdersTotal();
for (int i = Total-1; i >=0; i --) {
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if (OrderMagicNumber()!=MagicNumber) continue;
if (OrderSymbol()==Symbol())
{
nb++;
}
}
return (nb);
}
void WaitPassToBO(int Total)
{
while (OrdersEATotal()!=Total+1) Sleep(50);
}
//+------------------------------------------------------------------+
//Size money management function
//+------------------------------------------------------------------+
double Size()
{
//placer le money management ici
return (Size);
}
bravo et merci.
je mets en test tout de suite et je ferai un retour
7 ou 8 petites erreurs sans gravité apres le copier/coller. juste des espaces qui coupent des noms de variables en deux. 30 secondes pour corriger ça. courage.
Ben tu rajoutes un truc dans le genre :
if (iRSI(Symbol(),0, 9, PRICE_CLOSE,0) > 70)
{
OrderClose(OrderTicket(),OrderLots(),Ask,3,Red);
OpenOrder = 0;
}
Comptes réels Pepperstone razor/vps Ikoula + GridMeUp 3.5
My fxbook
thierry83
bon, tu as été plus rapide que moi
je suis en cours de réal du miens... on va voir, on pourra comparer
Comptes réels Pepperstone razor/vps Ikoula + GridMeUp 3.5
My fxbook
or trend2.jpg salut a tous
grrrrrrrrrrrrr je met plus de stoppppppppppppppppppppp
j etais tout a la vente depuis ce matin avec mon EA EURUSD EURGBP etc etc
stop a 300 ou 500 ( 30 ou 50 pips )
et je vous parle meme pas de L ORRRRRRRRRRR ( voir graf )
j etais en venteeeeeeeeeeeeeeeeeeeeeeeeeee depuis 1784
je crois que je vais metre que des stops manuel en suivant les pointillés ( plus une marge )
putain je vais me coucher je suis trop deggggggggggggggggg
mdrr
j ai toujours fait que prendre sur ce forum alors j espere que cette fois je vais pouvoir vous rendre
et que beuacoup de gens puissent en profiter
mais a affiné c est sur
l ideal c est trouvé les memes achats et vente que sur graf ( page 13 )
aujourdhui c est pareil sauf que le NULLLLLLLLLLL qui vous parle a modifier les stops de peur de perdre
bon je vous expliquerrais si ca vous interresse la base et les reglages de mon EA
a plusssss