FORTS Veuillez nous aider - page 25

 
Je ne l'ai pas trouvé sur le forum, quelqu'un peut-il me dire comment résoudre le problème de "convergence incomplète de l'application FOK" ?
 
anatolev:
Je ne l'ai pas trouvé sur le forum, peut-être que quelqu'un me dira comment résoudre le problème de "l'ordre FOK incomplet".

Bonjour !

Vous pensez que tout le monde ici est clairvoyant ?

Comment puis-je te dire quelque chose ? Il n'existe pas de terminal MT4 ou MT5,

Pas de code que vous utilisez lorsque vous envoyez un ordre, pas de FORTS ou de marché FOREX !

 
Mikalas:

Bonjour !

Vous pensez que tout le monde ici est clairvoyant ?

Comment puis-je te dire quelque chose ? Il n'existe pas de terminal MT4 ou MT5,

Pas de code à utiliser lors de l'envoi d'un ordre, pas de FORTS ou de marché FOREX !

Forts, et le terminal respectivement le 5ème code EA est généré par l'assistant, moyennes simples


 
anatolev:

Où est le code ?

Comment envoyer la commande ?

P/S Le code est inséré en appuyant sur la touche SRC.

 
Mikalas:

Où est le code ?

Comment envoyer la commande ?

P/S Le code est inséré en appuyant sur la touche SRC.

//+------------------------------------------------------------------+
//|                                                   CrossMA(3).mq5 |
//|                                                             stas |
//|                                              http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "stas"
#property link      "http://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Include                                                          |
//+------------------------------------------------------------------+
#include <Expert\Expert.mqh>
//--- available signals
#include <Expert\MyFirstSignal\Ma_Cross.mqh>
//--- available trailing
#include <Expert\Trailing\TrailingNone.mqh>
//--- available money management
#include <Expert\Money\MoneyFixedLot.mqh>
//+------------------------------------------------------------------+
//| Inputs                                                           |
//+------------------------------------------------------------------+
//--- inputs for expert
input string         Expert_Title             ="CrossMA(SI)"; // Document name
ulong                Expert_MagicNumber       =13607;        // 
bool                 Expert_EveryTick         =false;        // 
//--- inputs for main signal
input int            Signal_ThresholdOpen     =11;           // Signal threshold value to open [0...100]
input int            Signal_ThresholdClose    =10;           // Signal threshold value to close [0...100]
input double         Signal_PriceLevel        =4.0;          // Price level to execute a deal
input double         Signal_StopLevel         =300.0;         // Stop Loss level (in points)
input double         Signal_TakeLevel         =1000.0;         // Take Profit level (in points)
input int            Signal_Expiration        =4.0;            // Expiration of pending orders (in bars)
input int            Signal_MaCross_FastPeriod=8;           // My_MA_Cross(13,MODE_SMA,21,...) Period of fast MA
input ENUM_MA_METHOD Signal_MaCross_FastMethod=MODE_SMA;     // My_MA_Cross(13,MODE_SMA,21,...) Method of fast MA
input int            Signal_MaCross_SlowPeriod=21;           // My_MA_Cross(13,MODE_SMA,21,...) Period of slow MA
input ENUM_MA_METHOD Signal_MaCross_SlowMethod=MODE_SMA;     // My_MA_Cross(13,MODE_SMA,21,...) Method of slow MA
input double         Signal_MaCross_Weight    =1.0;          // My_MA_Cross(13,MODE_SMA,21,...) Weight [0...1.0]
//--- inputs for money
input double         Money_FixLot_Percent     =0.0;          // Percent
input double         Money_FixLot_Lots        =1.0;          // Fixed volume
//+------------------------------------------------------------------+
//| Global expert object                                             |
//+------------------------------------------------------------------+
CExpert ExtExpert;
//+------------------------------------------------------------------+
//| Initialization function of the expert                            |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- Initializing expert
if(!ExtExpert.Init(Symbol(),Period(),Expert_EveryTick,Expert_MagicNumber))
     {
      //--- failed
      printf(__FUNCTION__+": error initializing expert");
      ExtExpert.Deinit();
      return(INIT_FAILED);
     }
//--- Creating signal
   CExpertSignal *signal=new CExpertSignal;
   if(signal==NULL)
     {
      //--- failed
      printf(__FUNCTION__+": error creating signal");
      ExtExpert.Deinit();
      return(INIT_FAILED);
     }
//---
   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);
//--- Creating filter MA_Cross
MA_Cross *filter0=new MA_Cross;
if(filter0==NULL)
  {
   //--- failed
   printf(__FUNCTION__+": error creating filter0");
   ExtExpert.Deinit();
   return(INIT_FAILED);
  }
signal.AddFilter(filter0);
//--- Set filter parameters
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);
//--- Creation of trailing object
  CTrailingNone *trailing=new CTrailingNone;
   if(trailing==NULL)
     {
      //--- failed
      printf(__FUNCTION__+": error creating trailing");
      ExtExpert.Deinit();
      return(INIT_FAILED);
     }
//--- Add trailing to expert (will be deleted automatically))
   if(!ExtExpert.InitTrailing(trailing))
     {
      //--- failed
      printf(__FUNCTION__+": error initializing trailing");
      ExtExpert.Deinit();
      return(INIT_FAILED);
     }
//--- Set trailing parameters
//--- Creation of money object
CMoneyFixedLot *money=new CMoneyFixedLot;
   if(money==NULL)
     {
      //--- failed
      printf(__FUNCTION__+": error creating money");
      ExtExpert.Deinit();
      return(INIT_FAILED);
     }
//--- Add money to expert (will be deleted automatically))
   if(!ExtExpert.InitMoney(money))
     {
      //--- failed
      printf(__FUNCTION__+": error initializing money");
      ExtExpert.Deinit();
      return(INIT_FAILED);
     }
//--- Set money parameters
money.Percent(Money_FixLot_Percent);
money.Lots(Money_FixLot_Lots);
//--- Check all trading objects parameters
   if(!ExtExpert.ValidationSettings())
     {
      //--- failed
      ExtExpert.Deinit();
      return(INIT_FAILED);
     }
//--- Tuning of all necessary indicators
   if(!ExtExpert.InitIndicators())
     {
      //--- failed
      printf(__FUNCTION__+": error initializing indicators");
      ExtExpert.Deinit();
      return(INIT_FAILED);
     }
//--- ok
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Deinitialization function of the expert                          |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   ExtExpert.Deinit();
  }
//+------------------------------------------------------------------+
//| "Tick" event handler function                                    |
//+------------------------------------------------------------------+
void OnTick()
  {
   ExtExpert.OnTick();
  }
//+------------------------------------------------------------------+
//| "Trade" event handler function                                   |
//+------------------------------------------------------------------+
void OnTrade()
  {
   ExtExpert.OnTrade();
  }
//+------------------------------------------------------------------+
//| "Timer" event handler function                                   |
//+------------------------------------------------------------------+
void OnTimer()
  {
   ExtExpert.OnTimer();
  }
//+------------------------------------------------------------------+
Voici le code, comme ceci
 
Le problème est récurrent, mais j'ai maintenant réduit la période de travail à titre de test (pour que le signal soit plus fréquent), et lorsque les conditions coïncident, il pleut à verse.
 
anatolev:
Le problème est, alors il n'est pas, juste maintenant comme un test réduit le délai de travail (de sorte qu'il serait signal plus souvent), et quand les conditions coïncident, versé.

Vous avez un problème avec la péremption :

input int            Signal_Expiration        =4.0;            // Expiration of pending orders (in bars)

Il n'y a pas d'expiration dans les BAR, seulement une date.

 
Mikalas:

Vous avez un problème avec la péremption :

Il ne peut pas y avoir d'expiration dans les BAR, seulement une date.

Je l'ai, merci ! Et comme dans ce cas serait correct, ou cette ligne peut être exclue ? ou peut-être il peut être mis égal à zéro, maintenant j'ai l'expérience :) réalisé qui ouvre le marqueur à l'ouverture de la deuxième barre après le signal, mettre
input double         Signal_PriceLevel        =0.0;          // Price level to execute a deal
c'était 4. j'aurais dû comprendre correctement, quand j'ai mis 4, la limite était fixée 4 ticks mieux que le marché, maintenant ça fonctionne comme le marché.
 
anatolev:
Je l'ai eu, merci ! Si je voulais placer un marqueur sur l'ouverture de la deuxième barre après le signal, je l'ai mis à zéro, avant c'était 4. Est-ce que je comprends bien, quand j'avais 4, la limite était réglée à 4 ticks de mieux que le marché, et maintenant quand je mets zéro, cela fonctionne comme le marché ?

Désolé, mais toutes les bibliothèques standard sont "réglées" pour fonctionner sur le FOREX.

Moi, et beaucoup d'autres, ne les utilisons pas pour travailler sur le FOREX.

Malheureusement, je ne peux pas vous aider à utiliser les bibliothèques standard.

 

Puisque vous en savez manifestement plus que moi sur le trading automatisé avec MT, vous pouvez peut-être répondre à quelques questions à la fois.

1) Exemple : mon robot a ouvert une position et l'a déplacée au jour de négociation suivant. Comme le marché est fermé la nuit, je ferme l'ordinateur pour la nuit et le rallume le matin avant de négocier, la question est la suivante : le robot verra-t-il la position ouverte plus tôt après avoir redémarré l'ordinateur et le terminal et continuera-t-il à travailler sur la position, à tourner, à suivre, etc.

Si oui, comment le fait-il, par le biais du MagicNumber ou autrement ?

2) Si une transaction est ouverte par le conseiller expert à partir d'un ordinateur, et qu'ensuite un autre ordinateur avec le même conseiller expert est démarré, est-ce qu'il continuera le travail commencé par le premier ou commencera-t-il à négocier "à partir de zéro" ?