Demandez ! - page 97

 

Encore des problèmes

Bonjour à tous,

Merci Big Be d'avoir jeté un œil à mon EA. Mon RSI stochastique est sans le soulignement. Quand je l'ai essayé avec, il m'a donné une erreur. Mais, j'ai découvert plusieurs choses.

1) Lorsque j'essaie Strategy Tester sur les cadres temporels inférieurs, il semble fonctionner plus rapidement. Une fois que je suis sur H1 ou plus, il devient vraiment lent. Je suppose que c'est parce qu'il doit faire trop de vérifications à chaque tick. Y a-t-il quelque chose que l'on puisse faire à ce sujet ? J'aimerais l'optimiser pour H4 et peut-être même pour Daily.

2) Il y a toujours le problème de la première transaction qui se produit avant un croisement réel.

3) Lorsque je regarde mes backtests, il semble que certaines transactions soient complètement manquées. Est-ce que c'est parce que mes données sont défectueuses/mal assorties ? J'ai fait des recherches et j'ai trouvé un endroit où New Digital explique comment obtenir les données du courtier que nous utilisons en allant dans l'historique et en double-cliquant dessus... puis en ouvrant chaque intervalle de temps et en maintenant la touche "Page Up" jusqu'à la fin, mais cela ne semble pas aider.

La partie du programme que je vous ai envoyée n'est qu'une partie de 3. Je dois encore y ajouter les 3 autres parties. Si je n'arrive pas à faire accélérer le Strategy Tester, je ne saurai jamais si c'est une idée rentable.

Toute idée ou suggestion sera utile.

Salutations,

Putz

 

Etudiez ce que j'ai fait pour un EA Volatility Quality Index que j'ai corrigé, Kiko_v2.

Voir le post 319 ici :

https://www.mql5.com/en/forum/general

Amusez-vous bien,

Big Be

 

Vq

Salut Big Be

Merci pour ton idée. Je vais y travailler ce week-end... et si tout fonctionne à merveille... je devrais être riche le week-end prochain... hahaha.

Putz

 

Aide...s'il vous plaît

Bonjour Big Be et tous les programmeurs,

Big Be, j'ai étudié votre EA de volatilité mais il semble maintenant que ce n'était pas mon problème après tout. J'utilisais IBFX pour mon backtesting et je n'avais que des problèmes. J'ai finalement abandonné et téléchargé Alpari et cela fonctionne beaucoup mieux.

Au moins maintenant, il ne faut plus des jours pour faire un backtest sur mes EA. J'ai donc tout recommencé et reconstruit mon programme à partir de zéro et il ne passe aucun ordre.

Le programme est essentiellement le EMS Fresh Cross de codersguru mais je veux qu'il soit basé sur le RSI stochastique et quand le RSI stochastique traverse la ligne 50. J'ai laissé presque tout comme codersguru, y compris les variables, pour faciliter l'isolation du problème.

Je pense que le problème se situe dans la fonction iCustom car c'est la seule modification que j'ai apportée au programme et il ne prend aucun ordre. Quelqu'un peut-il y jeter un coup d'œil et voir s'il peut trouver mon erreur. Cela fait deux semaines que j'essaie de le faire fonctionner et cela me rend fou.

J'ai mis quelques notes précédées de //.

Merci

Putz

#property copyright "Putz FX

#property link "http://www.putzfx.com"

//---- input parameters

extern double TakeProfit=130;

extern double StopLoss = 60;

extern double Lots=1;

extern double TrailingStop=30;

extern double TimeFrame= 60;

extern bool ExitOnCross = true;

extern int MagicNumber = 444444;

//+------------------------------------------------------------------+

//| expert initialization function |

//+------------------------------------------------------------------+

int init()

{

//----

//----

return(0);

}

//+------------------------------------------------------------------+

//| expert deinitialization function |

//+------------------------------------------------------------------+

int deinit()

{

//----

//----

return(0);

}

int FreshCross ()

{

//This was added in based on what I could figure from Big Be.

if (Volume[0] != 1) return(0);

//what is the difference between using "Null" or "Symbol()" in iCustom as

//neither one works.

double SEma, LEma,SEmaP, LEmaP;

//The following 4 lines have been changed from the original

SEma = iCustom(Symbol(),PERIOD_H1,"Stochastic RSI",28,55,9,0,0);

LEma = 50;

SEmaP = iCustom(Symbol(),PERIOD_H1,"Stochastic RSI",28,55,9,0,1);

LEmaP = 50;

//Don't work in the first load, wait for the first cross!

//some changes were done to the below two lines as he was comparing the

//return value with the Ask or Bid and Close values

if(SEma>LEma && SEmaP < LEmaP) return(1); //up

if(SEma LEmaP) return(2); //down

return (0); //not changed

}

//+------------------------------------------------------------------+

//| Check Open Position Controls |

//+------------------------------------------------------------------+

int CheckOpenTrades()

{

int cnt;

int NumTrades; // Number of buy and sell trades in this symbol

NumTrades = 0;

for(cnt=OrdersTotal()-1;cnt>=0;cnt--)

{

OrderSelect (cnt, SELECT_BY_POS, MODE_TRADES);

if ( OrderSymbol() != Symbol()) continue;

if ( OrderMagicNumber() != MagicNumber) continue;

if(OrderType() == OP_BUY ) NumTrades++;

if(OrderType() == OP_SELL ) NumTrades++;

}

return (NumTrades);

}

//+------------------------------------------------------------------+

//| expert start function |

//+------------------------------------------------------------------+

int start()

{

//----

int cnt, ticket, total;

double TP;

if(Bars<100)

{

Print("bars less than 100");

return(0);

}

/* if(TakeProfit<10)

{

Print("TakeProfit less than 10");

return(0); // check TakeProfit

}

*/

int isCrossed = 0;

isCrossed = FreshCross ();

total = CheckOpenTrades();

if(total < 1)

{

if(isCrossed == 1)

{

TP = 0;

if (TakeProfit > 0) TP = Ask + TakeProfit * Point;

ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-StopLoss*Point,TP,"EMA_CROSS",MagicNumber,0,Green);

if(ticket>0)

{

if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("BUY order opened : ",OrderOpenPrice());

}

else Print("Error opening BUY order : ",GetLastError());

return(0);

}

if(isCrossed == 2)

{

TP = 0;

if (TakeProfit > 0) TP = Bid - TakeProfit * Point;

ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+StopLoss*Point,TP,"EMA_CROSS",MagicNumber,0,Black);

if(ticket>0)

{

if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("SELL order opened : ",OrderOpenPrice());

}

else Print("Error opening SELL order : ",GetLastError());

return(0);

}

return(0);

}

total = OrdersTotal();

for(cnt=0;cnt<total;cnt++)

{

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

//OrderPrint();

if(OrderType()<=OP_SELL && OrderSymbol()==Symbol() && OrderMagicNumber() == MagicNumber)

{

if(OrderType()==OP_BUY) // long position is opened

{

// should it be closed?

/* REMOVED - Trailling stop only close */

if(ExitOnCross && isCrossed == 2)

{

OrderClose(OrderTicket(),OrderLots(),Bid,3,Black); // close position

return(0); // exit

}

/**/

// check for trailing stop

if(TrailingStop>0)

{

if(Bid-OrderOpenPrice()>Point*TrailingStop)

{

if(OrderStopLoss()<Bid-Point*TrailingStop)

{

OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),0,Green);

return(0);

}

}

}

}

else // go to short position

{

// should it be closed?

/* REMOVED - Trailling stop only close */

if(ExitOnCross && isCrossed == 1)

{

OrderClose(OrderTicket(),OrderLots(),Ask,3,Black); // close position

return(0); // exit

}

/* */

// check for trailing stop

if(TrailingStop>0)

{

if((OrderOpenPrice()-Ask)>(Point*TrailingStop))

{

if((OrderStopLoss()>(Ask+Point*TrailingStop)) || (OrderStopLoss()==0))

{

OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,OrderTakeProfit(),0,Red);

return(0);

}

}

}

}

}

}

return(0);

}

//+------------------------------------------------------------------+
 

Avez-vous vérifié que votre RSI stochastique prend 3 paramètres d'entrée ?

(Celui que j'ai regardé en prend 4)

 

qui aide

Bonjour Ralph,

Merci pour ton aide. Le mien a deux tampons mais 4 paramètres d' entrée. J'ai essayé avec 4 paramètres et cela n'a pas fonctionné mais ensuite j'ai essayé avec 2 et j'ai obtenu une commande. Maintenant, il me reste à résoudre le reste. Merci de m'avoir sorti du pétrin.

Putz

 

Question d'un noobie !

message déplacé ici : https://www.mql5.com/en/forum

Dossiers :
buy.jpg  7 kb
 

quelqu'un peut-il m'aider ?

Bonjour à tous

vous connaissez tous l'indicateur Pivot_Monday_fixed

j'ai besoin de quelques changements dans cet indicateur

je veux seulement la ligne de pivot et quatre autres lignes

2 bleues Pivot +20 et Pivot + 40

2 lignes rouges Pivot - 20 et Pivot - 40

seulement 5 lignes

merci

Dossiers :
 

Question bête

Quelqu'un peut-il me dire quel est le moyen le plus rapide de convertir le fichier mq4 d'un EA en fichier ex4 ?

Je sais qu'il apparaît dans les fichiers d'experts comme ex4 après avoir été exécuté une fois sur mt4 mais est-ce le seul moyen de le faire ?

Merci d'avance

 
fxgrm:
Quelqu'un peut-il me dire quel est le moyen le plus rapide de convertir le fichier mq4 d'un EA en fichier ex4 ?

Je sais qu'il apparaît dans les fichiers experts sous le nom de ex4 après avoir été exécuté une fois sur mt4 mais est-ce la seule façon de le faire ?

Merci d'avance

Ouvrez votre fichier .mq4 dans le MetaEditor, puis cliquez sur "Compiler" et le fichier .ex4 est créé.