Qu'est-ce qu'il y a de mal à ça ? - page 4

 
sss2019:
Qu'est-ce que ça va être d'autre ?

et cela, vous le vérifierez par vous-même et vous le saurez.
 
sergeev:

et cela, vous le vérifierez par vous-même et vous le saurez.
Pourquoi vous le livrez comme ça, vous n'avez même pas demandé son nom de famille. C'est un joker, vous n'avez même pas besoin d'ouvrir un mandat, il suffit de le picorer silencieusement dans votre poche.
 
Un scrapple, par contre ! C'est ça, ouais, ouais.
 

Pourquoi cette commande ne s'ouvre-t-elle pas, quelle est l'erreur ?

//+------------------------------------------------------------------+
//|                                                         Test.mq4 |
//|                      Copyright © 2011, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2011, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"

extern int MaFastPeriod = 30;
extern int MaSlowPeriod = 90;
extern int StopLoss = 25;
extern int TakeProfit = 50;

int init()
  {

  }



int deinit()
  {

  }



int start()
  {
double MaFast = iMA(Symbol(),0,MaFastPeriod,0,MODE_EMA,PRICE_CLOSE,0);
double MaSlow = iMA(Symbol(),0,MaSlowPeriod,0,MODE_EMA,PRICE_CLOSE,0);
   
   if(OrdersTotal() == 0 && MaFast > MaSlow)
   {
   OrderSend(Symbol(),0,0.1,Ask,3,Ask+TakeProfit*Point,Ask-StopLoss*Point,"CommentA",0,0,Green);
   }else
   {
      if(GetLastError() != 0)
         {
         Alert("Ошибка", GetLastError());
         }
   }
   
   return(0);
  }
 
Comment puis-je mettre en œuvre l'ouverture d'une transaction uniquement sur la barre de signal ?

Par exemple, une moyenne mobile en a croisé une autre, une transaction s'ouvre, mais si vous fermez cette transaction, une autre s'ouvrira, même plusieurs barres après la barre de signal.
 
sss2019:
Comment puis-je mettre en place l'ouverture d'une transaction uniquement sur la barre de signal ?

Par exemple, une moyenne mobile en a croisé une autre, une transaction s'ouvre, mais si vous fermez cette transaction, une autre s'ouvrira, même à plusieurs barres de distance de la barre de signal.
Vous êtes définitivement banni de google, et de notre FAQ aussi.
Tout d'abord, COMMENT obtenez-vous le signal de croisement de deux MA ?

Puis google quelque chose comme ouvrir une seule commande site:mql4.com
 

Oui, je sais comment ouvrir un ordre, mais le problème est que si vous ouvrez un ordre et qu'il se ferme après quelques heures et que toutes les conditions d'ouverture sont encore intactes, alors un autre ordre est ouvert, même si vous vous êtes déjà éloigné de la barre de signal.

Je vais jeter un coup d'œil à votre lien, merci.

 
sss2019:

Oui, je sais comment ouvrir un ordre, mais le problème est que si vous ouvrez un ordre et qu'il se ferme après quelques heures et que toutes les conditions d'ouverture sont encore intactes, un autre ordre est ouvert même si vous vous êtes déjà éloigné de la barre de signal.

Je vais regarder votre lien, merci.


Nous avons mis un drapeau pour permettre l'ouverture des commandes. Un signal arrive et le drapeau permet. Nous ouvrons la position et retirons immédiatement le drapeau. La pose est fermée après un certain temps. Le conseiller expert voit qu'il y a un signal, mais le drapeau est retiré (il est interdit de placer des ordres) - par conséquent, l'ordre n'est pas placé.

Suivant. S'il n'y a pas de signal, nous mettons un drapeau (permettant l'ouverture de positions). Ou, dès qu'il y a un nouveau signal, nous mettons un drapeau. Mais dans le second cas, le conseiller expert doit être capable de distinguer un nouveau signal de l'ancien.

 

drknn:



Définir un drapeau pour autoriser l'ouverture des ordres. Un signal arrive et le drapeau permet. Nous ouvrons la position et retirons immédiatement le drapeau. La pose est fermée après un certain temps. Le conseiller expert voit qu'il y a un signal mais le drapeau a été retiré (il est interdit de fixer des ordres), par conséquent, l'ordre n'est pas fixé.

Suivant. S'il n'y a pas de signal, nous mettons le drapeau (ce qui permet d'ouvrir des positions). Ou, dès qu'il y a un nouveau signal, nous mettons le drapeau. Mais dans le second cas, le conseiller expert doit être capable de distinguer un nouveau signal de l'ancien.


Merci beaucoup, je pense que cette façon est plus universelle.

A propos, comment pouvons-nous annoncer dans notre EA que l'ordre a été ouvert ? Peut-être cela peut-il être mis en œuvre en utilisant OrderSelect ?

 

Jetez un coup d'oeil à ce que j'ai fait de travers et maintenant la commande ne s'ouvre pas.

//+------------------------------------------------------------------+
//|                                                         Test.mq4 |
//|                      Copyright © 2011, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2011, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"

extern int MaFastPeriod = 30;
extern int MaSlowPeriod = 90;
extern int StopLoss = 25;
extern int TakeProfit = 50;

int init()
  {

  }



int deinit()
  {

  }



int start()
  {
  double MyPoint = Point;
   if(Digits == 3 || Digits == 5)
      {
      MyPoint = Point * 10;
      }
      
double MaFast = iMA(Symbol(),0,MaFastPeriod,0,MODE_EMA,PRICE_CLOSE,0);
double MaSlow = iMA(Symbol(),0,MaSlowPeriod,0,MODE_EMA,PRICE_CLOSE,0);

   for(int SelectedOrder = 0; SelectedOrder < OrdersTotal(); SelectedOrder++)
      {
         bool Flag = false;
         if(OrderSelect(SelectedOrder,SELECT_BY_POS,MODE_TRADES)==True)
            {
            Flag = false;
            }
      }
   return(Flag);
   
   if(OrdersTotal() == 0 && MaFast > MaSlow && Flag == false)
      {
      OrderSend(Symbol(),0,0.1,Ask,30,Ask-StopLoss*MyPoint,Ask+TakeProfit*MyPoint,"CommentA",0,0,Green);
      }
   
   return(0);
  }