J'ai besoin de l'indicateur pour dessiner des flèches sur le graphique quotidien. Je suppose que le problème réside dans l'utilisation des EMA de 15 minutes, tout fonctionne sur les EMA de 15 minutes. Est-il possible de créer un indicateur calculé à partir de l'échelle de temps 15 minutes et de dessiner des flèches sur le graphique journalier ?
Le code trouve la distance entre le niveau de prix actuel et la tendance par TrendLineName. Mais il y a un problème : apparemment, la tendance n'est pas transmise avec précision entre les moitiés, et donc la distance au prix est très différente pour les différentes moitiés. Comment contourner ce problème ? Idéalement, même si la ligne de tendance n'est affichée que sur H1, sur le cadre temporel ouvert W1 (en fait sur n'importe quel cadre temporel ouvert), la distance calculée devrait être la même.
En rapport avec la question de la citation ci-dessus, une autre question : comment puis-je simuler un cadre temporel différent de celui qui est ouvert sur le graphique ? C'est-à-dire que, par exemple, avec D1 ouvert, dois-je calculer sur M30 ?
J'ai cherché sur Internet, j'ai trouvé quelque chose, mais j'ai essayé et ça ne marche pas ! Aidez-moi à ajouter un stop suiveur)) devrait fonctionner comme ceci - si le prix monte / descend (en profit) à "X" points, déclenche un stop suiveur à "Y" points de ce prix et se déplace dans la direction profitable avec l'incrément "Z". Merci à tous ceux qui nous aideront))))))
//+------------------------------------------------------------------+ //| fonction d'initialisation de l'expert | //+------------------------------------------------------------------+ double lot=1 ; extern double sl=30 ; extern double tp=30 ; extern double koeff=2 ; int pon=1 ; int vtor=0 ; int sred=3 ; int hetver=0 ; int patn=0 ;
int init() { //----
//---- retour(0) ; } //+------------------------------------------------------------------+ //| fonction de désinitialisation des experts | //+------------------------------------------------------------------+ int deinit() { //----
//---- retour(0) ; } //+------------------------------------------------------------------+ //| fonction de démarrage de l'expert | //+------------------------------------------------------------------+ int start()
Lorsqu'une nouvelle barre s'ouvre, un ordre doit être ouvert.
Exactement le nouveau bar
Pas de problème !
Commencez à écrire le code dont vous avez besoin. En cas de difficultés, posez des questions et montrez des morceaux du code que vous avez écrit, et des camarades expérimentés vous montreront où vous vous êtes trompé.
J'ai une question. Dans le testeur, la semaine commence à 00:00 si l'on regarde le graphique horaire, par exemple. Il est connu que la semaine du forex commence à 20:15 GMT. C'est-à-dire que pour passer d'une heure à l'heure GMT du testeur, en gros, il faut prébovlyayut 20 heures et diviser le modulo par 24, non ?
Bonne journée à tous. S'il vous plaît, indiquez où obtenir des informations sur la façon de fermer l'EA des regards indiscrets et ce dont vous avez besoin pour que l'EA fonctionne pendant une certaine période de temps et cesse ensuite d'être utile pour le moment, bien, par exemple, pour introduire un code pour la poursuite du travail, comme ça. Merci d'avance ! !!
J'ai besoin de l'indicateur pour dessiner des flèches sur le graphique quotidien. Je suppose que le problème réside dans l'utilisation des EMA de 15 minutes, tout fonctionne sur les EMA de 15 minutes. Est-il possible de créer un indicateur calculé à partir de l'échelle de temps 15 minutes et de dessiner des flèches sur le graphique journalier ?
Voici le code lui-même :
dist = MathAbs((NormalizeDouble(Bid,Digits)-
NormalizeDouble(ObjectGetValueByShift(TrendLineName,0),Digits))*MathPow(10,Digits));
Le code trouve la distance entre le niveau de prix actuel et la tendance par TrendLineName. Mais il y a un problème : apparemment, la tendance n'est pas transmise avec précision entre les moitiés, et donc la distance au prix est très différente pour les différentes moitiés. Comment contourner ce problème ? Idéalement, même si la ligne de tendance n'est affichée que sur H1, sur le cadre temporel ouvert W1 (en fait sur n'importe quel cadre temporel ouvert), la distance calculée devrait être la même.
En rapport avec la question de la citation ci-dessus, une autre question : comment puis-je simuler un cadre temporel différent de celui qui est ouvert sur le graphique ? C'est-à-dire que, par exemple, avec D1 ouvert, dois-je calculer sur M30 ?
//+------------------------------------------------------------------+
//| sobstvennyi_probnyi_sovetnic.mq4 |
//| Antonico |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Antonico"
#lien de propriété "http://www.metaquotes.net"
//+------------------------------------------------------------------+
//| fonction d'initialisation de l'expert |
//+------------------------------------------------------------------+
double lot=1 ;
extern double sl=30 ;
extern double tp=30 ;
extern double koeff=2 ;
int pon=1 ;
int vtor=0 ;
int sred=3 ;
int hetver=0 ;
int patn=0 ;
int init()
{
//----
//----
retour(0) ;
}
//+------------------------------------------------------------------+
//| fonction de désinitialisation des experts |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
retour(0) ;
}
//+------------------------------------------------------------------+
//| fonction de démarrage de l'expert |
//+------------------------------------------------------------------+
int start()
{ int otkrord=OrdersTotal() ;
if (DayOfWeek()==pon || DayOfWeek()==vtor || DayOfWeek()==sred || DayOfWeek()==hetver || DayOfWeek()==patn || DayOfWeek()==6 | DayOfWeek()==0 || otkrord >0) return(0) ;
si(OrdersHistoryTotal()==0)
{lot=1;}
if(OrderSelect(OrdersHistoryTotal()-1,SELECT_BY_POS,MODE_HISTORY))
{
si (OrderProfit()>0)
{
lot=1 ;
}
si (OrderProfit()<=0)
{
lot=OrderLots()*koeff ; // Multiplier par 2
}
}
int h=TimeHour(TimeCurrent()) ;
int m=TimeMinute(TimeCurrent()) ;
int s=TimeSeconds(TimeCurrent()) ;
double zena0=Open[3] ;
double zena01=Open[2] ;
si (h==1 && m==00 && s==01 && zena0<zena01 )
{OrderSend(Symbol(), OP_BUY,lot,Ask,3,Bid-sl*Point,Ask+tp*Point,"",0,0,Green);}
si (h==1 && m==00 && s==01 && zena0>zena01)
{OrderSend(Symbol(), OP_SELL,lot,Bid,3,Ask+sl*Point,Bid-tp*Point,"",0,0,Red);}
}
{si(OrdersHistoryTotal()==0)
{lot=1;}
if(OrderSelect(OrdersHistoryTotal()-1,SELECT_BY_POS,MODE_HISTORY))
{
si (OrderProfit()>0)
{
lot=1 ;
}
si (OrderProfit()<=0)
{
lot=OrderLots()*koeff ; // Multiplier par 2 après un trade perdant
}
}
double zena1=Open[5] ;
double zena11=Open[4] ;
si (h==3 && m==00 && s==01 && zena1>zena11)
{
OrderSend(Symbol(), OP_BUY,lot,Ask,3,Bid-sl*Point,Ask+tp*Point,"",0,0,Green);}
si (h==14 && m==00 && s==01 && zena1<zena11)
{OrderSend(Symbol(), OP_SELL,lot,Bid,3,Ask+sl*Point,Bid-tp*Point,"",0,0,Red);}
}
}
retour(0) ;
}
//+------------------------------------------------------------------+
Pouvez-vous me dire comment traduire un caractère (chaîne de caractères) en code ASCII ?
En gros, vous avez besoin de l'inverse de CharToStr().
Pouvez-vous me dire comment traduire un caractère (chaîne de caractères) en code ASCII ?
En gros, vous avez besoin de l'inverse de CharToStr().
Bon après-midi.
Aidez-moi, j'ai besoin d'un code
graphique actuel
Lorsqu'une nouvelle barre s'ouvre, un ordre doit être ouvert.
Exactement le nouveau bar
Bon après-midi.
Aidez-moi, j'ai besoin d'un code
graphique actuel
Lorsqu'une nouvelle barre s'ouvre, un ordre doit être ouvert.
Exactement le nouveau bar
Pas de problème !
Commencez à écrire le code dont vous avez besoin. En cas de difficultés, posez des questions et montrez des morceaux du code que vous avez écrit, et des camarades expérimentés vous montreront où vous vous êtes trompé.
Bonjour à tous.
J'ai une question. Dans le testeur, la semaine commence à 00:00 si l'on regarde le graphique horaire, par exemple. Il est connu que la semaine du forex commence à 20:15 GMT. C'est-à-dire que pour passer d'une heure à l'heure GMT du testeur, en gros, il faut prébovlyayut 20 heures et diviser le modulo par 24, non ?