Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
Merci Kalenzo,
J'ai essayé avec OP_BUYLIMIT mais cela ne fonctionne pas.
Je vais essayer avec OP_BUYSTOP.
Petite question de codage
Comment mettre une ligne horizontale à l'écran à la valeur moyenne (de tous les prix de clôture) ? Existe-t-il un code spécifique pour cela ?
simple breakout EA
//| SimpleBreakoutEA.mq4 |
//| |
//| |
//+------------------------------------------------------------------+
#property copyright "jjk2"
#property link ""
//---- input parameters
extern int ____TIME_RANGE____;
extern int TimeRange = 1; // # of Hours to look back from TimeEnd. ex) if breakout is @ 22:00 GMT to 23:00 GMT. Total TimeRange to lookback is 8 hrs.
extern int TimeBegin = 22;
extern int TimeEnd = 23;
extern int CancelTime = 20; // ALL REMAINING ORDERS WILL BE CANCELED AT THIS INDICATED TIME.
extern int ______FILTERS______;
extern int TriggerFilter = 0;
extern bool AllowBreakEven = True;
extern int ______ORDERS______;
extern double Lots = 0.1;
extern int StopLoss = 50;
extern int TakeProfit = 100;
extern int Slippage = 2;
extern int MagicNumber = 23423;
int init()
{
return(0);
}
int deinit()
{
return(0);
}
int start()
{
// OPEN ORDERS @ HIGH/LOW from TIMEBEGIN to TimeEND
if (Hour() >= TimeBegin-1 && Hour() >= TimeEnd)
{
int HH = iHighest(NULL, 0, MODE_HIGH,TimeRange,0);
int LL = iLowest(NULL, 0, MODE_LOW,TimeRange,0);
}
double SL_High = Ask - (StopLoss * Point);
double SL_Low = Bid + (StopLoss*Point);
double TP_High = Ask + (TakeProfit*Point);
double TP_Low = Bid - (TakeProfit*Point);
if ( Ask > HH + TriggerFilter) OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, SL_High, TP_High, "Breakout Buy", MagicNumber, NULL, Blue);
if ( Bid < LL + TriggerFilter) OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, SL_Low, TP_Low, "Breakout Sell", MagicNumber, NULL, Red);
// MOVE SL @ BreakEven if allowed. MarketPrice distance Open Price > stop*point, then stop must equal to MarketPrice - Stop*point as new stoploss.
int total = 0;
if ( AllowBreakEven == True )
{
for(total = OrdersTotal() - 1; total >= 0; total--)
{
OrderSelect(total, SELECT_BY_POS);
if ( Bid - OrderOpenPrice() > SL_High*Point )
OrderModify(OrderTicket(), OrderOpenPrice(), Bid - SL_High*Point, OrderTakeProfit(),0, CLR_NONE);
if ( OrderOpenPrice() - Ask > SL_Low*Point )
OrderModify(OrderTicket(), OrderOpenPrice(), Ask + SL_Low*Point , OrderTakeProfit(),0, CLR_NONE);
}
}
return(0);
}
//+------------------------------------------------------------------+pour une raison quelconque, il ne fonctionne pas.... quelqu'un sait pourquoi ?
Comment transformer un indicateur en EA ?
Bonjour, puis-je savoir comment transformer un indicateur en EA ?
Beaucoup d'indicateurs ont le signe de la flèche quand il s'agit de certaines conditions et je voudrais les tester avec EA.
Je voudrais que l'EA prenne le trade en fonction de la flèche formée.
Quelqu'un peut-il m'aider ? Merci.
Celui-ci est conforme à la flèche du panneau
https://www.mql5.com/en/forum/173249/page51
Et si on transformait l'indicateur ci-joint en EA ?
Quelqu'un peut-il vous aider ? Merci.
Structure du code
Bonjour,
Je suis nouveau sur Metatrader mais très expérimenté en programmation. J'ai créé quelques exemples d'Expert Advisors et quelques indicateurs légèrement compliqués dans MT. Ce qui n'est pas clair, c'est comment structurer un EA assez compliqué. Je veux que l'EA appelle des fonctions de "signal" pour vérifier les différentes conditions de configuration.
Comment dois-je coder ces fonctions ?
1. En tant que fonctions "en ligne" dans l'EA
2. En tant qu'indicateurs "séparés" qui renvoient une valeur au lieu de l'afficher à l'écran ?
3. une autre fonction "séparée" à appeler comme l'appel à iMA.
Si je choisis l'alternative 1, est-ce que la fonction en ligne dans l'EA peut parcourir les 200 dernières barres en utilisant Close et appeler iMA ?
L'alternative 2 est-elle acceptable ? Lors du codage d'un indicateur, toutes les barres "disponibles" sont traitées, ce qui n'est bien sûr pas nécessaire pour l'EA.
L'alternative 3 me semble être le choix logique mais je ne sais pas comment la structurer pour qu'elle fonctionne en backtesting et ce que je dois lui passer et ce à quoi la fonction a accès par défaut, comme par exemple Close.
Par exemple, ce que je dois établir dans la fonction "signal", c'est quelle est la tendance actuelle et quand a-t-elle commencé. J'ai codé cela dans un indicateur, donc je sais comment faire le code réel.
Je vous remercie pour tout conseil.
Ingvar
Bonjour,
Je suis nouveau sur Metatrader mais très expérimenté en programmation. J'ai créé quelques exemples d'Expert Advisors et quelques indicateurs légèrement compliqués dans MT. Ce qui n'est pas clair, c'est comment structurer un EA assez compliqué. Je veux que l'EA appelle des fonctions de "signal" pour vérifier les différentes conditions de configuration.
Comment dois-je coder ces fonctions ?
1. Comme fonctions "en ligne" dans l'EA
2. En tant qu'indicateurs "séparés" qui renvoient une valeur au lieu de l'afficher à l'écran ?
3. une autre fonction "séparée" à appeler comme l'appel à iMA.
Si je choisis l'alternative 1, est-ce que la fonction en ligne dans l'EA peut parcourir les 200 dernières barres en utilisant Close et appeler iMA ?
L'alternative 2 est-elle acceptable ? Lors du codage d'un indicateur, toutes les barres "disponibles" sont traitées, ce qui n'est bien sûr pas nécessaire pour l'EA.
L'alternative 3 me semble être le choix logique mais je ne sais pas comment la structurer pour qu'elle fonctionne en backtesting et ce que je dois lui passer et ce à quoi la fonction a accès par défaut, comme par exemple Close.
Par exemple, ce que je dois établir dans la fonction "signal", c'est quelle est la tendance actuelle et quand a-t-elle commencé. J'ai codé cela dans un indicateur, donc je sais comment faire le code réel.
Je vous remercie pour tout conseil.
IngvarVous savez probablement déjà comment faire, alors désolé si c'est le cas.
Moyenne mobile de la barre actuelle:
iMA(NULL,0,13,0,MODE_EMA,PRICE_CLOSE,0) ;
Moyenne mobile d'il y a 200 barres.
iMA(NULL,0,13,0,MODE_EMA,PRICE_CLOSE,200) ;
Vous pouvez appeler la moyenne mobile de n'importe quelle barre que vous voulez, de la barre actuelle à n'importe quelle barre dans le passé.