[Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas votre chemin. Je ne peux aller nulle part sans toi. - page 185

 
001 писал(а) >>
Si vous pouviez le faire en code, je me suis creusé les méninges :)
int Order_Count[6];
//===============================================================================
// Функция возвращаюшая количество ордеров определенного типа исхода из заданных ограничений
//===============================================================================
int Order_Count_Calculate(string _Symbol, int _Magic, int _OP=-1){
   ArrayInitialize( Order_Count,0);
   for (int i = OrdersTotal() - 1;  i >= 0;  i--) {
      if (!OrderSelect( i, SELECT_BY_POS, MODE_TRADES))   continue;
      if (OrderSymbol() != _Symbol)                     continue;
      if (OrderMagicNumber() != _Magic)                   continue;
      Order_Count[OrderType()]++;
   }
   if (_OP>=0) return( Order_Count[_OP]);
   return(0);
}
Cela fera
 

Quel pourrait être le problème ? L'indicateur a montré plusieurs morceaux pendant le test et l'EA a bouclé ce qui pourrait être le problème avec l'indicateur ?



Dossiers :
trix_pv_4.mq4  10 kb
 

Dans quelle variable la valeur de l'OsMA est-elle stockée ?



//+------------------------------------------------------------------+
//| OsMA.mq4 |
//| Copyright © 2004, MetaQuotes Software Corp.
//| http://www.metaquotes.net/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2004, MetaQuotes Software Corp.
#lien de propriété "http://www.metaquotes.net/"
//---- paramètres de l'indicateur
#propriété indicator_separate_window
#property indicator_buffers 1
#propriété indicator_color1 Argent
#property indicator_width1 2
//---- paramètres de l'indicateur
extern int FastEMA=12 ;
externe interne SlowEMA=26 ;
extern inttern SignalSMA=9 ;
//---- tampons indicateurs
double OsmaBuffer[] ;
double MacdBuffer[]; ;
double SignalBuffer[] ;

//+------------------------------------------------------------------+
//| Fonction d'initialisation de l'indicateur personnalisé |
//+------------------------------------------------------------------+
int init()
{
//---- 2 tampons supplémentaires sont utilisés pour le comptage.
IndicatorBuffers(3) ;
//---- paramètres de dessin
SetIndexStyle(0,DRAW_HISTOGRAM) ;
SetIndexDrawBegin(0,SignalSMA) ;
IndicateurDigits(Digits+2) ;
//---- cartographie de 3 tampons indicateurs
SetIndexBuffer(0,OsmaBuffer) ;
SetIndexBuffer(1,MacdBuffer) ;
SetIndexBuffer(2,SignalBuffer) ;
//---- nom pour la DataWindow et l'étiquette de la sous-fenêtre de l'indicateur
IndicatorShortName("OsMA("+FastEMA+", "+SlowEMA+", "+SignalSMA+")") ;
//---- initialisation faite
retour(0) ;
}
//+------------------------------------------------------------------+
//| Moyenne mobile de l'oscillateur |
//+------------------------------------------------------------------+
int start()
{
int limite ;
int counted_bars=IndicatorCounted() ;
//---- dernière barre comptée sera recomptée
si(counted_bars>0) counted_bars-- ;
limit=Bars-counted_bars ;
//---- macd compté dans le 1er tampon supplémentaire
for(int i=0 ; i<limit ; i++)
MacdBuffer[i]=iMA(NULL,0,FastEMA,0,MODE_EMA,PRICE_CLOSE,i)-iMA(NULL,0,SlowEMA,0,MODE_EMA,PRICE_CLOSE,i) ;
//---- ligne de signal comptée dans le 2ème tampon supplémentaire
pour(i=0 ; i<limite ; i++)
SignalBuffer[i]=iMAOnArray(MacdBuffer,Bars,SignalSMA,0,MODE_SMA,i) ;
//---- boucle principale
pour(i=0 ; i<limite ; i++)
OsmaBuffer[i]=MacdBuffer[i]-SignalBuffer[i] ;
//---- fait

retour(0) ;
}
//+------------------------------------------------------------------+

 
Vinin писал(а) >>
Cette variante fera

Merci beaucoup ! Bien que je n'aie pas eu affaire à des fonctions, je dois maintenant trouver comment l'appeler, lui transmettre les valeurs des variables et récupérer les valeurs. Si je comprends bien le mécanisme.

 
vlandex >> :

Dans quelle variable la valeur de l'OsMA est-elle stockée ?

n'est-il pas dans le tampon ?

 
Infinity >> :

>> mais n'est-il pas dans le tampon ?

>> Quel tampon ?

 
vlandex писал(а) >>

Laquelle ?

OsmaBuffer[]

 
vlandex >> :

>> lequel ?

дабавте перед

Alert("Значения MacdBuffer[i]="MacdBuffer[i]);

Alert("Значения SignalBuffer[i]="SignalBuffer[i]);

Alert("Значения OSMA ="OsmaBuffer[i]);

return(0);
}


il suffit de normaliser les valeurs

 

Bonjour.

Pourquoi le stop ne transfère-t-il pas pour les positions d'achat ? Pour les positions de vente, tout fonctionne.

if(OrdersTotal()>0)
{
if(Bid==buy||Bid==busell)
{
OrderSelect(ticket, SELECT_BY_TICKET, MODE_TRADES) ;
OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice(),OrderTakeProfit(), 0, Blue) ;
}
return(0) ;
}

 
1Rakso >> :

Quel pourrait être le problème ? L'indicateur a montré plusieurs morceaux pendant le test, et l'EA a bouclé ce qui pourrait être le problème de l'indicateur ?

Paramètres incorrectement définis (en nombre ou en type) dans l'EA.

Vous pouvez également supprimer tous les paramètres de type chaîne de l'indicateur.