[ARCHIVE !] Toute question de débutant, pour ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 4. - page 35

 
skyjet:
Bonsoir, pourriez-vous me dire si j'ai correctement implémenté la fonction start() d'un indicateur dans un EA ? La compilation n'est pas d'accord !


Eh bien, tant de sept ne peuvent pas être faux, c'est un JACK-POT ! !!

Mais sérieusement, la description du problème est manifestement incomplète, vous devriez aller au club des télépathes. Ou décrivez plus en détail ce qui ne va pas, une liste d'erreurs de compilation, par exemple.

 
evillive:


Eh bien, autant de sept ne peuvent pas être faux, c'est un POINT DE JACK ! !!

Mais sérieusement, la description du problème est manifestement incomplète, vous devriez aller au club des télépathes. Ou décrivez plus en détail ce qui ne va pas, liste d'erreurs de compilation par exemple.


Au début, j'ai eu cette erreur :

'\end_of_program' - parenthèse finale '}' attendue C:\Program Files\Alpari \experts\xxx.mq4 (305, 1)

Bien sûr, j'ai ajouté une parenthèse, après ça :

'Ind_Start' - la fonction n'est pas définie C:\Program Files\ Alpari \experts\xxx.mq4 (86, 1)

'{' - point-virgule attendu C:\Program Files\ Alpari \experts\xxx.mq4 (87, 3)

 
skyjet:
Bonsoir, pouvez-vous me dire si j'ai correctement prescrit la fonction start() d'un indicateur dans mon EA ? La compilation n'est pas d'accord !
int start()
{

int varGet_Indicator_start = funcGet_Indicator_start();

return();
  
}


int funcGet_Indicator_start()

{
77777777777777777777777777777
77777777777777777777777777
777777777777777777777777777777
и чтоб возвращало int!!!
}


c'est d'accord

 

Au secours, l'indicateur ne fonctionne pas. Qu'est-ce que j'ai mal écrit ?

//-----
  int i,limit;
  int counted_bars=IndicatorCounted();
  if (counted_bars>0) counted_bars--; 
  limit=Bars-counted_bars;
//-----
   for(i=limit; i>=0; i--)
  {SMMA[i]=iMA(NULL,0,TrixPeriod,0,MODE_SMMA,PRICE_CLOSE,i);}
//-----
  for(i=limit; i>=0; i--)
  {EMAOnArray[i]=iMAOnArray(SMMA,0,TrixPeriod,0,MODE_EMA,i);}
//-----
  for(i=limit; i>=0; i--)
  {SMMAOnArray[i]=iMAOnArray(EMAOnArray,0,TrixPeriod,0,MODE_SMMA,i);}
//-----
  for(i=limit; i>=0; i--)
  {Trix[i]=(SMMAOnArray[i]-SMMAOnArray[i+1])/SMMAOnArray[i];}
//-----
  for(i=limit; i>=0; i--)
  {Signal[i]=iMAOnArray(Trix,0,SignalPeriod,0,MODE_EMA,i);}       
//-----
  for(i=limit; i>=0; i--)
  {Histogram[i]=Trix[i]-Signal[i];}
//-----
 

Veuillez me conseiller !

Supposons que j'ai plusieurs positions ouvertes dans le terminal et que j'ai besoin de connaître le prix d'ouverture d'un des ordres, disons BUY, je connais aussi la magie de chaque ordre ?

Comment je fais ça ?

 
artem86:

Veuillez me conseiller !

Supposons que j'ai plusieurs positions ouvertes dans le terminal et que j'ai besoin de connaître le prix d'ouverture d'un des ordres, disons BUY, je connais aussi la magie de chaque ordre ?

Comment je fais ça ?

//+------------------------------------------------------------------+
//|--------------------// Last Bull Open Price //--------------------|
//+------------------------------------------------------------------+
double LastBullOpenPrice()
{
  double MyLastBullOpenPrice=0;
  for(int Cnt=0;Cnt<OrdersTotal();Cnt++)
  { 
    OrderSelect(Cnt,SELECT_BY_POS,MODE_TRADES);
    if(OrderMagicNumber()==Magic && OrderType()==OP_BUY)
    {
      MyLastBullOpenPrice=OrderOpenPrice();
    }
  }
  return(MyLastBullOpenPrice);
}

 

Bonjour !

Pourriez-vous me dire comment écrire :

si ((b1!=0) && (b2==0))

openBuy(Lot,Magic) ;

si ((b1==0) && (b2!=0))

closeAll() ;

si ((s1!=0) && (s2==0))

openSell(Lot,Magic) ;

si ((s1==0) && (s2!=0))

closeAll() ;

mais les commandes ne s'ouvrent pas alors aidez-moi à trouver la raison

Dossiers :
 
ll77012:

Bonjour !

Pourriez-vous me dire comment écrire :

si ((b1!=0) && (b2==0))

openBuy(Lot,Magic) ;

si ((b1==0) && (b2!=0))

closeAll() ;

si ((s1!=0) && (s2==0))

openSell(Lot,Magic) ;

si ((s1==0) && (s2!=0))

closeAll() ;

mais les commandes ne s'ouvrent pas alors s'il vous plaît aidez-moi à trouver la raison


https://book.mql4.com/ru/trading/ordersend

Tout est très clair et détaillé.

 
quelque chose ne va pas avec la condition et elle n'est pas appelée
 
ll77012:

Bonjour !

Pourriez-vous me dire comment écrire :

si ((b1!=0) && (b2==0))

openBuy(Lot,Magic) ;

si ((b1==0) && (b2!=0))

closeAll() ;

si ((s1!=0) && (s2==0))

openSell(Lot,Magic) ;

si ((s1==0) && (s2!=0))

closeAll() ;

mais les commandes ne s'ouvrent pas alors aidez-moi à trouver la raison


indicateur buffer=EMPTY_VALUE ; non égal à 0, mais égal à 2147483647.
Raison: