Questions sur l'assistant MQL5 et la bibliothèque standard de classes de trading - page 14
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
Par exemple, regardons les signaux MACD. Au total, 5 signaux d'achat et 5 signaux de vente sont décrits (retournement, croisement avec la ligne de signal, etc.). Existe-t-il un moyen d'obtenir la valeur de ces signaux à un moment donné ? C'est-à-dire, former un vecteur de 10 éléments pour chaque barre, où chaque élément correspond au signal, 1 indique sa présence, et 0 - son absence ? Quelle méthode de la classe CSignalMACD peut être utilisée pour obtenir les valeurs correspondantes ?
Malheureusement, cette fonctionnalité n'est pas disponible en standard.
Bonjour, aidez-moi. J'ai créé un robot (mon premier robot). Immédiatement après le démarrage, il s'arrête avec le message Expert initializing of robot (EURUSD,H1) failed. Je ne peux pas trouver plus d'informations à ce sujet.
Voici son code :
--------------------------------------
//+------------------------------------------------------------------+
//| robot.mq5 |
//| Droits d'auteur 2012, MetaQuotes Software Corp.
//| http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2012, MetaQuotes Software Corp.
#lien de propriété "http://www.mql5.com"
#propriété version "1.00"
//+------------------------------------------------------------------+
//| Include |
//+------------------------------------------------------------------+
#include <Expert\Expert.mqh>
//--- signaux disponibles
#include <Expert\robot\robot.mqh>
//--- disponible à la fin
#include <Expert\Trailing\TrailingNone.mqh>
//--- gestion de l'argent disponible
#include <Expert\Money\MoneyFixedLot.mqh>
//+------------------------------------------------------------------+
//| Inputs |
//+------------------------------------------------------------------+
//--- entrées pour l'expert
input string Expert_Title = "robot" ; // Nom du document
ulong Expert_MagicNumber =24553 ; //
bool Expert_EveryTick =false ; //--- entrées pour le signal principal
//--- entrées pour le signal principal
input int Signal_ThresholdOpen =10 ; // Valeur du seuil du signal à ouvrir [0...100]
input int Signal_ThresholdClose =10 ; // Valeur seuil du signal à fermer [0...100]
input double Signal_PriceLevel =0.0 ; // Niveau de prix pour exécuter une transaction
input double Signal_StopLevel =50.0 ; // Niveau de Stop Loss (en points)
input double Signal_TakeLevel =50.0 ; // Niveau du Take Profit (en points)
input int Signal_Expiration =4 ; // Expiration des ordres en attente (en barres)
input int Signal_MaCross_FastPeriod=13 ; // My_MA_Cross(13,MODE_SMA,21,...) Période de MA rapide
input ENUM_MA_METHOD Signal_MaCross_FastMethod=MODE_SMA ; // Ma_MA_Cross(13,MODE_SMA,21,...) Méthode de MA rapide
input int Signal_MaCross_SlowPeriod=21 ; // My_MA_Cross(13,MODE_SMA,21,...) Période de MA lente
input ENUM_MA_METHOD Signal_MaCross_SlowMethod=MODE_SMA ; // Ma_MA_Cross(13,MODE_SMA,21,...) Méthode de MA lente
entrée double Signal_MaCross_Weight =1.0 ; // Mon_MA_Cross(13,MODE_SMA,21,...) Poids [0...1.0]
//--- intrants pour l'argent
entrée double Money_FixLot_Percent =10.0 ; // Pourcentage
input double Money_FixLot_Lots =0.1 ; // Volume fixe
//+------------------------------------------------------------------+
//| Objet expert global |
//+------------------------------------------------------------------+
CExpert ExtExpert ;
//+------------------------------------------------------------------+
//| Fonction d'initialisation de l'expert ||
//+------------------------------------------------------------------+
int OnInit()
{
//--- Initialisation de l'expert
if(!ExtExpert.Init(Symbole(),Période(),Expert_EveryTick,Expert_MagicNumber))
{
//--- échec
printf(__FUNCTION__+" : erreur d'initialisation de l'expert") ;
ExtExpert.Deinit() ;
retour (-1) ;
}
//--- Création d'un signal
CExpertSignal *signal=new CExpertSignal ;
si(signal==NULL)
{
//--- échec
printf(__FUNCTION__+" : erreur lors de la création du signal") ;
ExtExpert.Deinit() ;
retour (-2) ;
}
//---
ExtExpert.InitSignal(signal) ;
signal.ThresholdOpen(Signal_ThresholdOpen) ;
signal.ThresholdClose(Signal_ThresholdClose) ;
signal.PriceLevel(Signal_PriceLevel) ;
Signal.StopLevel(Signal_StopLevel) ;
signal.TakeLevel(Signal_TakeLevel) ;
signal.Expiration(Signal_Expiration) ;
//--- Création du filtre MA_Cross
MA_Cross *filter0=new MA_Cross ;
si(filter0==NULL)
{
//--- échec
printf(__FUNCTION__+" : erreur lors de la création du filtre0") ;
ExtExpert.Deinit() ;
retour (-3) ;
}
signal.AddFilter(filter0) ;
//--- Définir les paramètres du filtre
filter0.FastPeriod(Signal_MaCross_FastPeriod) ;
filter0.FastMethod(Signal_MaCross_FastMethod) ;
filter0.SlowPeriod(Signal_MaCross_SlowPeriod) ;
filter0.SlowMethod(Signal_MaCross_SlowMethod) ;
filter0.Weight(Signal_MaCross_Weight) ;
//--- Création d'un objet de queue
CTrailingNone *trailing=new CTrailingNone ;
si(trailing==NULL)
{
//--- échec
printf(__FUNCTION__+" : erreur lors de la création du trailing") ;
ExtExpert.Deinit() ;
retour(-4) ;
}
//--- Ajouter la fin à l'expert (sera supprimé automatiquement)
if(!ExtExpert.InitTrailing(trailing))
{
//--- échec
printf(__FUNCTION__+" : erreur d'initialisation du trailing") ;
ExtExpert.Deinit() ;
retour(-5) ;
}
//--- Définir les paramètres de fin de ligne
//--- Création de l'objet argent
CMoneyFixedLot *money=new CMoneyFixedLot ;
si(argent==NULL)
{
//--- échec
printf(__FUNCTION__+" : erreur de création d'argent") ;
ExtExpert.Deinit() ;
retour (-6) ;
}
//--- Ajouter de l'argent à l'expert (sera supprimé automatiquement))
if(!ExtExpert.InitMoney(money))
{
//--- échec
printf(__FUNCTION__+ " : erreur d'initialisation de l'argent") ;
ExtExpert.Deinit() ;
retour (-7) ;
}
//--- Définir les paramètres de l'argent
money.Percent(Money_FixLot_Percent) ;
money.Lots(Money_FixLot_Lots) ;
//--- Vérifier tous les paramètres des objets de négociation
if(!ExtExpert.ValidationSettings())
{
//--- échec
ExtExpert.Deinit() ;
retour (-8) ;
}
//--- Réglage de tous les indicateurs nécessaires
if(!ExtExpert.InitIndicators())
{
//--- échec
printf(__FUNCTION__+" : erreur d'initialisation des indicateurs") ;
ExtExpert.Deinit() ;
retour (-9) ;
}
//--- ok
retour(0) ;
}
//+------------------------------------------------------------------+
//| Fonction de désinitialisation de l'expert.
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
ExtExpert.Deinit() ;
}
//+------------------------------------------------------------------+
//| Fonction de traitement de l'événement "Tick" |
//+------------------------------------------------------------------+
void OnTick()
{
ExtExpert.OnTick() ;
}
//+------------------------------------------------------------------+
//| Fonction de traitement de l'événement "Trade" |
//+------------------------------------------------------------------+
void OnTrade()
{
ExtExpert.OnTrade() ;
}
//+------------------------------------------------------------------+
//| Fonction de traitement de l'événement "Timer" |
//+------------------------------------------------------------------+
void OnTimer()
{
ExtExpert.OnTimer() ;
}
//+------------------------------------------------------------------+
Quel pourrait être le problème. Je ne sais même pas où regarder en premier.
Merci d'avance.
Bonjour, aidez-moi. J'ai créé un robot (mon premier robot). Immédiatement après le démarrage, il s'arrête avec le message Expert initializing of robot (EURUSD,H1) failed. Je ne peux pas trouver plus d'informations à ce sujet.
Je n'ai pas assez d'informations.
Besoin de
#include <Expert\robot\robot.mqh>
J'ai besoin des paramètres de démarrage (testeur/terminal, serveur, paire, délai, etc.).
PS Il est préférable de joindre le code source en tant que fichier.
Questions sur l'assistant MQL5 :
1) //--- entrées pour l'argent
entrée double Money_FixLot_Percent =10.0 ; // Pourcentage
entrée double Money_FixLot_Lots =0.1 ; // Volume fixe
Que signifient ces paramètres ? Et comment sont-ils liés ?
2) Puis-je générer un EA qui placera des ordres en attente ? Si oui, comment ?
3) Que signifie la variable Signal_Expiration ? Comment l'utiliser ?
Questions sur l'assistant MQL5 :
1) //--- entrées pour l'argent
entrée double Money_FixLot_Percent =10.0 ; // Pourcentage
entrée double Money_FixLot_Lots =0.1 ; // Volume fixe
Que signifient ces paramètres ? Et comment sont-ils liés ?
2) Puis-je générer un EA qui placera des ordres en attente ? Si oui, comment ?
3) Que signifie la variable Signal_Expiration ? Comment l'utiliser ?
1) Le paramètre Money_FixLot_Percent est utilisé pour définir le niveau du "forced stop". Ne le touchez pas.
Le paramètre Money_FixLot_Lots définit un volume fixe (lot), avec lequel votre Expert Advisor entrera sur le marché.
Ces paramètres ne sont en aucun cas liés entre eux.
2) Tout conseiller expert généré par Wizard peut négocier des ordres en attente. Le paramètre ..._PriceLevel est utilisé à cet effet. Selon la valeur de ce paramètre, le conseiller expert se comportera comme suit :
0 - l'entrée sur le marché se fera au prix actuel ;
>0 - l'entrée sur le marché se fera en utilisant des ordres limites en attente (meilleurs que le prix actuel par la valeur de ce paramètre) ;
<0 - l'entrée sur le marché se fera en utilisant les ordres Stop en attente (plus mauvais que le prix actuel par la valeur du paramètre) ;
3) Le paramètre Signal_Expiration définit la durée de vie d'un ordre en attente (en barres de la période actuelle).
Si je génère un EA dans l'assistant MQL5, combien d'ordres un tel EA peut-il ouvrir simultanément ? Comment cela est-il réglementé ?
Si je génère un EA dans l'assistant MQL5, combien d'ordres un tel EA peut-il ouvrir simultanément ? Comment cela est-il contrôlé ?
1 commande. Elle n'est pas réglementée.
L'assistant est conçu pour les tests de stratégie. Si vous en voulez plus, vous devez "classer" (écrire à la main).
2) Tout EA généré par l'assistant peut négocier des ordres en attente. Le paramètre ..._PriceLevel est utilisé à cet effet. Selon la valeur de ce paramètre, le conseiller expert se comportera comme suit :
0 - l'entrée sur le marché se fera au prix actuel ;
>0 - l'entrée sur le marché se fera en utilisant des ordres limites en attente (meilleurs que le prix actuel par la valeur de ce paramètre) ;
<0 - l'entrée sur le marché se fera en utilisant des ordres stop en attente (plus mauvais que le prix actuel par la valeur du paramètre) ;
Dans quelles unités le paramètre PriceLevel est-il mesuré ? En points ? Par exemple, si je veux placer un ordre stop en attente 20 pips plus haut que le prix actuel,
Dois-je définir ce paramètre PriceLevel =-0.0020 ?