Questions sur l'assistant MQL5 et la bibliothèque standard de classes de trading - page 14

 
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 ?
 
IvanSD:

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'existe pas dans la livraison standard.
 
uncleVic:
Malheureusement, cette fonctionnalité n'est pas disponible en standard.
Merci pour votre réponse !
 

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.

Automated Trading and Strategy Testing
Automated Trading and Strategy Testing
  • www.mql5.com
MQL5: language of trade strategies built-in the MetaTrader 5 Trading Platform, allows writing your own trading robots, technical indicators, scripts and libraries of functions
 
pasha191:

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 ?

Мастер MQL5: Создание эксперта без программирования
Мастер MQL5: Создание эксперта без программирования
  • 2010.12.15
  • MetaQuotes Software Corp.
  • www.mql5.com
Вы хотите быстро проверить торговую идею, не тратя времени на программирование? Выберите в "Мастере MQL5" нужный тип торговых сигналов, подключите модули сопровождения позиций и управления капиталом - на этом вся работа закончена. Создайте свои реализации модулей или закажите их через сервис "Работа" - и комбинируйте новые модули с уже существующими.
 
evrika:

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é ?

Собери свой торговый советник в Мастере MQL5
Собери свой торговый советник в Мастере MQL5
  • 2011.01.14
  • MetaQuotes Software Corp.
  • www.mql5.com
Знание языков программирования теперь не является обязательным условием для создания торговых роботов. Если раньше это действительно служило непроходимым препятствием для реализации своих торговых стратегий, то появление Мастера MQL5 в корне изменило ситуацию. Начинающие трейдеры могут перестать тревожиться из-за отсутствия опыта программирования - с новым визардом, позволяющим быстро генерировать код советника, он не понадобится.
 
evrika:

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).

 
uncleVic:

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 ?