Aide au codage - page 13

 

Modification rapide de l'EA

Bonjour,

J'ai besoin d'aide, j'ai essayé de modifier le code ci-dessous mais l'EA continue de planter MT4.

Je veux que l'ordre se ferme lorsque la barre actuelle (donc la barre où l'ordre a été exécuté) se ferme. En fait, il s'agit de négocier une seule barre.

C'est le code d'origine, il négocie de signal en signal.

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

//| Signal Begin(Exit Buy) |

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

if (signaldown!=EMPTY_VALUE&&signaldown!=0) Order = SIGNAL_CLOSEBUY;

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

//| 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;

continue;

}

//Trailing stop

if(UseTrailingStop && 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;

continue;

}

}

}

} else {

//Close

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

//| Signal Begin(Exit Sell) |

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

if (signalup!=EMPTY_VALUE&&signalup!=0) Order = SIGNAL_CLOSESELL;

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

//| 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;

continue;

}

//Trailing stop

if(UseTrailingStop && 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;

continue;

}

}

}

}

}

}

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

//| Signal Begin(Entry) |

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

//if (timeprev!=Time[0]){

// timeprev = Time[0];

if (signalup!=EMPTY_VALUE&&signalup!=0)

{

Order = SIGNAL_BUY;

}

if (signaldown!=EMPTY_VALUE&&signaldown!=0){

Order = SIGNAL_SELL;

}

// }

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

//| Signal End |

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

//Buy

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

if(!IsTrade) {

//Check free margin

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

Print("We have no money. Free Margin = ", AccountFreeMargin());

return(0);

}

if (UseStopLoss) StopLossLevel = Ask - StopLoss * Point; else StopLossLevel = 0.0;

if (UseTakeProfit) TakeProfitLevel = Ask + TakeProfit * Point; else 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("BUY order opened : ", OrderOpenPrice());

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

} else {

Print("Error opening BUY order : ", GetLastError());

}

}

if (EachTickMode) TickCheck = True;

if (!EachTickMode) BarCount = Bars;

return(0);

}

}

//Sell

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

if(!IsTrade) {

//Check free margin

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

Print("We have no money. Free Margin = ", AccountFreeMargin());

return(0);

}

if (UseStopLoss) StopLossLevel = Bid + StopLoss * Point; else StopLossLevel = 0.0;

if (UseTakeProfit) TakeProfitLevel = Bid - TakeProfit * Point; else 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("SELL order opened : ", OrderOpenPrice());

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

} else {

Print("Error opening SELL order : ", GetLastError());

}

}

if (EachTickMode) TickCheck = True;

if (!EachTickMode) BarCount = Bars;

return(0);

}

}

if (!EachTickMode) BarCount = Bars;

return(0);

}

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

Quelqu'un peut-il m'aider ?

 

Aidez-nous s'il vous plaît !!!!!

J'ai besoin d'une ea qui fasse ce qui suit

à un moment donné, définir un ordre d' achat ou de vente de 4 pc

fonctions :

heure d'ouverture de l'ordre (variable 00-24)

order1 lot de vente ou d'achat (0.01 .0,02... 1) TP (+ xx pips de l'ouverture) SL (- xx pips de l'ouverture)

ordre2 lot de vente ou d'achat (0.01 .0,02... 1) TP (+ xx pips de l'oppen) SL (- xx pips de l'ouverture)

ordre3 lot de vente ou d'achat (0.01 .0,02... 1) TP (+ xx pips de l'oppen) SL (- xx pips de l'ouverture)

order4 sell or buy lot (0.01 .0,02... 1) TP (+ xx pips from oppen) SL (- xx pips from open)

MERCI

 

Besoin d'ajouter à mon EA un code pour le désactiver à un certain niveau de prix

Bonjour,

J'ai besoin d'ajouter à mon EA un code pour le désactiver et l'activer à certains niveaux de prix.

J'ai cherché et trouvé que je peux le faire avec

# iclude<WinUser32mqh

extern bool Disable Ea = true // de X (examply1.4420) à Y(examply1.4380) et de Z (examply1.4480) à N(examply1.4520) //

extern bool Enable Ea = true // de R(examply -1.4420) à T(examply -1.4480)

J'apprécierais de l'aide pour traduire ces conditions en un code, de sorte que dans la boîte de dialogue de l'EA, je puisse simplement entrer le niveau de prix pour désactiver / activer l'EA.

 

Après quelques recherches et études, j'ai découvert que l'écriture d'un code dans la fonction de démarrage de l'EA pouvait la faire démarrer dans certaines conditions.

Donc sous la fonction de démarrage de l'expert j'ai écrit ce qui suit :

if(PRICE_MEDIAN (SellLevel-Point*BufferPips))

retour (0)

------------------------------------------------------------------------------------------------------------------

J'ai ajouté BufferPips dans le double externe pour pouvoir changer sa valeur dans la boîte de dialogue.

Je ne suis pas sûr que PRICE_MEDIAN soit un bon choix.

J'obtiens une erreur de compilation - parenthèse gauche déséquilibrée.

Aide appréciée

 

aidez-moi auto trading

Salut, M. Guru !

J'ai le trading automatique mais il ne fonctionne pas, aidez-moi s'il vous plaît !

Dossiers :
auto_me.mq4  4 kb
 

Bonjour Mario,

Je pense que cette condition if(current_shortEma == current_longEma)

n'est jamais vraie. En général, pour détecter un cross, il faut faire ceci

if(current_shortEma > current_longEma && last_shortEma < last_longEma){

//cross depuis le bas

}

if(current_shortEma last_longEma){

//cross from top

}

Des informations plus détaillées sont disponibles ici :

https://www.mql5.com/en/forum/trading_systems

Merci

MIkhail

 

J'ai une demande de codage aussi ---- besoin d'un codeur (tâche très simple)

Nous savons que HA -- henki ashi a rarement tort.

pendant une consolidation, ou presque un demi-tour, il sera de plus en plus court.

alors que lorsque la tendance est encore forte, l'HA de cette barre sera LONG.

DONC

serait-il intéressant d'avoir un indicateur qui nous indique la force de la tendance ?

l'idée est simple

--- d'abord, n'importe quel HA devrait faire l'affaire (je joins mon ex4 seulement, mais je dois trouver un MQ4 -- pour HA) et le modifier (tâche simple je suppose)

il n'y a que 2 couleurs pour les HA, un bleu *haut ---- + ---- et un rose/violet *bas

-- Deuxièmement, lorsque l'HA doit dessiner les éléments de l'HA sur la carte, il y a une LONGUEUR -- longueur de cet HA.

--- troisièmement, lorsqu'il s'agit d'un demi-tour, la barre des HA devient de plus en plus courte.

supposons que, lorsque la LONGUEUR de la barre d'HA (par essai et erreur) est inférieure à 0,4 cm, nous la dessinons en NOIR (c'est-à-dire pas en bleu / rose).

il nous avertira de ne pas entrer et de sortir rapidement.

De cette façon, nous n'avons qu'à entrer (sans crainte) en fonction de la force de la tendance HA --- tout comme mon autre idée, très SIMPLE, extrêmement utile.

codeur -- s'il vous plaît n'utilisez pas l'ex4 que je joins, il suffit de cliquer sur [SEARCH] dans le forum et de taper henki ashi, chercher des MQ4 avec tout le code.

------

quand vous avez terminé ou après l'avoir changé en 3 ou 4 couleurs (peut être 3 couleurs plutôt que 4 couleurs)

s'il vous plaît envoyez-moi un message privé PM, avec le LIEN, afin que je puisse le télécharger, après avoir commencé, si vous voulez, je pourrais vous donner un autre indicateur qui vous dira quel est le meilleur moment pour changer la couleur en NOIR aussi -- le noir est une sorte de couleur d'avertissement

----- c'est-à-dire que vous pouvez TELECHARGER l'ex4 que j'ai joint, mais utilisez un autre MQ4 svp ---

Merci, ce sera un bon indicateur pour nous tous, et le codage devrait être assez simple et direct.

Le code est au début, similaire au diagramme ci-dessus.

si j'ai bien compris, g_ibuf_## contrôle la longueur de la barre HA

nous devons juste imprimer toutes les valeurs de g_ibuf avec la fonction appelée "commentaire".

puis faire tourner le graphique pendant quelques jours, et regarder la valeur de g_ibuf, quand elle devient petite, et noter la VALEUR de cette variable.

ensuite, lorsque nous avons un créneau horaire à coder, nous codons simplement 1 à 2 couleurs -- disons, noir et gris foncé dans le codage, lorsque l'histogramme g_ibuf est PLUS PETIT QUE la valeur notée.

cela doit donc être simple -- sinon, on pourrait essayer par tâtonnement de trouver la meilleure valeur (pour être plus petite que).

sincèrement

xx3xxx -- J'ai téléchargé mon MQ4 pour la version 4 ici, je suppose que vous pouvez utiliser celui-ci, il semble être plus long et plus épais que les autres HA que j'ai.

Dossiers :
 
 
Dossiers :
lsma_nrp.mq4  5 kb
 

L'indicateur Trix a besoin d'une alerte

Coder Guru ou quelqu'un d'autre, pouvez-vous programmer un son, une alerte de notification et une alerte mail t3_trix_x2roc_clr_nrp_mtf.mq4t3_trix_x2roc_clr_nrp_mtf.mq4e dans cet indicateur Trix chaque fois que la ligne Trix à long terme ou à court terme change de couleur du rouge au vert ou vice versa. Merci

Dossiers :
Raison: