[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 186

 
NTH >> :

Bonjour.

Pourquoi le stop ne se transfère pas pour les positions d'achat ? Pour la vente, tout fonctionne.

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

A l'origine, que signifie if(Bid==buy||Bid==busell),.... ??????? pouvez-vous le dire.

et probablement la condition suivante devrait être :

OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*nombre de points,OrderTakeProfit(),0,Blue)

 

if(Bid==bubuy||Bid==busell)

Le double bubuy est un niveau au toucher duquel le stop de la position d'achat est déplacé au niveau d'ouverture de cette position.

Le double busell est le niveau pour une position de vente.

 
NTH >> :

if(Bid==bubuy||Bid==busell)

Le double bubuy est un niveau au toucher duquel le stop de la position d'achat est déplacé au niveau d'ouverture de cette position.

Le double busell est un niveau pour une position de vente.

Vérifiez quand même l'état.

 

J'ai compris

if(OrdersTotal()>0)
{
OrderSelect(ticket, SELECT_BY_TICKET, MODE_TRADES) ;
if(OrderStopLoss()==OrderOpenPrice()) return(0) ;
if (OrderType()==OP_BUY) if(Bid>=buy) OrderModify(OrderTicket(),OrderOpenPrice(),OrderTakeProfit(), 0, Blue) ;
if(OrderType()==OP_SELL) if(Bid<=busell) OrderModify(OrderTicket(),OrderOpenPrice(),OrderTakeProfit(), 0, Red) ;
return(0) ;
}

Et une autre question, si les données proviennent de plusieurs TFs, est-il nécessaire que l'EA ouvre tous ces graphiques (dans des graphiques différents) lorsqu'il travaille en ligne, ou puis-je prendre un seul graphique et configurer l'EA sur celui-ci ? Supposons que l'EA travaille sur l'EUR/OD et prend les données des cadres H1 H4 D1 pour l'analyse, et qu'il (l'EA) est attaché à H1, ai-je besoin d'ouvrir dans d'autres graphiques H4 et D1 ?

 
NTH >> :

J'ai compris

si(OrdersTotal()>0)
{
OrderSelect(ticket, SELECT_BY_TICKET, MODE_TRADES) ;
si(OrderStopLoss()==OrderOpenPrice()) return(0) ;
if(OrderType()==OP_BUY) if(Bid>=buy) OrderModify(OrderTicket(),OrderOpenPrice(),OrderTakeProfit(), 0, Blue) ;
if (OrderType()==OP_SELL) if(Bid<=busell) OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice(),OrderTakeProfit(), 0, Red) ;
retour(0) ;
}

Et une autre question, si mon EA prend des données de plusieurs TFs, est-ce que j'ai besoin que tous ces TFs soient ouverts (dans différents graphiques) quand l'EA fonctionne en ligne ou est-ce que je peux prendre un seul graphique et mettre l'EA dessus ? Supposons que l'EA fonctionne sur l'EUR/OD et prend les données des cadres H1 H4 D1 pour l'analyse, et attaché à H1, a-t-il besoin d'ouvrir dans les autres graphiques H4 et D1 ?

Pas besoin d'ouvrir d'autres graphiques avec des délais... L'EA calculera lui-même toutes les données à partir des calendriers.

 

Bonjour, pourriez-vous me dire comment réparer l'indicateur https://www.mql5.com/ru/code/7361.

Le fait est que le signal apparaît sur la barre actuelle, et qu'à chaque tic, un signal sonore retentit. J'aimerais avoir un son après la fermeture de la barre, si le signal n'est pas annulé.

//+------------------------------------------------------------------+
//| SilverTrend_Signal.mq4                                           |
//| Ramdass - Conversion only                                        |
//+------------------------------------------------------------------+
#property copyright "SilverTrend  rewritten by CrazyChart"
#property link      "http://viac.ru/"
//----
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Aqua
#property indicator_color2 Violet
//---- input parameters
extern int RISK=3;
extern int CountBars=350;
extern int NumberofAlerts=2;
int SSP=9;
int counter=0;
//---- buffers
double val1[];
double val2[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
   string short_name;
//---- indicator line
   IndicatorBuffers(2);
   SetIndexStyle(0,DRAW_ARROW);
   SetIndexArrow(0,233);
   SetIndexStyle(1,DRAW_ARROW);
   SetIndexArrow(1,234);
   SetIndexBuffer(0, val1);
   SetIndexBuffer(1, val2);
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| SilverTrend_Signal                                               |
//+------------------------------------------------------------------+
int start()
  {
   if ( CountBars>=Bars) CountBars=Bars;
   SetIndexDrawBegin(0,Bars- CountBars+ SSP);
   SetIndexDrawBegin(1,Bars- CountBars+ SSP);
   int i, shift, counted_bars=IndicatorCounted();
   int i1, i2, K;
   double Range, AvgRange, smin, smax, SsMax, SsMin, price;
   bool uptrend, old;
//----
   if(Bars<= SSP+1) return(0);
//---- initial zero
   if( counted_bars< SSP+1)
     {
      for( i=1; i<= SSP; i++) val1[ CountBars- i]=0.0;
      for( i=1; i<= SSP; i++) val2[ CountBars- i]=0.0;
     }
//----
   K=33- RISK;
   for( shift= CountBars- SSP; shift>=0; shift--)
     {
      Range=0;
      AvgRange=0;
      for( i1= shift; i1<= shift+ SSP; i1++)
        { AvgRange= AvgRange+MathAbs(High[ i1]-Low[ i1]);
        }
      Range= AvgRange/( SSP+1);
//----
      SsMax=High[ shift]; SsMin=Low[ shift];
      for( i2= shift; i2<= shift+ SSP-1; i2++)
        {
         price=High[ i2];
         if( SsMax< price) SsMax= price;
         price=Low[ i2];
         if( SsMin>= price)  SsMin= price;
        }
      smin= SsMin+( SsMax- SsMin)* K/100;
      smax= SsMax-( SsMax- SsMin)* K/100;
      val1[ shift]=0;
      val2[ shift]=0;
      if (Close[ shift]< smin)
        {
         uptrend=false;
        }
      if (Close[ shift]> smax)
        {
         uptrend=true;
        }
      if ( uptrend!= old && uptrend==true)
        {
         val1[ shift]=Low[ shift]- Range*0.5;
         counter=0;
         if ( shift==0 && counter<= NumberofAlerts)
           {
            Alert("Silver Trend ",Period()," ",Symbol()," BUY");
            counter= counter+1;
           }
        }
      if ( uptrend!= old && uptrend==false)
        {
         counter=0;
         val2[ shift]=High[ shift]+ Range*0.5;
         if ( shift==0 && counter<= NumberofAlerts)
           {
            Alert("Silver Trend ",Period()," ",Symbol()," SELL");
            counter= counter+1;
           }
        }
      Comment( shift);
      old= uptrend;
     }
   return(0);
  }
//+------------------------------------------------------------------+
 
Les gens ont rencontré qui a rencontré un expert Martingail Deux mains 2,07 exactement 2,07 ou tout simplement 2,7 mai pas tout à fait à juste titre écrit le nom, car il est téléchargé à partir d'un site avec un tas d'autres testé 2 semaine et il a fait plus de 100% deux semaines konestno peu, mais je n'ai pas eu le temps de le tester plus loin parce que j'ai eu à la ferme de l'entraînement. Mai qui s'est rencontré ?
 
J'ai aussi une demande pour mettre dans ce conseil le profit, je ne le reçois pas, s'il vous plaît.
Dossiers :
 

Salutations à tous !


Aidez-moi à résoudre le problème suivant.

Il existe un indicateur personnalisé qui dessine des signaux sur le graphique.

Les signaux sont donnés avec un délai, que j'essaie de déterminer pour chaque signal et de l'inscrire à côté sur le graphique.

Pour commencer, j'ai décidé d'essayer de sortir le moment de l'apparition du signal :

ObjectCreate(StringConcatenate("Text_",IndicatorNumber, "_",i), OBJ_TEXT, 0, "cur_time",short[i] + 0.0020) ;
ObjectSetText(StringConcatenate("Text_",IndicatorNumber, "_",i), TimeToStr(CurTime(),TIME_SECONDS), 10, "Arial", Lime) ;

Mais le code ne fonctionne pas, je ne peux pas voir l'heure.

Qu'est-ce que je fais de mal ?

 

Bonjour.

J'ai téléchargé avec "Quote Archive" les cotations livre/dollar (M1) de 1999 au format DAT, comment puis-je convertir ces données pour les tester ?