Demandez ! - page 51

 
pawang:
Bonjour

Je suis désolé si ma question est très basique.

Je suis en train d'apprendre mql4.

S'il vous plaît aidez-moi comment exprimer ces conditions mathématiques dans mql4 :

IF( (A>B) AND (|X| <1) AND (Y<Z) ) then... ... ... ....

|X| est absoulu ; cela signifie (X 1)

J'ai reçu un message de MetaEditor

" L'EXPRESSION IF EST TROP COMPLEXE".

Après de nombreuses tentatives,... Je n'ai plus d'idée... Alors dites-moi comment faire...

Merci

Essayez ceci :

if((a>b && MathAbs(x)<1) && y<z)

{

//écrire ici ce qui devrait se passer

}

 

Question pour l'oracle...

Existe-t-il un moyen de faire en sorte que votre EA exécute une optimisation et ajuste automatiquement les paramètres chaque jour ?

J'aimerais exécuter une optimisation du facteur de profit sur 30 jours pour 16 paramètres et faire en sorte qu'il applique les paramètres avant de recommencer à trader. Il s'arrête automatiquement tous les jours pendant environ 8 heures. ce serait le moment idéal pour l'exécuter...

quelqu'un sait comment le coder... Cela le ferait passer du niveau de la grande EA au niveau de l'IA incroyablement rentable...

Cela pourrait aussi être un bon code que tout le monde pourrait utiliser dans ses EA's. Les marchés s'ajustent constamment, pourquoi nos EA's ne devraient-ils pas devenir plus intelligents ?

J'ai aussi posté ceci dans le forum EA, je ne connaissais pas celui-ci jusqu'à maintenant...

Merci pour votre aide.

 

Un conseil s'il vous plaît

Est-il possible de créer des indicateurs de barres dans des fenêtres séparées comme l'indicateur de l'image que j'ai postée [je ne sais pas comment ils s'appellent officiellement] pour, par exemple, une barre rouge si le MACD traverse une zone négative et reste rouge s'il est dans une zone négative et vert s'il traverse une zone positive, etc. etc. De même, est-il possible de créer les mêmes fenêtres d'indicateurs de barres pour, par exemple, un prix inférieur à une moyenne mobile.

Si cette question vous semble stupide, soyez indulgent avec moi. Lorsque je regarde des indicateurs sur un graphique, j'ai tendance à essayer d'anticiper ce que le prix va faire. Je cherche donc à avoir des indicateurs à fenêtres séparées qui, lorsqu'ils affichent tous la même couleur, me permettent de trader. [Raisons psychologiques]. Je suis loin d'être un programmeur, quel que soit le langage utilisé, mais je peux apprendre à créer ces indicateurs à barres séparées.

Tout conseil serait grandement apprécié.

dh

Dossiers :
chart.jpg  11 kb
 
pawang:
Bonjour

Je suis désolé si ma question est très basique.

Je suis en train d'apprendre mql4.

S'il vous plaît aidez-moi comment exprimer ces conditions mathématiques dans mql4 :

IF( (A>B) AND (|X| <1) AND (Y<Z) ) then... ... ... ....

|X| est absoulu ; cela signifie (X 1)

J'ai reçu un message de MetaEditor

" L'EXPRESSION IF EST TROP COMPLEXE".

Après de nombreuses tentatives,... Je n'ai plus d'idée... Alors s'il vous plaît dites-moi comment...

Merci

if(a>b && (x 1) && y<z){

;votre code

}

ou peut-être x == 0 au lieu de (x 1) parce que la seule façon MathAbs(x) < 1 est vrai quand x=0

http://docs.mql4.com/basis/operations/bool

d'un autre côté, peut-être avez-vous simplement besoin de ceci :

if(a>b && x<1 && y<z)

ou ceci

if(a>b && x<-1 && y<z)

puisque x n'est jamais 0 ou -1 selon votre définition.

Je suis confus par votre définition de la valeur absolue

 
dxx:
Est-il possible de créer des indicateurs de barres dans des fenêtres séparées comme l'indicateur de l'image que j'ai postée [je ne sais pas comment ils s'appellent officiellement] pour, par exemple, une barre rouge si le MACD passe en négatif et reste rouge s'il est dans les zones négatives et vert s'il passe en positif, etc. etc. Il est également possible de créer les mêmes fenêtres d'indicateurs de barres pour, par exemple, un prix inférieur à une moyenne mobile.

Si cette question vous semble stupide, soyez indulgent avec moi. Lorsque je regarde des indicateurs sur un graphique, j'ai tendance à essayer d'anticiper ce que le prix va faire. Je cherche donc à avoir des indicateurs à fenêtre séparée qui, lorsqu'ils affichent tous la même couleur, me permettent de trader. [Raisons psychologiques]. Je suis loin d'être un programmeur, quel que soit le langage utilisé, mais je peux apprendre à créer ces indicateurs séparés de type barre.

Tout conseil serait grandement apprécié.

dh

Oui, cela est possible.

 
dxx:
Est-il possible de créer des indicateurs de barres dans des fenêtres séparées comme l'indicateur de l'image que j'ai postée [je ne sais pas comment ils s'appellent officiellement] pour, par exemple, une barre rouge si le MACD passe en négatif et reste rouge s'il est dans les zones négatives et vert s'il passe en positif, etc. etc. Il est également possible de créer les mêmes fenêtres d'indicateurs de barres pour, par exemple, un prix inférieur à une moyenne mobile.

Si cette question vous semble stupide, soyez indulgent avec moi. Lorsque je regarde des indicateurs sur un graphique, j'ai tendance à essayer d'anticiper ce que le prix va faire. Je cherche donc à essayer d'avoir des indicateurs de fenêtre séparés qui, lorsqu'ils affichent tous la même couleur, me permettent de trader. [Raisons psychologiques]. Je suis loin d'être un programmeur, quel que soit le langage utilisé, mais je peux apprendre à créer ces indicateurs séparés de type barre.

Tout conseil serait grandement apprécié.

dh

Voici exactement ce que vous voulez, chargez les 4 du même indicateur sur un graphique, tous avec des paramètres différents comme indiqué ci-dessous, lorsque tous les rouges vendent, lorsque tous les bleus achètent.

paramètres

définir le premier pour 15 minutes

le deuxième 30 minutes

troisième 60 minutes

quatrièmement 140 minutes

Dossiers :
 

merci

Les gars, merci je vais explorer les indicateurs postés#.

très apprécié

 

Serait-il possible d'écrire un type d'indicateur qui trace des graphiques en tic-tac constants ou des barres de gamme constantes dans une autre fenêtre ? Il s'agit de différentes formes de graphiques qui ne sont pas basées sur le temps. Par exemple, une barre de 100 tick est formée chaque fois que le prix se déplace de 100 ticks. Ainsi, si le volume est faible, aucune barre n'est formée. Une barre de fourchette constante est formée chaque fois que le prix se déplace d'un nombre déterminé de ticks dans une fourchette. Par exemple, une barre de fourchette fixée à 20 se forme lorsque le prix remplit une fourchette de 20 points. La barre suivante est alors lancée. Comme ces barres ne sont pas basées sur le temps, je ne suis pas sûr que cela soit possible sur cette plateforme.

 

ajouter une simple alerte à l'EA

Bonjour, j'espère trouver ici la petite aide dont j'ai besoin ! Pouvez-vous me montrer comment ajouter une alerte pour cet EA par exemple ? juste quand les conditions sont remplies pour l'achat, il m'alerte aussi.

Merci,

Leo

extern int MagicNumber = 0 ;

extern bool SignalMail = False ;

extern bool EachTickMode = False ;

extern double Lots = 1.0 ;

extern int Slippage = 3 ;

extern bool StopLossMode = True ;

extern int StopLoss = 30 ;

extern bool TakeProfitMode = True ;

extern int TakeProfit = 60 ;

extern bool TrailingStopMode = True ;

extern int TrailingStop = 30 ;

#define SIGNAL_NONE 0

#define SIGNAL_BUY 1

#define SIGNAL_SELL 2

#define SIGNAL_CLOSEBUY 3

#define SIGNAL_CLOSESELL 4

int BarCount ;

int Current ;

bool TickCheck = False ;

//+------------------------------------------------------------------+

//| fonction d'initialisation de l'expert

//+------------------------------------------------------------------+

int init() {

BarCount = Bars ;

if (EachTickMode) Current = 0 ; sinon Current = 1 ;

return(0) ;

}

//+------------------------------------------------------------------+

//| fonction de désinitialisation experte |

//+------------------------------------------------------------------+

int deinit() {

return(0) ;

}

//+------------------------------------------------------------------+

//| fonction de démarrage de l'expert |

//+------------------------------------------------------------------+

int start() {

int Ordre = SIGNAL_NONE ;

int Total, Ticket ;

double StopLossLevel, TakeProfitLevel ;

if (EachTickMode && Bars != BarCount) TickCheck = False ;

Total = OrdersTotal() ;

Ordre = SIGNAL_NONE ;

//+------------------------------------------------------------------+

//| Début de la variable |

//+------------------------------------------------------------------+

double Buy1_1 = iMA(NULL, 0, 89, 0, MODE_SMA, PRICE_CLOSE, Current + 0) ;

double Buy1_2 = iClose(NULL, 0, Current + 0) ;

double Buy2_1 = iMA(NULL, 0, 445, 0, MODE_EMA, PRICE_CLOSE, Current + 0) ;

double Buy2_2 = iClose(NULL, 0, Current + 0) ;

//+------------------------------------------------------------------+

//| Fin de la variable |

//+------------------------------------------------------------------+

//Vérification de la position

bool IsTrade = False ;

for (int i = 0 ; i < Total ; i ++) {

OrderSelect(i, SELECT_BY_POS, MODE_TRADES) ;

if(OrderType() <= OP_SELL && OrderSymbol() == Symbol()) {

IsTrade = True ;

if(OrderType() == OP_BUY)) {

//Fermeture

//+------------------------------------------------------------------+

//| Signal Begin(Exit Buy) |

//+------------------------------------------------------------------+

//+------------------------------------------------------------------+

//| Signal End(Exit Buy) |

//+------------------------------------------------------------------+

if (Order == SIGNAL_CLOSEBUY && ((EachTickMode && !TickCheck) | (!EachTickMode && (Bars != BarCount)))) {

OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, MediumSeaGreen) ;

if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Close Buy") ;

if (!EachTickMode) BarCount = Bars ;

IsTrade = False ;

continuer ;

}

//Trailing stop

if(TrailingStopMode && TrailingStop > 0) {

if(Bid - OrderOpenPrice() > Point * TrailingStop) {

if(OrderStopLoss() < Bid - Point * TrailingStop) {

OrderModify(OrderTicket(), OrderOpenPrice(), Bid - Point * TrailingStop, OrderTakeProfit(), 0, MediumSeaGreen) ;

if (!EachTickMode) BarCount = Bars ;

continuer ;

}

}

}

} else {

//Fermeture

//+------------------------------------------------------------------+

//| Signal Begin(Exit Sell) |

//+------------------------------------------------------------------+

//+------------------------------------------------------------------+

//| Signal End(Exit Sell) |

//+------------------------------------------------------------------+

if (Order == SIGNAL_CLOSESELL && ((EachTickMode && !TickCheck) | (!EachTickMode && (Bars != BarCount)))) {

OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, DarkOrange) ;

if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Close Sell") ;

if (!EachTickMode) BarCount = Bars ;

IsTrade = False ;

continuer ;

}

//Trailing stop

if(TrailingStopMode && TrailingStop > 0) {

if((OrderOpenPrice() - Ask) > (Point * TrailingStop)) {

if((OrderStopLoss() > (Ask + Point * TrailingStop)) || (OrderStopLoss() == 0)) {

OrderModify(OrderTicket(), OrderOpenPrice(), Ask + Point * TrailingStop, OrderTakeProfit(), 0, DarkOrange) ;

if (!EachTickMode) BarCount = Bars ;

continuer ;

}

}

}

}

}

}

//+------------------------------------------------------------------+

//| Signal Begin(Entry) |

//+------------------------------------------------------------------+

if (Buy1_1 < Buy1_2 && Buy2_1 < Buy2_2) Order = SIGNAL_BUY ;

//+------------------------------------------------------------------+

//| Signal End |

//+------------------------------------------------------------------+

//Achat

if (Order == SIGNAL_BUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {

if(!IsTrade) {

//Contrôle de la marge libre

if (AccountFreeMargin() < (1000 * Lots)) {

Print("Nous n'avons pas d'argent. Marge libre = ", AccountFreeMargin()) ;

return(0) ;

}

if (StopLossMode) StopLossLevel = Ask - StopLoss * Point ; sinon StopLossLevel = 0.0 ;

if (TakeProfitMode) TakeProfitLevel = Ask + TakeProfit * Point ; sinon TakeProfitLevel = 0.0 ;

Ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, StopLossLevel, TakeProfitLevel, "Buy(#" + MagicNumber + ")", MagicNumber, 0, DodgerBlue) ;

if(Ticket > 0) {

if (OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES)) {

Print("Ordre BUY ouvert : ", OrderOpenPrice()) ;

if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Open Buy") ;

} else {

Print("Erreur lors de l'ouverture de l'ordre BUY : ", GetLastError()) ;

}

}

if (EachTickMode) TickCheck = True ;

if (!EachTickMode) BarCount = Bars ;

return(0) ;

}

}

//Vente

if (Order == SIGNAL_SELL && ((EachTickMode && !TickCheck) | (!EachTickMode && (Bars != BarCount)))) {

if(!IsTrade) {

//Contrôle de la marge libre

if (AccountFreeMargin() < (1000 * Lots)) {

Print("Nous n'avons pas d'argent. Marge libre = ", AccountFreeMargin()) ;

return(0) ;

}

if (StopLossMode) StopLossLevel = Bid + StopLoss * Point ; sinon StopLossLevel = 0.0 ;

if (TakeProfitMode) TakeProfitLevel = Bid - TakeProfit * Point ; sinon TakeProfitLevel = 0.0 ;

Ticket = OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, StopLossLevel, TakeProfitLevel, "Sell(#" + MagicNumber + ")", MagicNumber, 0, DeepPink) ;

if(Ticket > 0) {

if (OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES)) {

Print("Ordre SELL ouvert : ", OrderOpenPrice()) ;

if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Open Sell") ;

} else {

Print("Erreur lors de l'ouverture d'un ordre de vente : ", GetLastError()) ;

}

}

if (EachTickMode) TickCheck = True ;

if (!EachTickMode) BarCount = Bars ;

return(0) ;

}

}

if (!EachTickMode) BarCount = Bars ;

return(0) ;

}

//+------------------------------------------------------------------+

 

Merci et autres quêtes

Merci d'avoir répondu à ma question.

newdigital, Kalenzo, asmdev

Et merci à tous

C'est ma prochaine question.

1.) Comment comparer une valeur de quelque chose qui se passe et qui est arrivé

par exemple, si "n" est maintenant, la variable du temps, n-a = "a" temps avant maintenant.

comment comparer la valeur du RSI quand il s'est produit en (n-a) et le RSIn(maintenant).

ou comment comparer MA50 pour trois barres avant maintenant et la dernière barre ?

2.) Selon le point 1.) le cas réel est... comment créer une divergence haussière/baissière ?

Lorsque les conditions : Il y a un prix le plus élevé et un RSI le plus élevé de l'intervalle de temps défini. Et puis après le temps écoulé... nous rencontrons un nouveau prix le plus élevé, mais pas suivi d'un nouveau sommet du RSI (le RSI ne parvient pas à faire un nouveau sommet).

Nous savons tous que cette situation est un signal de vente très réaliste, et le signal d'achat est l'inverse, donc je veux que mon EA le sache.

Merci encore.

Raison: