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

 
chief2000 >> :

Dans l'Indicateur que j'ai défini (pour ensuite les comparer avec Time[i]) :


Puis dans la boucle


Par conséquent, StrToTime(StartRange) et StrToTime(EndRange) produisent des zéros .

- Pourquoi et comment le réparer ?



Oups. Et comment faites-vous pour mettre une variable de date dans la fonction StrToTime ? Il devrait y avoir une corde dedans !

Ou pensez-vous que la forme de travail D'1970.12.24' est une chaîne de caractères ? Vous vous trompez.

Peut-être avez-vous besoin de TimeToStr ?

 


Ainsi ,StrToTime(StartRange) et StrToTime(EndRange) produisent des zéros .

- Pourquoi et comment y remédier ?



//функция 

bool isTradeTimeString(string TimeBegin="00:00", string TimeEnd="00:00") {
  datetime dtBegin, dtEnd;        // Время начала и окончания работы
  int      hc, he;                // Часы текущего времени и окончания работы

  dtBegin=StrToTime(TimeToStr(TimeCurrent(), TIME_DATE)+" "+ TimeBegin);
  dtEnd  =StrToTime(TimeToStr(TimeCurrent(), TIME_DATE)+" "+ TimeEnd);
  hc     =TimeHour(TimeCurrent());
  he     =TimeHour( dtEnd);
  if ( dtBegin>= dtEnd) {
    if ( hc>= he) dtEnd+=24*60*60; else dtBegin-=24*60*60;
  }

  if (TimeCurrent()>= dtBegin && TimeCurrent()<= dtEnd) return( True);
  else return( False);
}

//+-------------------------------------------------------------------
вставить в глоб. переменные
//extern string TimeBegin = "00:00";
//extern string TimeEnd = "00:00";

а это уже в код - проверка 
/*
isTradeTimeString(); //торговля по времени
   if ( isTradeTimeString( TimeBegin, TimeEnd))
     {
       //торгуем
     }
*/
 

Il est évident que c'était mon erreur (mal interprété) Exemple

de la documentation). Il s'est avéré qu'il est possible de comparer la variable "datetime" directement à Time[i].

Merci pour votre aide !

 
...... a une fonction... ou un morceau de code... qui compte le nombre de pips parcourus après l'ouverture d'un ordre ? Je ne peux pas le faire moi-même aujourd'hui (car hier le pot n'avait plus d'eau) mais j'en ai vraiment besoin !
 
Je te le dis, ma tête ne fonctionne pas )))) Je vais aller chercher le code dans le chalut)))
 

//+------------------------------------------------------------------+
//| Custom MACD.mq4 |
//| Copyright © 2004, MetaQuotes Software Corp. |
//| http://www.metaquotes.net/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2004, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net/"
//---- indicator settings
#property indicator_separate_window
#property indicator_buffers 3
#property indicator_color1 Silver
#property indicator_color2 Red
#property indicator_color3 Blue

#property indicator_width1 2
//---- indicator parameters
extern int FastEMA=12;
extern int SlowEMA=26;
extern int SignalSMA=9;
extern int SMA=12;

//---- indicator buffers
double MacdBuffer[];
double SignalBuffer[];
double EMABuffer[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- drawing settings
SetIndexStyle(0,DRAW_HISTOGRAM);
SetIndexStyle(1,DRAW_LINE);
SetIndexStyle(2,DRAW_LINE);
SetIndexDrawBegin(1,SignalSMA);
IndicatorDigits(Digits+1);
//---- indicator buffers mapping
SetIndexBuffer(0,MacdBuffer);
SetIndexBuffer(1,SignalBuffer);
SetIndexBuffer(2,EMABuffer);

//---- name for DataWindow and indicator subwindow label
IndicatorShortName("MACD("+FastEMA+","+SlowEMA+","+SignalSMA+","+SMA+")");
SetIndexLabel(0,"MACD");
SetIndexLabel(1,"Signal");
//---- initialization done
return(0);
}
//+------------------------------------------------------------------+
//| Moving Averages Convergence/Divergence |
//+------------------------------------------------------------------+
int start()
{
int limit;
int counted_bars=IndicatorCounted();
//---- last counted bar will be recounted
if(counted_bars>0) counted_bars--;
limit=Bars-counted_bars;
//---- macd counted in the 1-st buffer
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);
//---- signal line counted in the 2-nd buffer
for(i=0; i<limit; i++)
SignalBuffer[i]=iMAOnArray(MacdBuffer,Bars,SignalSMA,0,MODE_SMA,i);
//---- done
for(i=0; i<limit; i++)
EMABuffer[i]=iMAOnArray(MacdBuffer,Bars,SMA,0,MODE_SMA,i);
//---- done
return(0);
}
//+------------------------------------------------------------------+

comment faire une MA avec un offset négatif, par exemple -5 barres, quand je la règle sur -5, elle dessine des conneries ?

 
evgenio >> :

как мне сделать МА с отрицательным смещением например на -5 баров, когда ставлю -5 рисует каюто фигню ??

Pourquoi des conneries ? Y a-t-il quelque chose que vous ne voulez pas voir ? Ou est-ce que je rate quelque chose ! !!!

ׂ

Ci-dessus est votre variante, ci-dessous est la variante avec un décalage de -5 ! juste par -5 barres décalées, qu'est-ce qui est faux ou mauvais ????????

 
Infinity >> :

Pourquoi des conneries ? Y a-t-il quelque chose que vous ne voulez pas voir ? Ou est-ce que je rate quelque chose ! !!!

Ci-dessus est votre variante, ci-dessous est la variante avec un décalage de -5 ! juste par -5 barres décalées, qu'est-ce qui est faux ou mauvais ????????

C'est vrai, mais quand j'essaie d'invoquer l'EA.

//+------------------------------------------------------------------+
//| fgfgfgfgfgf.mq4 |
//| Evgenio |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Evgenio"
#property link "http://www.metaquotes.net"

extern int FastEMA=12;
extern int SlowEMA=26;
extern int SignalSMA=9;
extern int SMA=12;
//---переменные----------
double k,k1,k2;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
k=NormalizeDouble(iCustom(Symbol(),0,"MACD+мувинг",FastEMA,SlowEMA,SignalSMA,SMA,0,0),5);
k1=NormalizeDouble(iCustom(Symbol(),0,"MACD+мувинг",FastEMA,SlowEMA,SignalSMA,SMA,1,0),5);
k2=NormalizeDouble(iCustom(Symbol(),0,"MACD+мувинг",FastEMA,SlowEMA,SignalSMA,SMA,2,0),5);
if (OrdersTotal()<=2)
{
if (k>0 && k2>k1+0.0005)
ObjectCreate("down"+Time[1], OBJ_ARROW, 0, Time[1], Open[1]+100*Point);
ObjectSet("down"+Time[1], OBJPROP_ARROWCODE, 242);
ObjectSet("down"+Time[1], OBJPROP_COLOR, Yellow);
}
return(0);
}
//+------------------------------------------------------------------+

ça ne marche pas.

Voici ce que je fais

1. exécuter un test sur une période donnée

2. Je joins un indicateur

3 Je reçois quelque chose d'étrange.


 

Comment puis-je faire

Je veux que mon EA n'ouvre un ordre qu'une fois par jour.

S'il a ouvert un ordre, puis l'a fermé et s'est éteint jusqu'au lendemain.

Je suppose que je dois aller chercher la dernière transaction dans l'historique... la comparer avec la date et si l'ordre a déjà été fermé ce jour-là, alors désactiver l'EA....

pensez-vous dans la bonne direction ?

Je n'arrive pas à comprendre complètement. Je suis nouveau dans le domaine du mql.

 

Bonjour, chers collègues.

Veuillez me conseiller sur la manière d'expliquer les points d'inflexion de la ligne dans le logiciel, c'est-à-dire à l'expert, c'est-à-dire que l'expert doit distinguer entre deux options de position МА : МА ascendante, МА descendante.