aidez-moi s'il vous plaît [résolu] - page 3

 
mrluck1:
Oui monsieur, je n'ai fait qu'une seule transaction, mais votre exemple était excellent, il sera très utile comme base pour créer de nouveaux eas.
bool trade_made = false;

void OnTick()
  {
   double up   = iIchimoku(NULL,5,9,26,52,3,0),
          down = iIchimoku(NULL,5,9,26,52,4,0);
   static bool was_above = true;
   bool is_above = (MathMax(up,down)< Bid);
   if(!trade_made && !was_above && is_above && open_orders()<1)
     {
      if(OrderSend(NULL,0,0.01,Ask,3, Bid-150*Point, Bid+100*Point)<0)
        {
         printf("OrderSend() failed. Error code: %i",GetLastError());    
        }
      else t rade_made=true;
     }
   was_above = is_above;
  }

int open_orders()
  {
   int count = 0;
   for(int i=OrdersTotal()-1; i>=0; i--) // good habit to count down
     {
      if(!OrderSelect(i,SELECT_BY_POS))  continue;  // select the order
      if(OrderSymbol() != _Symbol)       continue;  // optional check for same symbol
      if(OrderMagicNumber()!= magic_no)  continue;  // optional check for magic number
      if(OrderType() < 2)                count++;   // 0 == OP_BUY and 1 == OP_SELL
     }
   return(count);
  }
 
mrluck1:

Marco : J'ai essayé votre nouvelle mise à jour, mais il ne fait aucun trade, j'ai mis juste la façon dont vous avez posté la dernière, juste enlevé le deuxième int, dans le ticket. Mais le premier trade n'est jamais fait sur strategy tester, que faire maintenant ?

Il devrait placer un trade parce que :


     if (MathMax (up,down) < Bid )

    ticket= OrderSend (NULL,0,0.01,Ask,3, Bid-150*Point, Bid+100*Point);


//+------------------------------------------------------------------+
//|                                                    One Order.mq4 |
//|      Copyright 2017, Marco vd Heijden, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, Marco vd Heijden, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict

bool order=0;int ticket;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---

//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   if(order==0)
     {
      double up=iIchimoku(NULL,5,9,26,52,3,0);
      double down=iIchimoku(NULL,5,9,26,52,4,0);
        {
         if(MathMax(up,down)<Bid)
           {
            ticket=OrderSend(NULL,0,0.01,Ask,3,Bid-150*Point,Bid+100*Point);
              {
               if(ticket>-1)
                 {
                  order=1;
                 }
              }
           }
        }
     }
  }
//+------------------------------------------------------------------+

Je viens de l'essayer et il a placé UN ordre...


 

Merci beaucouphonest_knave c'est exactement ce dont j'avais besoin, je vous en serai éternellement reconnaissant,

merci aussi à Mr Marco pour son aide.

 
mrluck1:

Merci beaucouphonest_knave c'est exactement ce dont j'avais besoin, je vous en serai éternellement reconnaissant,

Vous êtes le bienvenu. Mais vous êtes d'accord que la réponse est rarement aussi simple qu'elle le semble ? Ce qui peut expliquer certains des commentaires iciCODE Aide( Urgent).
 
honest_knave:
Vous êtes les bienvenus. Mais êtes-vous d'accord pour dire que la réponse est rarement aussi simple qu'elle le semble ? Ce qui peut expliquer certains des commentaires iciCODE Help( Urgent).
J'ai déjà supprimé ce commentaire, une simple EA est un problème pour moi, je ne sais pas vraiment quoi dire.
 
mrluck1:
j'ai déjà supprimé ce commentaire, un simple EA est un problème pour moi, je ne sais pas vraiment quoi dire

Hey, nous apprenons tous encore. Et ton cœur était au bon endroit.

Je suis content que tu aies réglé ton problème.

Il y a plusieurs façons de faire la même chose... Marco et moi avons abordé le problème sous différents angles, et les deux sont également corrects.

Bonne chance

 

Oui, M.Marco vd Heijden, cela fonctionne exactement de la même manière que pour honest_knave, j'ai réessayé en me basant sur le dernier code dont vous disposez, cela a très bien fonctionné, je vais prendre les deux réponses, et utiliser la vôtre pour ce script car elle est plus similaire à l'idée originale.

Merci pour votre aide

 
Je crois que, d'après le code que vous postez, l'EA ne pourra plus ouvrir d'ordre. A moins que vous ne supprimiez l'EA du graphique, et que vous le rattachiez à nouveau (pour l'initialiser). Je suppose que c'était le but ?
 
Hairi Baba:
Je crois que, d'après le code que vous postez, l'EA ne pourra plus ouvrir d'ordre. A moins que vous ne supprimiez l'EA du graphique, et que vous le rattachiez à nouveau (pour l'initialiser). Je suppose que c'était le but ?

Maintenant espérons qu'il choisisse la bonne direction :)

J'ai lu quelque part qu'un type avait oublié qu'il avait encore une position ouverte et devinez ce qui s'est passé... $$$$$

 
Hairi Baba:
Je crois que, d'après le code que vous postez, l'EA ne pourra plus ouvrir d'ordre. A moins que vous ne supprimiez l'EA du graphique, et que vous le rattachiez à nouveau (pour l'initialiser). Je suppose que c'était le but ?
Oui, c'est ce que l'OP veut.