[ARCHIVE] Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 3. - page 22
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
Bonjour. Aide pour les nuls : J'ai un EA qui peut placer des ordres en attente sur le min. et le max. de la bougie précédente. Ouverture dans la direction de la bougie.
Le besoin :
- Pour changer le sens de l'ouverture, c'est-à-dire de l'achat en attente à la vente en attente.
- Faire les min et max de la bougie précédente au lieu des min et max du jour précédent .
- Laissez tout le reste tel quel, c'est-à-dire supprimez les ordres, les paramètres de lot, les stop-los, le numéro magique...
Toutes mes actions conduisent soit à l'erreur 130 dans le testeur, soit à l'impossibilité de compiler. Merci pour tout conseil.
Voici le code qui fonctionne, sans mon intervention.
extern double Lot = 0.01 ;
extern int StopLoss = 0 ;
extern int TakeProfit = 0 ;
extern int Magic = 618 ;
int Up_bars = 0 ;
int Down_bars = 0 ;
double StopLoss_new = 0 ;
double TakeProfit_new = 0 ;
//+------------------------------------------------------------------+
//| fonction d'initialisation des experts |
//+------------------------------------------------------------------+
int init()
{
//----
//----
return(0) ;
}
//+------------------------------------------------------------------+
//| fonction de désinitialisation des experts |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0) ;
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
//----
for( int cnt=0;cnt<OrdersTotal();cnt++)
{
if (OrderSelect(cnt,SELECT_BY_POS, MODE_TRADES)>0)
{
if (
(OrderType() == OP_BUYSTOP || OrderType() == OP_SELLSTOP)
&& OrderMagicNumber() == Magic
&& OrderSymbol() == Symbol()
&& OrderComment() != DoubleToStr(Bars,0)
)
{
Comment("okkk") ;
OrderDelete(OrderTicket()) ;
}
}
}
StopLoss_new = StopLoss ;
TakeProfit_new = TakeProfit ;
if (Up_bars != Bars)
{
if (High[1]-Ask >= MarketInfo(Symbol(),MODE_STOPLEVEL)*Point)
{
if (StopLoss_new != 0) StopLoss_new = NormalizeDouble(High[1]-StopLoss*Point,Digits) ;
if (TakeProfit_new != 0) TakeProfit_new = NormalizeDouble(High[1]+TakeProfit*Point,Digits) ;
if (OrderSend(Symbol(),OP_BUYSTOP,Lot,NormalizeDouble(High[1],Digits),10,StopLoss_new,TakeProfit_new,DoubleToStr(Bars,0),Magic,0,Green) < 0)
{
Sleep(1000) ;
RefreshRates() ;
}
else
{
Up_bars = Bars ;
}
}
}
StopLoss_new = StopLoss ;
TakeProfit_new = TakeProfit ;
if (Down_bars != Bars)
{
if (Bid-Low[1] >= MarketInfo(Symbol(),MODE_STOPLEVEL)*Point)
{
if (StopLoss_new != 0) StopLoss_new = NormalizeDouble(Low[1]+StopLoss*Point,Digits) ;
if (TakeProfit_new != 0) TakeProfit_new = NormalizeDouble(Low[1]-TakeProfit*Point,Digits) ;
if (OrderSend(Symbol(),OP_SELLSTOP,Lot,NormalizeDouble(Low[1],Digits),10,StopLoss_new,TakeProfit_new,DoubleToStr(Bars,0),Magic,0,Green) < 0)
{
Sleep(1000) ;
RefreshRates() ;
}
else
{
Down_bars = Bars ;
}
}
}
//----
return(0) ;
}
//+------------------------------------------------------------------+
Bonjour. Aidez un imbécile à comprendre :
Capitaine Evidence... et pourtant quelqu'un me donne un indice.
Je vais vous donner un indice - mettez cette expression en mots. Et vous verrez que vous l'avez mal mis.
PS.
S'il est si évident pour vous de savoir où chercher une erreur, alors pourquoi demander ?
Si l'erreur 130. Reconsidérer l'arrêt et la prise en charge.
Aidez-nous s'il vous plaît, l'ordre doit être clôturé à 4 fois la distance entre le haut et le prix d'ouverture de l'ordre.
Où est-ce que je me suis trompé ?
tous les ordres sont clôturés dans les 3 pips de l'ouverture
Avez-vous essayé de calculer le résultat de votre formule ? Si ce n'est pas le cas, alors faites-le, parce que j'ai droit à des conneries. C'est peut-être parce que je ne connais pas toutes les conditions.
Une seule erreur - je ne sais pas comment la réparer. Où est le problème ?
'Symbol' - initialisation attendue C:\Program Files\MetaTrader Finam\experts\1.mq4 (8, 13)
Symbole - initialisation attendue C:\Program Files\MetaTrader Finam\experts\1.mq4 (8, 13)
alex12, spécifiez quelque chose de précis, comme
Une seule erreur - je ne sais pas comment la réparer. Où est le problème ?
'Symbol' - initialisation attendue C:\Program Files\MetaTrader Finam\experts\1.mq4 (8, 13)
Symbole - initialisation attendue C:\Program Files\MetaTrader Finam\experts\1.mq4 (8, 13)
Vous avez :
Vous en avez besoin :
En fait, vous pouvez double-cliquer sur le message d'erreur et le curseur ira à l'endroit spécifié (au passage) où l'erreur de compilation s'est produite, c'est-à-dire ici : (8, 13)Après cela, d'autres erreurs seront lancées... :)
Déplacez la ligne ci-dessus au début de la fonction start()
C'est un début - il faut ensuite s'occuper des autres erreurs...
Bonjour à tous.
Les gars, on a besoin d'aide. Décrire la situation.
le prix actuel est de 1.4100 (par exemple), je dois trouver une barre dont l'ouverture sera dans (plus ou moins 10 pt de 1.4100) de 1.4090 à 1.4110 - c'est ok.
Par exemple, le programme a trouvé la barre avec l'ouverture à 1.4105 qui me convient.
Ensuite, le programme doit comparer cette barre avec la barre à sa gauche et à sa droite et si elle est plus basse, elle sera appropriée.
Artem, le truc ici, c'est qu'il y a une ligne comme celle-ci en dessous :
La façon dont vous avez suggéré n'a donc pas beaucoup de sens - si je comprends bien ce que veut Alex12.